Code: Select all
#include <Adafruit_SleepyDog.h>
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
unsigned long t;
int state;
void loop() {
////////// PICK ONE
// delay (10);
int sleepMS= Watchdog.sleep (16);
if (millis() > t) {
switch (state) {
case 0:
digitalWrite (LED_BUILTIN, 1);
t= millis() + 500; ///// THIS
state= 1;
break;
case 1:
digitalWrite (LED_BUILTIN, 0);
t= millis() + 1000; //// THAT
state= 0;
}
}
}
With the first statement in loop() delay(10) in place, the LED blinks fine, half second on full second off. The delay makes time (millis()) "chunky" but that's fine.
With Watchdog.sleep (16) in place, the code appears to halt -- but I determined experimentally (by changing ///// THIS and //// THAT values to + 1, eg blink very fast) that in fact sleep() is sleeping for a very long time, seconds.
I realize sleep() can only handle fixed values (16, 32, etc). But any value I use results in this excessively long sleep.
Any suggestions?