// Pulsadores para igualar HH y MM
// Pulsador de start, stop, reset, modificar HH y MM
hw_timer_t *timer = NULL;
volatile bool toggleLED = false;
int hh = 0, mm = 0, ss = 0;
bool estado = false;
void IRAM_ATTR reloj() {
if (estado) {
if (ss < 59) {
ss++;
} else {
ss = 0;
if (mm < 59) {
mm++;
} else {
mm = 0;
if (hh < 23) {
hh++;
} else {
hh = 0;
}
}
}
}
}
void setup() {
Serial.begin(115200);
pinMode(4, OUTPUT);
timer = timerBegin(10000);
timerAttachInterrupt(timer, &reloj);
timerAlarm(timer, 10000, true, 0);
pinMode(15, INPUT_PULLUP);
pinMode(16, INPUT_PULLUP);
pinMode(17, INPUT_PULLUP);
pinMode(18, INPUT_PULLUP);
pinMode(19, INPUT_PULLUP);
}
void loop() {
if (digitalRead(15) == 0) {
estado = true;
delay(200);
}
if (digitalRead(16) == 0) {
estado = false;
delay(200);
}
if (digitalRead(17) == 0) {
hh = 0;
mm = 0;
ss = 0;
delay(200);
}
if (digitalRead(18) == 0) {
if (hh < 23) {
hh++;
} else {
hh = 0;
}
delay(200);
}
if (digitalRead(19) == 0) {
if (mm < 59) {
mm++;
} else {
mm = 0;
}
delay(200);
}
Serial.print(hh);Serial.print(":");
Serial.print(mm);Serial.print(":");
Serial.println(ss);
delay(200);
}