[uCOS/RTOS] 请教前辈,使用uCOS-II时,如何给每个任务分配优先级?

[复制链接]
6111|8
 楼主| robotouch 发表于 2014-2-16 19:54 | 显示全部楼层 |阅读模式
请教前辈,使用uCOS-II操作系统,如何给每个任务分配优先级?应遵循什么原则?


系统有两个任务:
1、任务1的工作是检测一个按键,如果有按键按下,则delete任务2.

2、任务2的工作是LED闪烁.


我做了这样两组实验:

1、如果任务1的优先级高于任务2,则任务2不会执行;

2、如果任务1的优先级低于任务2,则两个任务都会运行,并且当按键按下时,任务2会被delete。


请教前辈,这是为什么?在给每个任务分配优先级时,应遵循什么原则?

下面是我两个任务的代码
void mainTask1(void *pvData)
{
    pvData = pvData;

    while (1)
    {
        OSTimeDly(OS_TICKS_PER_SEC / 4);
        LED3_OFF();
        OSTimeDly(OS_TICKS_PER_SEC / 4);
        LED3_ON();
    }
}

void mainTask2(void *pvData)
{
        pvData = pvData;

        while (1)
        {
                if( SEL0 == SEL0_ON() )
                {        
                        OSTimeDly(OS_TICKS_PER_SEC / 4);
                        if( SEL0 == SEL0_ON() )
                        {
                                OSTaskDel(4);
                        }
                }
               
        }
}
 楼主| robotouch 发表于 2014-2-18 16:24 | 显示全部楼层
dwh000 发表于 2014-2-17 10:20
void mainTask2(void *pvData)
{
        pvData = pvData;

是的,正如前辈所说!谢谢前辈!
 楼主| robotouch 发表于 2014-2-18 16:27 | 显示全部楼层
我想结贴,但是说“分数未分配完,或分数存在错误”
 楼主| robotouch 发表于 2014-2-18 22:38 | 显示全部楼层
版主,赶紧啊,我想结贴给分,可是“分数未分配完,或分数分配存在错误!”,我该怎么弄才对?
linxiaoyu 发表于 2014-4-5 15:04 | 显示全部楼层
呵呵,按键任务优先级高但是任务一直未挂起,所以优先级低的任务得不到执行,所以在按键任务加个延时挂起....
sdnumcu 发表于 2014-4-5 15:48 | 显示全部楼层
dwh000 发表于 2014-2-17 10:20
void mainTask2(void *pvData)
{
        pvData = pvData;

老王正解啊
klffnj 发表于 2014-6-28 18:37 | 显示全部楼层
如果第一次按键任务已经被删除,第二次再按,会出错吗
洋洋007号 发表于 2014-7-2 16:09 | 显示全部楼层
好东西
royal90 发表于 2014-7-17 13:57 | 显示全部楼层
学习了,谢谢!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

58

主题

313

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部