大纲:
1. OSTimeTick()
2. OSTimeDlyHMSM()
3. OSTimeDly()
4. OSTimeDlyResume()
5. OSTimeGet()/OSTimeSet()
1. OSTimeTick()
void OSTimeTick(void)
所属文件 | 调用者 | 开关量 |
OS_CORE.c | 任务/中断 | N/A |
返回值 :无
参数说明:无
函数作用:
1). 时钟节拍计数器OSTime + 1
2). 遍历任务控制块链表中的所有任务控制块,个任务存放延时变量OSTCBDly - 1.
3). 使已经到延时的非挂起任务进入就绪状态
源代码 :
void OSTimeTick (void)
{
OS_TCB *ptcb;
#if OS_TICK_STEP_EN > 0u
BOOLEAN step;
#endif
#if OS_CRITICAL_METHOD == 3u
OS_CPU_SR cpu_sr = 0u;
#endif
#if OS_TIME_TICK_HOOK_EN > 0u
OSTimeTickHook(); //调用时钟节拍服务钩子函数
#endif
#if OS_TIME_GET_SET_EN > 0u
OS_ENTER_CRITICAL();
OSTime++; //节拍数 + 1
OS_EXIT_CRITICAL();
#endif
if (OSRunning == OS_TRUE)
{
#if OS_TICK_STEP_EN > 0u
switch (OSTickStepState)
{
case OS_TICK_STEP_DIS:
step = OS_TRUE;
break;
case OS_TICK_STEP_WAIT:
step = OS_FALSE;
break;
case OS_TICK_STEP_ONCE: