ucosii的低优先级ucos 任务优先级是否有可能永远得不到执行

拒绝访问 |
| 百度云加速
请打开cookies.
此网站 () 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(b289439a-ua98).
重新安装浏览器,或使用别的浏览器21ic官方微信-->
后使用快捷导航没有帐号?
请完成以下验证码
查看: 3292|回复: 9
请教前辈,使用uCOS-II时,如何给每个任务分配优先级?
&&已结帖(5)
主题帖子积分
高级技术员, 积分 925, 距离下一级还需 75 积分
高级技术员, 积分 925, 距离下一级还需 75 积分
主题帖子积分
专家等级:结帖率:76%打赏:0.00受赏:5.00
主题帖子积分
高级技术员, 积分 925, 距离下一级还需 75 积分
高级技术员, 积分 925, 距离下一级还需 75 积分
请教前辈,使用uCOS-II操作系统,如何给每个任务分配优先级?应遵循什么原则?
系统有两个任务:
1、任务1的工作是检测一个按键,如果有按键按下,则delete任务2.
2、任务2的工作是LED闪烁.
我做了这样两组实验:
1、如果任务1的优先级高于任务2,则任务2不会执行;
2、如果任务1的优先级低于任务2,则两个任务都会运行,并且当按键按下时,任务2会被delete。
请教前辈,这是为什么?在给每个任务分配优先级时,应遵循什么原则?
下面是我两个任务的代码
void mainTask1(void *pvData)
& & pvData = pvD
& & while (1)
& & & & OSTimeDly(OS_TICKS_PER_SEC / 4);
& & & & LED3_OFF();
& & & & OSTimeDly(OS_TICKS_PER_SEC / 4);
& & & & LED3_ON();
void mainTask2(void *pvData)
& & & & pvData = pvD
& & & & while (1)
& & & & & & & & if( SEL0 == SEL0_ON() )
& & & & & & & & {& && &&&
& & & & & & & & & & & & OSTimeDly(OS_TICKS_PER_SEC / 4);
& & & & & & & & & & & & if( SEL0 == SEL0_ON() )
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & OSTaskDel(4);
& & & & & & & & & & & & }
& & & & & & & & }
& & & & & & & &
满意回复+5
void mainTask2(void *pvData)
pvData = pvD
if( SEL0 == SEL0_ON() )
主题帖子积分
主题帖子积分
专家等级:结帖率:36%打赏:0.00受赏:4.00
主题帖子积分
void mainTask2(void *pvData)
& && &&&pvData = pvD
& && &&&while (1)
& && && && && & if( SEL0 == SEL0_ON() )
& && && && && & {& && &&&
& && && && && && && && &OSTimeDly(OS_TICKS_PER_SEC / 4);
& && && && && && && && &if( SEL0 == SEL0_ON() )
& && && && && && && && &{
& && && && && && && && && && &&&OSTaskDel(4);
& && && && && && && && &}
& && && && && & }
& && && && && &
我认为是这个任务写的有问题,如果无按键按下,这个任务不会释放CPU的使用权,如过这个任务是最高级任务,则任务调度会一直执行这个任务,如果这个任务优先级低的话,则会由系统的滴答强制进行任务调度.改成如下试试,应该可以执行,未必是最优化.
void mainTask2(void *pvData)
& && &&&pvData = pvD
& && &&&while (1)
& && && && && & if( SEL0 == SEL0_ON() )
& && && && && & {& && &&&
& && && && && && && && &OSTimeDly(OS_TICKS_PER_SEC / 4);
& && && && && && && && &if( SEL0 == SEL0_ON() )
& && && && && && && && &{
& && && && && && && && && && &&&OSTaskDel(4);
& && && && && && && && &}
& && && && && & }
& && && &OSTimeDly(OS_TICKS_PER_SEC / 4);& && &
上班,它是一种谋生手段;下班,它是一种娱乐方式!
主题帖子积分
高级技术员, 积分 925, 距离下一级还需 75 积分
高级技术员, 积分 925, 距离下一级还需 75 积分
主题帖子积分
专家等级:结帖率:76%打赏:0.00受赏:5.00
主题帖子积分
高级技术员, 积分 925, 距离下一级还需 75 积分
高级技术员, 积分 925, 距离下一级还需 75 积分
dwh000 发表于
void mainTask2(void *pvData)
& && &&&pvData = pvD
是的,正如前辈所说!谢谢前辈!
主题帖子积分
高级技术员, 积分 925, 距离下一级还需 75 积分
高级技术员, 积分 925, 距离下一级还需 75 积分
主题帖子积分
专家等级:结帖率:76%打赏:0.00受赏:5.00
主题帖子积分
高级技术员, 积分 925, 距离下一级还需 75 积分
高级技术员, 积分 925, 距离下一级还需 75 积分
我想结贴,但是说“分数未分配完,或分数存在错误”
主题帖子积分
高级技术员, 积分 925, 距离下一级还需 75 积分
高级技术员, 积分 925, 距离下一级还需 75 积分
主题帖子积分
专家等级:结帖率:76%打赏:0.00受赏:5.00
主题帖子积分
高级技术员, 积分 925, 距离下一级还需 75 积分
高级技术员, 积分 925, 距离下一级还需 75 积分
版主,赶紧啊,我想结贴给分,可是“分数未分配完,或分数分配存在错误!”,我该怎么弄才对?
主题帖子积分
实习生, 积分 6, 距离下一级还需 44 积分
实习生, 积分 6, 距离下一级还需 44 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 6, 距离下一级还需 44 积分
实习生, 积分 6, 距离下一级还需 44 积分
呵呵,按键任务优先级高但是任务一直未挂起,所以优先级低的任务得不到执行,所以在按键任务加个延时挂起....
主题帖子积分
主题帖子积分
专家等级:结帖率:100%打赏:0.40受赏:10.20
主题帖子积分
dwh000 发表于
void mainTask2(void *pvData)
& && &&&pvData = pvD
老王正解啊
老老实实做人,认认真真做事,学习没有捷径,成功源于付出!欢迎进入【】版块!
主题帖子积分
资深技术员, 积分 405, 距离下一级还需 95 积分
资深技术员, 积分 405, 距离下一级还需 95 积分
主题帖子积分
专家等级:结帖率:45%
主题帖子积分
资深技术员, 积分 405, 距离下一级还需 95 积分
资深技术员, 积分 405, 距离下一级还需 95 积分
如果第一次按键任务已经被删除,第二次再按,会出错吗
主题帖子积分
实习生, 积分 6, 距离下一级还需 44 积分
实习生, 积分 6, 距离下一级还需 44 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 6, 距离下一级还需 44 积分
实习生, 积分 6, 距离下一级还需 44 积分
主题帖子积分
初级技术员, 积分 84, 距离下一级还需 16 积分
初级技术员, 积分 84, 距离下一级还需 16 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
初级技术员, 积分 84, 距离下一级还需 16 积分
初级技术员, 积分 84, 距离下一级还需 16 积分
学习了,谢谢!!!
技术新星奖章
人才类勋章
时间类勋章
涓涓之细流
发帖类勋章
沉静之湖泊
发帖类勋章
时间类勋章
技术奇才奖章
人才类勋章
无冕之王奖章
等级类勋章
时间类勋章
时间类勋章
热门推荐 /3

我要回帖

更多关于 ucos 任务优先级 的文章

 

随机推荐