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

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();
      }
  }
相关推荐
恒森宇电子有限公司12 小时前
南麟XT3406 DC-DC降压稳压器芯片 SOT23-5封装
单片机·嵌入式硬件
逐步前行12 小时前
HAL_RCC
单片机·嵌入式硬件
RFID舜识物联网12 小时前
耐高温RFID标签提升汽车喷涂线效率,精准度再升级
大数据·人工智能·嵌入式硬件·物联网·汽车
Suifqwu12 小时前
rk3576(5)之编些简单GPIO驱动
单片机·嵌入式硬件
爱喝纯牛奶的柠檬13 小时前
【已验证】STM32采集声音传感器实现环境声实时监测
单片机·嵌入式硬件
我先去打把游戏先13 小时前
Git 一个本地仓库同时推送到两个远程仓库(私人 GitHub + 公司 Git)保姆级教程
git·vscode·单片机·嵌入式硬件·物联网·学习·github
悠哉悠哉愿意13 小时前
【物联网学习笔记】OLED
笔记·单片机·嵌入式硬件·物联网·学习
三佛科技-1341638421213 小时前
融蜡机方案,脱毛热蜡机MCU控制方案开发
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
三佛科技-1341638421213 小时前
智能小夜灯方案,智能遥控台灯方案开发MCU控制方案设计
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
誰能久伴不乏13 小时前
给开发板装上嘴巴与耳朵:i.MX6ULL 裸机串口 (UART) 驱动终极指南
arm开发·c++·单片机·嵌入式硬件·arm