第3章时间管理
3.1时间管理API
3.2API原理
OSTimeDly()和OSTimeDlyHMSM()的原理都是根据任务和其需要延时的节拍,调用OS_TickListInset()来讲该任务插入到时钟节拍轮(OSCfg_TickWheel[] 详见上章)中,并把该任务从就绪队列中脱离。
之后每个时钟节拍都会判断任务延时是会否结束,结束了就把任务脱离时钟节拍轮,进行下一步操作。
OSTimeDlyResume()则是在延时没有结束之前,强行将任务脱离时钟节拍轮,进行下一步操作
OSTimeGet()和OSTimSet()则是对OSTickCtr(时钟节拍计数,随着时间累加,上章提到过)进行相应操作。
3.3细节重点
3.3.1周期延时和相对延时
相对延时,在CPU负担过重的时候,可能会造成节拍延时误差
周期延时则不会
3.3.2延时理论最长时间
49天