crSTART

croutine. h

    crSTART( CoRoutineHandle_t xHandle );

This macro MUST always be called at the start of a co-routine function.

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.
    static int32_t ulAVariable;

        // Must start every co-routine with a call to crSTART();
        crSTART( xHandle );

        for( ;; )
        {
             // Co-routine functionality goes here.
        }

        // Must end every co-routine with a call to crEND();
        crEND();
    }

croutine. h

    crEND();

This macro MUST always be called at the end of a co-routine function.

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.
    static int32_t ulAVariable;

        // Must start every co-routine with a call to crSTART();
        crSTART( xHandle );

        for( ;; )
        {
             // Co-routine functionality goes here.
        }

        // Must end every co-routine with a call to crEND();
        crEND();
    }