/* * EventTimerTest.ino - Event Timer Test Program */ #include "EventTimer.h" // Function prototypes bool et5Sec (); bool et3Sec (); // Create event timers EventTimer event5Sec (MS_SECONDS(5), et5Sec); EventTimer event3Sec; void setup() { Serial.begin(9600); // init output Serial.println("EventTimerTest..."); // startup message delay(10); // starup delay event3Sec.setInterval(MS_SECONDS(3)); // set 3 second interval event3Sec.setFunction(et3Sec); // set 3 second function event5Sec.start(); // start 5 second event timer } void loop() { ULONG now = millis(); // get current time event5Sec.update(now); // update 5 sec event timer event3Sec.update(now); // update 3 sec event timer if ((! event5Sec.isRunning()) // if 5 sec event has stopped... && (! event3Sec.isRunning())) { // ...and 3 sec event has stopped Serial.println("Exit..."); // final message Serial.flush(); // wait for output to complete exit(0); // stop program } } bool et5Sec () { ULONG now = millis(); // get current time Serial.print(SECONDS_MS(now)); // print current time in seconds Serial.println(": 5 Second Event *****"); // output message if (! event3Sec.isRunning()) { // if 3 sec event not running event3Sec.start(now); // start it up } if (SECONDS_MS(now) >= 30) { // stop after 30 seconds return false; } return true; // reschedule 5 sec event } bool et3Sec () { ULONG now = millis(); // get current time Serial.print(SECONDS_MS(now)); // print current time in seconds Serial.println(": 3 Second Event ***"); // output message if (SECONDS_MS(now) >= 40) { // stop after 40 seconds return false; } return true; // reschedule 3 sec event }