UCOSII串口中断和led任务,只能执行一个,是什么原因?

2019-08-14 01:41发布

在ucosii任务调度模板中,加入了自己的IMU读取的代码,结果一直只能执行一个程序。用了系统延时函数,临界区都没有效果。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
wjlshuaiqi
1楼-- · 2019-08-15 05:22
章鱼哥丶 发表于 2017-9-10 22:07
在LED闪烁的任务中不用使用临街段代码保护,就和裸机的写法一样,不过要使用UCOS的延时函数。还用你确定 ...

其实我试了很多办法,但是每次的结果都是只能运行一个任务,我用的是mini开发板的模板工程(UCOSII任务调度),请问下有串口中断和其他任务调度的例子吗?
wjlshuaiqi
2楼-- · 2019-08-15 05:33
 精彩回答 2  元偷偷看……
章鱼哥丶
3楼-- · 2019-08-15 11:13
wjlshuaiqi 发表于 2017-9-11 14:23
其实我试了很多办法,但是每次的结果都是只能运行一个任务,我用的是mini开发板的模板工程(UCOSII任务调 ...

在lcd任务中没进行任务切换,所以一直在lcd_task里运行
wjlshuaiqi
4楼-- · 2019-08-15 14:07
章鱼哥丶 发表于 2017-9-11 14:49
在lcd任务中没进行任务切换,所以一直在lcd_task里运行

添加了任务切换,LED灯常亮,说明LED任务还是执行了一次,然后再也没有执行,如果LCD任务优先级大于LED,那么LED一次都不执行。
wjlshuaiqi
5楼-- · 2019-08-15 19:01
章鱼哥丶 发表于 2017-9-11 14:49
在lcd任务中没进行任务切换,所以一直在lcd_task里运行

观察时间长点,LED常亮很长时间,熄灭很长时间,难道是系统延时函数时间太长了?
章鱼哥丶
6楼-- · 2019-08-15 22:11
wjlshuaiqi 发表于 2017-9-11 15:15
观察时间长点,LED常亮很长时间,熄灭很长时间,难道是系统延时函数时间太长了?

你设置的是延时500个节拍,你需要知道你的一个节拍数延时多少毫秒。

一周热门 更多>