- 时间管理:
- 概述:
- uCOS通过周期性时间中断来作为系统时序坐标,此即时钟节拍;
- OS_CFG_TICK_RATE_HZ是os_cfg_app.h中配置时钟节拍频率的,常在10~1000Hz之间;
- 时钟节拍频率越大,精度越高,然而系统负担亦越大(上下文切换等);
- uCOSIII不一定必须要时钟节拍(如低功耗时),但此时不可进行延时和超时判断而已;
- 相关函数:
- 函数OSTimeDly(OS_TICK dly, OS_OPT opt, OS_ERR *p_err);
- 函数调用此任务时会触发任务调度,停止执行直到延时结束;
- 该函数有三种模式,取决于第二个参数:
- 相对模式(OS_OPT_TIME_DLY):
- 第一个参数为延时的节拍的个数,下一个节拍算作第一个,此种有较大误差:
- 相对模式(OS_OPT_TIME_DLY):
- 函数OSTimeDly(OS_TICK dly, OS_OPT opt, OS_ERR *p_err);
- 概述:
- 如图,该任务设置两个节拍的延时(假设一个节拍5ms),即10ms;
- 但事实上这个任务的优先级未知,其可能在这个节拍内处理次序很靠后;
- 其调用该延时函数后可能马上就进入了下一个节拍,所以误差较大