【MM32 eMiniBoard】 深度测试02

本程序参考了大神的佳作:链接
(因链接失效无法填写)不过非常感谢大神分享知识,为尊重对方的付出,代码就不分享了。
再次感谢面包板提供的学习测评机会!
代码修改后的视频如下:
事件处理:
定义结构体:
1.bmp
四个按键的状态将会被采集,KEY_GRP.value,也就是K1置位返回KEY_VALUE_1,其余复位返回各自值,如果没有按下则返回KEY_VALUE_NULL。赋值给结构体 value
对事件处理进行了新增,增加了一个led事件,用一个一个流水灯测试。
2.bmp

3.bmp
LinkedList_TypeDef *node = head;
任务添加节点,将增加到node
4.bmp
5.bmp
用定时器T4作为时间片的定时器1ms产生一个中断。1MHZ---1000次。
队列处理:
初始化,队列空检查,队列取数据(队列的头取数据),队列写数据(插入队尾)。此处队列没有排顺序。
总体来讲可以实现简单的时间片的任务调度,没有优先级。
要想增加任务,只要在合适的代码段地方曾加任务即可。建议增加任务删除的功能。