目录
一、延时函数
1、vTaskDelay()函数
相对延时是指每次延时都是从任务执行函数vTaskDelay()开始,延时指定的时间结束;
(1) 延时时间由参数xTicksToDelay来确定,为要延时的时间节拍数,延时时间肯定要大于 0;否则的话相当于直接调用函数 portYIELD()进行任务切换。
(2) 调用函数vTaskSuspendAll()挂起任务调度器。
(3)调用函数prvAddCurrentTaskToDelayedList()将要延时的任务添加到延时列表pxDelayedTaskList 或者 pxOverflowDelayedTaskList()中。
(4) 调用函数xTaskResumeAll()恢复任务调度器。
(5) 如果函数xTaskResumeAll()没有进行任务调度的话那么在这里就得进行任务调度。
(6) 调用函数 portYIELD_WITHIN_APIO进行一次任务调度。
2、vTaskDelayUntil()函数
绝对延时是指每隔指定的时间,任务以固定的频率执行。