【单片机】单片机裸机实现多任务调度

RTOS vs 裸机多任务调度

实时操作系统RTOS的优点不必多说了,但是对于一些简单的业务需求,移植一个操作系统显得非常麻烦,并且占用系统资源,此时就可以考虑利用SysTick裸机实现多任务调度。

单片机裸机实现多任务调度的优点有

1、代码量小

2、移植简单

3、程序架构清晰、模块化

示例代码

方法不止一种,原理都是借助定时器实现多个任务之间的轮转,示例代码如下:

复制代码
#define TASK01_DELAY 70
#define TASK02_DELAY 1
#define TASK03_DELAY 200

int main()
{
  /*系统时钟配置*/
  system_clock_config();
  /*嘀嗒时钟*/
  systick_init();
    
  u32 current_time = get_system_ms();
  u32 last_task01_time = get_system_ms();
  u32 last_task02_time = get_system_ms();
  u32 last_task03_time = get_system_ms();
  
  while (1)
  {
      current_time = get_system_ms();

      if (current_time - last_task01_time >= TASK01_DELAY)
      {
          // TODO Task01
          last_task01_time = current_time;
          Task01();
      }

      if (current_time - last_task02_time >= TASK02_DELAY)
      {
          // TODO Task02
          last_task02_time = current_time;
          Task02();
      }

      if (current_time - last_task03_time >= TASK03_DELAY)
      {
          // TODO Task03
          last_task03_time = current_time;
          Task03();
      }
  }
相关推荐
日更嵌入式的打工仔16 分钟前
<RT1176系列14>CCM(Clock Controller Module)解读
单片机·嵌入式硬件
云山工作室20 分钟前
基于单片机的环境监测智能报警系统的设计(论文+源码)
stm32·单片机·嵌入式硬件·毕业设计·毕设
齐落山大勇31 分钟前
STM32的串口(上位机控制下位机)
stm32·单片机·嵌入式硬件
小尧嵌入式35 分钟前
STM32启动汇编文件详解及启动逻辑
汇编·arm开发·stm32·单片机
m0_598250001 小时前
电源完整性07-如何确定PDN网络中的大电容
笔记·单片机·嵌入式硬件·硬件工程
广东小62 小时前
【海思】在Ubuntu20.04上搭建可以成功编译Hi3559AV100的环境_20251104
嵌入式硬件
时空自由民.2 小时前
MCU Timer定时计算案例
单片机·嵌入式硬件
2501_922223593 小时前
ZCC7151S:高效静默,赋能未来电源设计——20V/15A同步降压稳压解决方案
嵌入式硬件
切糕师学AI4 小时前
STM32是什么?
stm32·单片机·嵌入式硬件
普中科技6 小时前
【普中STM32F1xx开发攻略--标准库版】-- 第 12 章 STM32 时钟系统
stm32·单片机·嵌入式硬件·arm·时钟树·普中科技