其他分享
首页 > 其他分享> > 《嵌入式实时操作系统uC/OS-II》第五章时间管理

《嵌入式实时操作系统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