vTaskDelay 任务相对延时
vTaskDelay
函数名 :vTaskDelay 头文件 :task. h 函数功能:任务相对延时 函数声明:
void vTaskDelay( portTickType xTicksToDelay );
INCLUDE_vTaskDelay 必须定义为 1以使能此函数。见configuration 章节获得更多信息。 延迟一个任务给定数量的时间封(心跳间隔时间)。实际任务阻塞的时间长度在于时间封频率。常量portTICK_RATE_MS 可以用来计算时间封的实际时间间隔。 vTaskDelay指定了任务从调用 vTaskDelay 起算,解除阻塞的 相对时间。举例,指定阻塞时间为100 个时间封,会导致任务在调用vTaskDelay后阻塞100 个时间封。 vTaskDelay并不提供一个好方法控制周期任务的频率,其它任务和中断的活动,会影响vTaskDelay的调用频率。见 vTaskDelayUntil() ,这是另外一种API函数,设计来便利固定频率的执行。它靠指定绝对时间(而非相对时间)来实现功能,而此时调用的任务进入阻塞。 具体参数 xTicksToDelay :时间封的数量。 范例
void vTaskFunction( void * pvParameters )
{
/* Block for 500ms. */
const portTickType xDelay = 500 / portTICK_RATE_MS;
for( ;; )
{
/*
Simply toggle the LED every 500ms, blocking between each toggle. */
vToggleLED();
vTaskDelay( xDelay );
}
}