croutine.h
void crDELAY( xCoRoutineHandle xHandle, portTickType xTicksToDelay )
crDELAY はマクロです。 上記のプロトタイプでのデータ型は参照のみのために示されます。
一定の時間コルーチンを遅延する。
crDELAY はコルーチン機能自身からのみ呼び出されることができる、コルーチン関数によってコールされた関数の中からではなく。 それはコルーチンがそれ自身のスタックを保守しないからです。
パラメータ: xHandle 遅延すべきコルーチンのハンドル。 これはコルーチン関数の xHandle パラメータです。
xTickToDelay コルーチンが遅延すべきチック数。 これの実際の時間量は(FreeRTOSConfig.h にある) configTICK_RATE_HZ によって定義されます。 定数portTICK_RATE_MS はチックをミリ秒に変換するために使うことができます。
使用例:
// Co-routine to be created. void vACoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex ) { // Variables in co-routines must be declared static if they must maintain value across a blocking call. // This may not be necessary for const variables. // We are to delay for 200ms. static const xTickType xDelayTime = 200 / portTICK_RATE_MS; // Must start every co-routine with a call to crSTART(); crSTART( xHandle ); for( ;; ) { // Delay for 200ms. crDELAY( xHandle, xDelayTime ); // Do something here. } // Must end every co-routine with a call to crEND(); crEND(); }