请教前辈,使用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);
}
}
}
} |