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

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();
      }
  }
相关推荐
菜鸟-0139 分钟前
IAP二级启动系统
单片机·嵌入式硬件
red watchma1 小时前
向量表偏移寄存器(Vector Table Offset Register,VTOR)
单片机·嵌入式硬件
NEU-UUN2 小时前
3.4.STM32-按键控制LED&光敏传感器控制蜂鸣器
stm32·单片机·嵌入式硬件
点灯小铭3 小时前
基于单片机的程控放大器设计与实现
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
范纹杉想快点毕业3 小时前
《嵌入式硬件从入门到精通:电源 / 模电 / 数电 / 通信核心全解析》
java·开发语言·数据库·单片机·嵌入式硬件
打酱油程序员3 小时前
舵机工作原理与控制详解
单片机·嵌入式硬件
Wave8454 小时前
FreeRTOS的常用函数和剪切
单片机·嵌入式硬件
C.咖.5 小时前
STM32 ——嵌入式 存储系统、时钟系统(F407 系列)
stm32·单片机·嵌入式硬件
llilian_165 小时前
晶振有什么好用的检测仪器?石英晶振测试仪 晶体测试仪
服务器·单片机·嵌入式硬件·其他
FreakStudio6 小时前
串口协议解析实战:以 R60ABD1 雷达为例,详解 MicroPython 驱动中数据与业务逻辑的分离设计
python·单片机·pycharm·嵌入式·面向对象·硬件·电子diy