《嵌入式实时操作系统uC/OS-II》第五章时间管理
作者:互联网
1、uC/OS-II要求提供定时中断,以实现延时与超时控制等功能。
2、OS_TIME.H中的5个处理时间问题的功能函数:
OSTimeDly();
OSTimeDlyHMSM():
OSTimeDlyResume():
OSTimeGet();
OSTimeSet();
3、任务延时函数OSTimeDly()
延时时间的长短是由时钟节拍的数目来确定的,调用该函数会使系统进行一次任务调度,从而去执行下一个优先级最高的就绪态任务。
指定一个0值,表示不想对该任务延时,函数会立即返回到调用该函数的任务。指定一个非0值,会从就绪表中移除当前任务。延时节拍数会保存在当前任务控制块OS_TCB中,每隔1个时钟节拍,这个延时节拍数会减一。
想延时1个时钟节拍,实际上是在0~1个节拍之间结束延时。如果程序需要至少延时1个节拍,必须调用OSTimeDly(2);
4、按时分秒延时函数OSTimeDlyHMSM()
OSTimeDly()使用时必须要知道延时时间对应的时钟节拍数目。而时分秒延时函数OSTimeDlyHMSM()就可以按照时分秒以及毫秒来延迟时间,更加自然些。最长可延时256h。
5、恢复延时的任务OSTimeDlyResume()
延时的任务可以不等待延时期满,而是通过其他任务调用该函数取消延时而使自己处于就绪态。
6、系统时间OSTimeGet()和OSTimeSet()
无论时钟节拍何时发生,uC/OS-II都会将一个32位计数器加1.这个计数器在OSStart()初始化多任务时被置为0,并且在4294967295个节拍执行完一遍时重新计数。
可以通过OSTimeGet()和OSTimeSet()函数来获得和改变该计数器的值。
标签:OSTimeDly,函数,节拍,II,实时操作系统,延时,OS,时钟 来源: https://blog.csdn.net/lvturancao/article/details/104747619