Si tienes problemas con asignar lapsos prolongados, también puedes echar una probadita a la librería que voy a adjuntar. Las instrucciones de uso se encuentran en el archivo "Léeme.txt".
La función que imprime el tiempo yo la resumiría así:
void imprimirTiempo(unsigned long ms, char* string) { // El array ingresado debe tener al menos 9 bytes/caracteres de tamaño
ms /= 1000;
byte s = ms % 60;
ms /= 60;
byte m = ms % 60;
sprintf(string, "%d:%02d:%02d", ms / 60, m, s);
}
Nótese que de primer parámetro recibe el tiempo en milisegundos; y es justo lo que retorna una función de la librería que acabo de mencionar.
En el segundo parámetro se coloca el nombre de un array de char; que viene siendo donde se almacenará la conversión a texto para posteriormente ser impreso en cualquier pantalla de lo que sea.
Countdown.zip (5.87 KB)