在单片机编程中,如果在不使用操作系统的情况下同时执行多个任务,可能会遇到下面这些情况:
- 一个任务的执行时间过长,导致其他任务无法及时执行
- 在一些任务中大量使用 delay() 等函数进行软件延时,这些延时函数占用过多时间,影响其他任务的执行
- 一些复杂任务的程序逻辑不清晰,不便于以后对程序进行维护,或添加新功能
本文介绍的有限状态机,可以做到将一个耗时较长的复杂任务分解为多个简单任务,同时使代码逻辑更加清晰,从而解决上述问题。
目录:
在单片机编程中,如果在不使用操作系统的情况下同时执行多个任务,可能会遇到下面这些情况:
本文介绍的有限状态机,可以做到将一个耗时较长的复杂任务分解为多个简单任务,同时使代码逻辑更加清晰,从而解决上述问题。
目录:
一般情况下,处理 Arduino 的多个任务,是把所有任务放在 void loop() 里,然后用 delay() 控制时间。不过,任务一多,这种方法就不太方便了。
最近刚刚看了一本书:《时间触发嵌入式系统设计模式》,里面介绍的调度器,可以以特定的周期执行特定的任务,值得在 Arduinio 项目中借鉴。我也刚刚把这个调度器移植到 Arduino 中:https://github.com/blanboom/Arduino-Task-Scheduler