vTaskDelay
task.h
void vTaskDelay( const TickType_t xTicksToDelay );
vTaskDelay( 任务延时时间 );
必须将INCLUDE_vTaskDelay 定义为 1,此函数才可用。
按给定的tick 数延迟任务。任务保持阻塞的实际时间取决于 tick 频率。 常量 portTICK_PERIOD_MS 配合 tick 周期分辨率可用于从 tick 频率计算实际时间。
vTaskDelay() 会指定任务想要取消阻塞的时间,该时间是相对于 vTaskDelay() 被调用的时间。
例如,如果指定 时间块为 100 个 tick,那么在调用 vTaskDelay() 100 个 tick 后任务会取消阻塞。
vTaskDelay() 将 导致一个任务从调用 vTaskDelay() 时起阻塞特定的 tick 数。 因此,很难单独使用 vTaskDelay() 来生成固定的 执行频率,因为任务在调用 vTaskDelay() 后取消阻塞与该任务 再次调用 vTaskDelay() 之间的时间可能不是固定的 [ 该任务可能在两次调用之间 采用不同的代码路径,或者可能在每次执行时被打断或被抢占 的次数不同 ]。
vTaskDelayUntil
task. h
void vTaskDelayUntil( TickType_t *pxPreviousWakeTime,
const TickType_t xTimeIncrement );
vTaskDelayUntil( 指针,频率 );
INCLUDE_vTaskDelayUntil 必须被定义为 1 才能使用此函数。
将任