diff options
-rw-r--r-- | watch-library/hardware/watch/watch_deepsleep.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/watch-library/hardware/watch/watch_deepsleep.c b/watch-library/hardware/watch/watch_deepsleep.c index 3238a953..e3f654f2 100644 --- a/watch-library/hardware/watch/watch_deepsleep.c +++ b/watch-library/hardware/watch/watch_deepsleep.c @@ -155,10 +155,8 @@ void watch_enter_sleep_mode(void) { // disable tick interrupt watch_rtc_disable_all_periodic_callbacks(); - // set brownout detector to check voltage once an hour (64 minutes). - // in sleep, we're not worried about the LED causing a voltage drop and a brownout. - // changes to voltage will take place slowly over months, not quickly over seconds. - SUPC->BOD33.bit.PSEL = 0xF; + // disable brownout detector interrupt, which could inadvertently wake us up. + SUPC->INTENCLR.bit.BOD33DET = 1; // disable all pins _watch_disable_all_pins_except_rtc(); @@ -166,8 +164,8 @@ void watch_enter_sleep_mode(void) { // enter standby (4); we basically hang out here until an interrupt wakes us. sleep(4); - // and we awake! speed the brownout detector back up to 1 check per second. - SUPC->BOD33.bit.PSEL = 0x9; + // and we awake! re-enable the brownout detector + SUPC->INTENSET.bit.BOD33DET = 1; // call app_setup so the app can re-enable everything we disabled. app_setup(); |