[Co-Routine Specific]

void crDELAY( CoRoutineHandle_t xHandle, TickType_t xTicksToDelay )

crDELAY is a macro. The data types in the prototype above are shown for reference only.

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.

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();

Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.

Latest News

FreeRTOS v10.2.1 is available for immediate download. MIT licensed, includes 64-bit RISC-V, NXP Cortex-M33 demo & Nuvoton Cortex-M23 demo & STM32H745 dual core (AMP) demo.

New Updates to MIT licensed IoT MQTT and POSIX libraries are now available. New library IoT HTTPS is available.  Includes demo projects.

View a recording of the “OTA Update Security and Reliability” webinar, presented by TI and AWS.


FreeRTOS and other embedded software careers at AWS.

FreeRTOS Partners
ARM Connected RTOS partner for all ARM microcontroller cores
Espressif ESP32
IAR Partner
Microchip Premier RTOS Partner
STMicro RTOS partner supporting ARM7, ARM Cortex-M3, ARM Cortex-M4 and ARM Cortex-M0
Texas Instruments MCU Developer Network RTOS partner for ARM and MSP430 microcontrollers
OpenRTOS and SafeRTOS
Xilinx Microblaze and Zynq partner