Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

37 wiersze
863 B

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