【文件属性】:
文件名称:任务的延时-ucOS-II入门教程(任哲)
文件大小:5.35MB
文件格式:PPT
更新时间:2021-04-22 18:27:12
UCOS-II
任务的延时
由于嵌入式系统的任务是一个无限循环,并且μC/OS-II还是一个抢占式内核,所以为了使高优先级别的任务不至于独占CPU,可以给其他任务优先级别较低的任务获得CPU使用权的机会,μC/OS-II规定:除了空闲任务之外的所有任务必须在任务中合适的位置调用系统提供的函数OSTimeDly( ),使当前任务的运行延时(暂停)一段时间并进行一次任务调度,以让出CPU的使用权。
void OSTimeDly (INT16U ticks)
{
#if OS_CRITICAL_METHOD = = 3
OS_CPU_SR cpu_sr;
#endif
if (ticks > 0)
{
OS_ENTER_CRITICAL( );
if ((OSRdyTbl[OSTCBCur->OSTCBY]
&= ~OSTCBCur->OSTCBBitX) = = 0)
{
OSRdyGrp
&= ~OSTCBCur->OSTCBBitY; //取消当前任务的就绪状态
}
OSTCBCur->OSTCBDly = ticks;//延时节拍数存入任务控制块
OS_EXIT_CRITICAL( );
OS_Sched( ); //调用调度函数
}
}
这是系统提供的延时函数