1. OSTimeDly():
该函数有三种模式:相对模式、周期模式和绝对模式。
1)相对模式
OSTimeDly()——相对模式相对模式下,(1)处时钟节拍中断处理,(2)处中断结束开始运行高优先级任务,(3)处运行完成切换到低优先级任务中运行,(4)处低优先级任务调用OSTimeDly() 延时函数以“相对模式”延时2个时钟节拍,在(7)处延时结束。
“相对模式”在系统负荷较重时有可能延时会少一个节拍,甚至偶尔差多个节拍。
2)周期模式
OSTimeDly()——周期模式在“周期模式”下,任务仍可能会被推迟执行,但它总会和预期的“匹配值”同步,因此,推荐使用“周期模式”来实现长时间运行的周期性延时。
3)绝对模式
“绝对模式”可用来在上电后指定的时间执行具体的动作。如,在产品上电 10s 后关闭某盏灯。
2. OSTimeDlyHMSM():
延时长度通过“小时/分/秒/毫秒”指定,该函数仅在“相对模式”下工作。
3. OSTimeTick():
每次时钟节拍中断到来时,中断服务函数必须调用该函数。μC/OS-III通过该函数来更新任务的延时和超时,一些其他的系统调用需要用到任务的延时和超时状态。
网友评论