Microchip® Advanced Software Framework

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
crSTART

croutine.

h

 crSTART( xCoRoutineHandle xHandle );

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

Example usage:

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.
 static long 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();
 }

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( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex )
 {
Variables in co-routines must be declared static if they must maintain value across a blocking call.
 static long 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();
 }

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

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