本帖最后由 lixiaoxu2meng 于 2011-4-28 11:53 编辑
本人是菜鸟,刚接触UCOS,想请教一下OSTimeDly();函数的用法,
假如:有两个任务:任务1的优先级高于任务2
任务1
void Task1(void *pdata)
{
pdata = pdata; // 避免编译警告
while(1)
{
GPIO_SetBits(GPIOF, GPIO_Pin_6);
OSTimeDly(100); /* Wait 100 ticks */
}
}
任务2
void Task2(void *pdata)
{
pdata = pdata; // 避免编译警告
while(1)
{
GPIO_ResetBits(GPIOF, GPIO_Pin_6);
OSTimeDly(80); /* Wait 80 ticks */
}
}
开始执行任务1 当执行到 OSTimeDly(100); 时,将任务挂起,然后每个OSTimeDly进行任务调度,查找当前最高优先级的任务,即任务2,那么当执行到任务2的 OSTimeDly(80); 时,此时任务一的OSTimeDly(100); 和OSTimeDly(80);是否冲突;
请高手指点 |