Hi Dave,
Is not necessary to block the processor after an MLMERXEnableRequest, when you do this you have to change the state of your state machine (usually you are in a endless loop).
Don't call MLMERXEnableRequest again!
for(;
![Smiley Wink :smileywink:](http://freescale.i.lithium.com/i/smilies/16x16_smiley-wink.gif)
{
switch (gi8AppStatus)
{
case IDLE_STATE:
gi8AppStatus= RECEIVER_ALWAYS_ON;
break;
case RECEIVER_ALWAYS_ON:
MLMERXEnableRequest(&gsRxPacket, timeout);
//LOW_POWER_WHILE();
gi8AppStatus= WAIT_RX_DATA;
break;
case WAIT_RX_DATA://Do nothing or background process
break;
case DO_SOMETHING:
break;
}
void MCPSDataIndication(tRxPacket *gsRxPacket)
{
if (gsRxPacket->u8Status == SUCCESS)
{
gi8AppStatus = DO_SOMETHING;
}
}