bool power_enabled = false; bool key_pressed = false; int main(void) { SystemCoreClockUpdate(); Board_Init(); DEBUGSTR("In main()\r\n"); /* Initialize the Event Router */ Chip_EVRT_Init(); PMC_Evrt_Configure(EVRT_SRC_WAKEUP0); if (key_pressed) { DEBUGSTR("Power Enabled\r\n"); power_enabled = true; } else { DEBUGSTR("Enter Sleep Mode in mian()\r\n"); /* Call Pre SleepPowerDown function */ PMC_Pre_SleepPowerDown(); /* Goto Deep Sleep mode */ Chip_PMC_Set_PwrState(PMC_DeepPowerDown); /* Wake up from Deep power down state is as good as RESET */ while (1) {} } for(;;) { Board_LED_Toggle(0); DelayUs(200000); } } void EVRT_IRQHandler(void) { if (Chip_EVRT_IsSourceInterrupting(EVRT_SRC_WAKEUP0)) { Chip_EVRT_ClrPendIntSrc(EVRT_SRC_WAKEUP0); if (power_enabled) { power_enabled = false; /* Call Pre SleepPowerDown function */ PMC_Pre_SleepPowerDown(); /* Goto Deep Sleep mode */ Chip_PMC_Set_PwrState(PMC_DeepPowerDown); /* Wake up from Deep power down state is as good as RESET */ while (1) {} } else { key_pressed = true; } } } |
I'm also experiencing this issue. Can anyone from NXP offer some insight?