crDELAY
croutine. More...
croutine.
h
crDELAY( CoRoutineHandle_t xHandle, TickType_t xTicksToDelay );
Delay a co-routine for a fixed period of time.
crDELAY can only be called from the co-routine function itself - not from within a function called by the co-routine function. This is because co-routines do not maintain their own stack.
- Parameters
-
xHandle The handle of the co-routine to delay. This is the xHandle parameter of the co-routine function. xTickToDelay The number of ticks that the co-routine should delay for. The actual amount of time this equates to is defined by configTICK_RATE_HZ (set in FreeRTOSConfig.h). The constant portTICK_PERIOD_MS can be used to convert ticks to milliseconds.
Example usage:
// Co-routine to be created. void vACoRoutine( CoRoutineHandle_t xHandle, UBaseType_t 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_PERIOD_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();}