Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

37 linhas
867 B

  1. #include "MainUnit.h"
  2. #include "Rtc.h"
  3. #include "Pins.h"
  4. #include "Debug.h"
  5. const char WOKE_UP[] PROGMEM = "Woke up from sleep\n";
  6. namespace mainunit {
  7. void interrupt() {
  8. detachInterrupt(digitalPinToInterrupt(RTC_WAKE));
  9. }
  10. void interruptIn(uint16_t seconds) {
  11. rtc::setAlarm(seconds);
  12. pinMode(RTC_WAKE, INPUT);
  13. attachInterrupt(digitalPinToInterrupt(RTC_WAKE), interrupt, FALLING);
  14. }
  15. void sleep(period_t period) {
  16. Log.notice(F("Sleeping for period : %d\n"), period);
  17. LowPower.powerDown(period, ADC_OFF, BOD_OFF);
  18. Log.verbose(reinterpret_cast<const __FlashStringHelper *>(WOKE_UP));
  19. }
  20. void deepSleep(uint16_t seconds) {
  21. Log.notice(F("Deep sleeping for %d seconds\n"), seconds);
  22. interruptIn(seconds);
  23. LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
  24. Log.verbose(reinterpret_cast<const __FlashStringHelper *>(WOKE_UP));
  25. }
  26. }