Hola, tengo el siguiente problema, estoy haciendo un contador de segundos el cual tengo asociado a millis() y cada vez que pasa un segundo se incrementa en +1 el DIGITO
void setup() {
TIEMPO1 = millis();
}
void loop() {
TIEMPO2 = millis();
if (TIEMPO2 > TIEMPO1 + 1000) { //si TIEMPO2 supera a TIEMPO1 por un segundo
TIEMPO1 = millis(); //se actualiza TIEMPO1
DIGITO++; //y se suma +1 a DIGITO
if (DIGITO > 9999) {
DIGITO = 0;
}
}
}
Este es mi código, el problema es que pasado unos 30 segundos, de la nada el DIGITO se incrementa en unos +20 y queda desfasado del tiempo real.
Ya comprobé con unos Serial.print y al parecer el problema es en el primer IF que se ejecuta varias veces en dados momentos, haciendo que el DIGITO incremente su valor, pero no logro entender porqué, ya que al ejecutarse el IF, el TIEMPO1 debería de actualizar su valor, haciendo que tenga que pasar un segundo para que se vuelva a ejecutar.