[其他产品] 分时任务,让MCU高效运行

[复制链接]
515|2
liao6 发表于 2025-11-7 14:20 | 显示全部楼层 |阅读模式
本帖最后由 liao6 于 2025-11-7 15:04 编辑

简介
      在没有RTOS实时系统的情况下,我们都知道MCU只能逻辑运行,每个函数只能轮询的执行,那么,怎么设计才能更加高效呢?下面我们从几个方面探讨一下。

一、主循环分时轮询
      在while主循环中,一般都有很多模块运行,我们可以采用分时运行的方法,根据每个模块交互的周期,我们可以在定时器设计一个时间,每间隔一个时间去运行一次,比如:像传感器类是模块,实时性要求没那么高的,我们可以2秒获取一次数据;像有些串口通信类的数据,我们可以3s下发一次。这样MCU就不会时时刻刻一直在运行,只有在有需要的时候才去运行一下某个模块,效率大大提升。
      示例可以参考下图:
  

二、前后台系统
      前后台系统,也就是while+中断的方式中断服务函数就是前台部分,while(1)轮询是后台部分。如果没有中断请求,软件按照顺序执行while(1)轮询中的各个业务,如果有中断请求。先暂停while(1)中的业务,转去处理中断服务函数内容。处理完成中断后,再继续轮询执行while(1)中的业务。
      系统运行,如下图:
  

三、有条件运行
      系统有很多模块组成,有些模块我们可以加一个if()条件,当条件达到了,再去执行,条件没达到就直接跳过去,执行下面的程序,这样就可以避免MCU没必要的资源消耗。


四、总结
      总而言之,紧急的放前台中断,不紧急的分时运行,某些模块满足条件再运行,这样就能最大的节约MCU的损耗,让MCU轻轻松松完成任务。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
世纪女孩 发表于 2025-11-18 15:22 | 显示全部楼层
分时任务通过将 MCU 工作按时间片分配给多任务,按优先级调度。用定时器触发任务切换,避免长任务阻塞;短任务优先执行,长任务拆分;空闲时让 MCU 进入低功耗模式。需合理设置时间片,减少切换开销,平衡任务响应速度与资源占用,提升 MCU 运行效率。
 楼主| liao6 发表于 2025-11-18 17:40 | 显示全部楼层
世纪女孩 发表于 2025-11-18 15:22
分时任务通过将 MCU 工作按时间片分配给多任务,按优先级调度。用定时器触发任务切换,避免长任务阻塞;短 ...

优秀
您需要登录后才可以回帖 登录 | 注册

本版积分规则

119

主题

287

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部