#include "all-headers.h" // Bit operation references const uint32_t bufferEmpty(0); const uint32_t bufferFull(~ bufferEmpty); // Button variables uint32_t antiBlinkBuffer[5]; bool buttonReleased[5]; bool actionDone[5]; DigitalPort LED[5]; DigitalPort BUTTON[5]; // Counter uint32_t counter(0); void setup (USER_MODE) { // Start digitalWrite(L0_LED, true); // Init buttons and LEDs BUTTON[0] = P0_PUSH_BUTTON; BUTTON[1] = P1_PUSH_BUTTON; BUTTON[2] = P2_PUSH_BUTTON; BUTTON[3] = P3_PUSH_BUTTON; BUTTON[4] = P4_PUSH_BUTTON; LED[0] = L0_LED; LED[1] = L1_LED; LED[2] = L2_LED; LED[3] = L3_LED; LED[4] = L4_LED; for (unsigned int i(0); i < 5; i++) { antiBlinkBuffer[i] = 0; buttonReleased[i] = digitalRead(BUTTON[i]); actionDone[i] = false; } // Init LCD printString(MODE_ "Wake up in "); printUnsigned(MODE_ millis(MODE)); printString(MODE_ "ms"); gotoLineColumn(MODE_ 1, 0); } void loop (USER_MODE) { busyWaitUntil(MODE_ counter * 1000); counter++; gotoLineColumn(MODE_ 1, 0); printString(MODE_ "Date:"); printUnsigned(MODE_ millis(MODE)); }