当前位置: 首页 > news >正文

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

RTOS vs 裸机多任务调度

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

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

1、代码量小
2、移植简单
3、程序架构清晰、模块化

示例代码

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

#define TASK01_DELAY 70
#define TASK02_DELAY 1
#define TASK03_DELAY 200int 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 Task01last_task01_time = current_time;Task01();}if (current_time - last_task02_time >= TASK02_DELAY){// TODO Task02last_task02_time = current_time;Task02();}if (current_time - last_task03_time >= TASK03_DELAY){// TODO Task03last_task03_time = current_time;Task03();}}

相关文章:

  • 质量小议35 -- SQL注入
  • 第5章 固定通信网
  • 深入了解Java Period类,对时间段的精确控制
  • MX6ULL学习笔记 (七) 中断实验
  • Python小案例:打印10以内的素数
  • java面试题3
  • 如何利用MES系统加强对仓库的管理
  • 二叉树链式结构
  • 【EI征稿中|SPIE出版】 第四届传感器与信息技术国际学术会议(ICSI 2024)
  • 【Git】Git撤销操作
  • 17、神经网络的性能以及那些框架存在的意义
  • 「吞噬星空」布罗占地球奖1000亿,罗峰洪雷神诱敌深入,狩猎开始
  • 2023年个人工作总结怎么写?工作任务完成自动记录的待办软件
  • 在线测量大尺寸管材的测径仪有哪些?
  • StarGAN 使用指南:一个模型实现多个域的迁移
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • Android优雅地处理按钮重复点击
  • Angular 响应式表单之下拉框
  • JAVA_NIO系列——Channel和Buffer详解
  • mongodb--安装和初步使用教程
  • vue脚手架vue-cli
  • 阿里云购买磁盘后挂载
  • 爱情 北京女病人
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 机器学习学习笔记一
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 浅谈Golang中select的用法
  • 使用agvtool更改app version/build
  • 详解NodeJs流之一
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 用mpvue开发微信小程序
  • 自制字幕遮挡器
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​ArcGIS Pro 如何批量删除字段
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • (04)odoo视图操作
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (C语言)二分查找 超详细
  • (day 12)JavaScript学习笔记(数组3)
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (力扣)循环队列的实现与详解(C语言)
  • (五)关系数据库标准语言SQL
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (转)ObjectiveC 深浅拷贝学习
  • .Mobi域名介绍