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

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();
      }
  }
相关推荐
微信1532379424316 小时前
离线语音识别 ( 小语种国家都支持)可定制词组
嵌入式硬件
weixin_5088216517 小时前
1ms软延时,不用定时器,stm32
stm32·单片机·嵌入式硬件
月阳羊18 小时前
【无人机】无人机PX4飞控系统高级软件架构
嵌入式硬件·架构·系统架构·无人机
weixin_5088216519 小时前
stm32 主频216MHz,写个ms延时函数,us延时函数
stm32·单片机·嵌入式硬件
华清远见IT开放实验室19 小时前
【新书上市】《STM32嵌入式系统开发—基于STM32CubeMX和HAL库》,高校教学推荐,STM32入门必读书籍!
stm32·单片机·嵌入式硬件·虚拟仿真·必读书籍·高校教学
智木芯语19 小时前
【58】编程技巧:单片机编程命名规范
单片机·嵌入式硬件·嵌入式·#stm32·#stc8
捷配datasheet19 小时前
OP2177运算放大器:高性能模拟信号处理的关键元件
嵌入式硬件·信号处理
逼子格21 小时前
五种音频器件综合对比——《器件手册--音频器件》
嵌入式硬件·音视频·硬件工程师·硬件测试·电子器件·硬件笔试真题·音频器件
niuTaylor1 天前
STM32平衡车开发实战教程:从零基础到项目精通
stm32·单片机·嵌入式硬件