#include "LCDDriver.hpp"
#define prev 2 // PREVIOUS
#define next 3 // NEXT
#define mode 4 // CONFIGURATION SELECTOR
#define manl 5 // MANUAL
uint64_t currentTimeMs;
uint64_t previousTimeMs;
uint16_t timeIntervalMs;
void setup() {
LCDInitialize();
currentTimeMs = 0; // Initialize
previousTimeMs = 0; // Initialize
timeIntervalMs = 10; // 1 Second
for(int i = 2; i <= 5; i++){
pinMode(i, INPUT_PULLUP);
}
}
uint16_t seconds = 1;
uint16_t minutes = 0;
uint16_t hour = 0;
void loop() {
currentTimeMs = millis();
if(currentTimeMs - previousTimeMs >= timeIntervalMs){
LCDClear();
seconds++;
previousTimeMs = currentTimeMs;
if(seconds == 60){
seconds = 1;
minutes++;
}
if(minutes == 60){
minutes = 0;
hour++;
}
LCDWrite(String(hour) + ":" + String(minutes) + ":" + String(seconds));
}
// Reset
if(previousTimeMs > currentTimeMs){
currentTimeMs = 0;
}
if(!digitalRead(prev)){
seconds--;
} else if (!digitalRead(next)){
seconds++;
}
}