1、相对延时函数
将当前任务添加到阻塞列表pxDelayedTaskList,任务进入阻塞态。
vTaskDelay → prvAddCurrentTaskToDelayedList → vListInsert( pxDelayedTaskList, &( pxCurrentTCB->xStateListItem ) )。任务的阻塞时间更新到状态列表项xStateListItem
xTimeToWake = xConstTickCount + xTicksToWait;/* The list item will be inserted in wake time order. */listSET_LIST_ITEM_VALUE( &( pxCurrentTCB->xStateListItem ), xTimeToWake );
2、绝对延时函数
将当前任务添加到阻塞列表pxDelayedTaskList,任务进入阻塞态。比相对延时更准确。
vTaskDelayUntil → prvAddCurrentTaskToDelayedList
3、系统节拍
FreeRTOS的系统时钟节拍计数器是xTickCount,在SysTick中断加1。