一,UCOSII的定时中断
绝大多数的内核要求提供定时中断,以实现延时与超时控制等功能。这个定时中断叫做时钟节拍。时钟的中断子程序ISR和时钟节拍函数OSTimeTick()该函数通知UCOSII,发生了时钟节拍中断。
二,UCOSII系统时钟函数
1,任务延时函数, OSTimeDly(INT16U ticks)
实现申请该服务的任务可以延时一段时间这个系统服务的函数叫做 OSTimeDly(),这段时间的长短是用时钟节拍的数目来确定的。调用该函数会使µC/OS-Ⅱ进行一次任务调度,并且执行下一个优先级最高的就绪态任务。
void OSTimeDly (INT32U ticks)
{
INT8U y;
#if OS_CRITICAL_METHOD == 3u /* Allocate storage for CPU status register */
OS_CPU_SR cpu_sr = 0u;
#endif
if (OSIntNesting > 0u)
{ /* See if trying to call from an ISR */
return;
}
if (OSLockNesting > 0u)
{ /* See if called with scheduler locked*/
return;
}
if (ticks > 0u)
{ /* 0 means no delay! */
OS_ENTE