问题
单片机开发过程中,随着任务的增多,完全等待一个任务完成后,再去执行下一个任务的弊端越发明显。
在while(1)循环中实现LED 周期闪烁,提示系统正常运行。
代码实例:
采用时间分割思想,去处理不同的任务,每次执行1ms,到500次时,执行相应功能。
代码
定义结构体:
Delay:时间片执行时长;
Period:任务执行周期。
添加(创建)任务:
删除任务:
更改任务:
执行调度器:
定时器查询时间片:
测试
封装好了必要的函数之后,接下来学习如何使用,很简单,首先创建几个任务,创建了2个任务,两个任务分别是task01,“时间片”是50ms(自己根据需要订),任务周期是500ms,task02,“时间片”是10ms(自己根据需要订),任务周期是1000ms:
在systick(或者其他定时器)中调用,关于Systick的使用:STM32实例-SysTick实现2个LED流水灯效果。
最后只需要在while中调用调度器就OK了(类似于LVGL的设计思路),根据我们的设计,两个任务,一个是500ms打印“task01 test”,另一个1000ms打印“task02 test”。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !