event group

williamjsell wrote on Monday, February 10, 2014:

I have a call in my task:

    uxBits = xEventGroupWaitBits(
                xCalibrationGroup,   //The event group being tested.
                CALIBRATE_4_20 | CALIBRATE_MCHAN |
                CALIBRATE_5VDC | CALIBRATE_10VDC | CALIBRATE_BDTEMP | CALIBRATE_RTD, //The bits within the event group to wait for
                pdFALSE,         //bits are cleared after the module has been run
                pdFALSE,        //any bit will cause the task to run
                xTicksToWait ); //Wait forever

When I start the scheduler, the task executes, but no bits are set. uxBits == 0x0. So I am not clear on the function of the event group, I thought it would allow for the task to process only when one of the flags was set.

rtel wrote on Tuesday, February 11, 2014:

With the parameters set as shown, the task calling that code should remain in the Blocked state for a maximum of xTicksToWait for any one of the CALIBRATE_4_20, CALIBRATE_MCHAN, CALIBRATE_5VDC, CALIBRATE_10VDC, CALIBRATE_BDTEMP, CALIBRATE_RTD bits to be set (assuming those constants are defined to single bit values).

Has the event group been created before you used it?
How do you know uxBits is 0?
What is xTicksToWait set to?


williamjsell wrote on Tuesday, February 11, 2014:

I had xTicksToWait set to 0, but I changed this to portMAX_DELAY and now it is working…thanks!