slm_rtos
(Scott)
September 27, 2022, 8:12pm
1
In tasks.c, there is a great macro/function that is defined
configPRE_SUPPRESS_TICKS_AND_SLEEP_PROCESSING( xExpectedIdleTime );
Comments says “Define the following macro to set xExpectedIdleTime to 0”
So how can I make a C call with the parameter as a uint32_t and have its value changed.
In C++ I could have a function defined as
#define configPRE_SUPPRESS_TICKS_AND_SLEEP_PROCESSING(x) void PreSuppressTicksAndSleepProcessing(uint32_t &ulExpectedIdleTime)
I think the line should be
configPRE_SUPPRESS_TICKS_AND_SLEEP_PROCESSING( &xExpectedIdleTime );
I think you are missing that configPRE_SUPPRESS_TICKS_ANDSLEEP_PROCESSING(xExpectedIdleTime) is a MACRO (not a function). If you want to set xExpectedIdleTIme unconditionally to 0 then just use
#define configPRE_SUPPRESS_TICKS_AND_SLEEP_PROCESSING(xExpectedIdleTime). XExpectdIdleTime = 0
If you want it to call a function, then define it like:
void myfunct(TickType_t* time);
#define configPRE_SUPPRESS_TICKS_AND_SLEEP_PROCESSING(xExpectedIdleTime) myfunct(&XExpectedIdleTime)
These will be in your FreeRTOSConfig.h file