#include <Snooze.h>
SnoozeDigital digital;
SnoozeAlarm alarm;
SnoozeBlock config_teensy32(digital, alarm);
#define RESTART_ADDR 0xE000ED0C
#define WRITE_RESTART(val) ((*(volatile uint32_t *)RESTART_ADDR) = (val))
void restart() {
WRITE_RESTART(0x5FA0004);
}
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
digital.pinMode(21, INPUT_PULLUP, FALLING); // pin, mode, type
}
void loop() {
int who;
alarm.setRtcTimer(0, 0, 10); // hour, min, sec
who = Snooze.hibernate(config_teensy32); // returns module that woke processor
if (who == 21) {
digitalWrite(LED_BUILTIN, HIGH);
delay(2000);
digitalWrite(LED_BUILTIN, LOW);
delay(2000);
}
if (who == 35) {
digitalWrite(LED_BUILTIN, HIGH);
delay(500);
digitalWrite(LED_BUILTIN, LOW);
delay(500);
}
restart();
}