打印
[uCOS/RTOS]

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

[复制链接]
5632|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 | 只看该作者
版主,赶紧啊,我想结贴给分,可是“分数未分配完,或分数分配存在错误!”,我该怎么弄才对?

使用特权

评论回复
5
linxiaoyu| | 2014-4-5 15:04 | 只看该作者
呵呵,按键任务优先级高但是任务一直未挂起,所以优先级低的任务得不到执行,所以在按键任务加个延时挂起....

使用特权

评论回复
6
sdnumcu| | 2014-4-5 15:48 | 只看该作者
dwh000 发表于 2014-2-17 10:20
void mainTask2(void *pvData)
{
        pvData = pvData;

老王正解啊

使用特权

评论回复
7
klffnj| | 2014-6-28 18:37 | 只看该作者
如果第一次按键任务已经被删除,第二次再按,会出错吗

使用特权

评论回复
8
洋洋007号| | 2014-7-2 16:09 | 只看该作者
好东西

使用特权

评论回复
9
royal90| | 2014-7-17 13:57 | 只看该作者
学习了,谢谢!!!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

58

主题

313

帖子

2

粉丝