Nuvoton
/
NuMaker-mbed-tickless-example
NuMaker tickless example
Diff: wakeup_pwrctl.cpp
- Revision:
- 1:eb1da9d36e12
- Child:
- 10:d2e2c79389e1
diff -r d7c3d9c9dbe4 -r eb1da9d36e12 wakeup_pwrctl.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wakeup_pwrctl.cpp Tue Sep 12 16:16:43 2017 +0800 @@ -0,0 +1,21 @@ +#include "mbed.h" +#include "wakeup.h" + +/* Power-down wake-up interrupt handler */ +void PWRWU_IRQHandler(void) +{ + CLK->PWRCTL |= CLK_PWRCTL_PDWKIF_Msk; + + wakeup_eventflags.set(EventFlag_Wakeup_UnID); +} + +void config_pwrctl(void) +{ + SYS_UnlockReg(); + CLK->PWRCTL |= CLK_PWRCTL_PDWKIEN_Msk; + SYS_LockReg(); + /* NOTE: The name of symbol PWRWU_IRQHandler is mangled in C++ and cannot override that in startup file in C. + * So the NVIC_SetVector call cannot be left out. */ + NVIC_SetVector(PWRWU_IRQn, (uint32_t) PWRWU_IRQHandler); + NVIC_EnableIRQ(PWRWU_IRQn); +}