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

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();
      }
  }
      

相关推荐

  1. 单片机单片机裸机实现任务调度

    2023-12-05 15:10:56       63 阅读
  2. 单片机Freertos入门(二)任务调度的介绍

    2023-12-05 15:10:56       45 阅读
  3. Ubuntu串口调试单片机

    2023-12-05 15:10:56       26 阅读
  4. c# 实现Quartz任务调度

    2023-12-05 15:10:56       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-05 15:10:56       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-05 15:10:56       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-05 15:10:56       82 阅读
  4. Python语言-面向对象

    2023-12-05 15:10:56       91 阅读

热门阅读

  1. leetcode704. 二分查找

    2023-12-05 15:10:56       59 阅读
  2. Springboot_Tomcat数据库连接池配置

    2023-12-05 15:10:56       62 阅读
  3. 新手安装Anaconda与Miniconda怎么选?

    2023-12-05 15:10:56       50 阅读
  4. github / gitlab s申城 配置密钥 ssh key

    2023-12-05 15:10:56       52 阅读
  5. 前端知识笔记(三十二)———TCP 连接建立

    2023-12-05 15:10:56       44 阅读
  6. Kafka数据同步原理详解

    2023-12-05 15:10:56       54 阅读
  7. Kafka与Spring Boot等应用框架的集成及消息驱动模型

    2023-12-05 15:10:56       43 阅读
  8. 第3章 网页数据的解析提取

    2023-12-05 15:10:56       48 阅读
  9. 杨辉三角

    2023-12-05 15:10:56       59 阅读