函數(shù)名 :vTaskDelay 頭文件 :task. h 函數(shù)功能:任務相對延時 函數(shù)聲明:
void vTaskDelay( portTickType xTicksToDelay );
INCLUDE_vTaskDelay 必須定義為 1以使能此函數(shù)。見configuration 章節(jié)獲得更多信息。 延遲一個任務給定數(shù)量的時間封(心跳間隔時間)。實際任務阻塞的時間長度在于時間封頻率。常量portTICK_RATE_MS 可以用來計算時間封的實際時間間隔。 vTaskDelay指定了任務從調(diào)用 vTaskDelay 起算,解除阻塞的 相對時間。舉例,指定阻塞時間為100 個時間封,會導致任務在調(diào)用vTaskDelay后阻塞100 個時間封。 vTaskDelay并不提供一個好方法控制周期任務的頻率,其它任務和中斷的活動,會影響vTaskDelay的調(diào)用頻率。見 vTaskDelayUntil() ,這是另外一種API函數(shù),設計來便利固定頻率的執(zhí)行。它靠指定絕對時間(而非相對時間)來實現(xiàn)功能,而此時調(diào)用的任務進入阻塞。 具體參數(shù) xTicksToDelay :時間封的數(shù)量。 范例
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 );
}
}
更多建議: