boh,,, la mia te l'ho detta,,,, se fai <= oppure >= vai sul sicuro in tutti i casi del genere.
poi che vuoi fare ? interrogare l'rtc ad ogni giro di loop?
poi sta "cosa" la vuoi tenere accesa 59 secondi ogni 24 ore?
e comunque se c'è una cosa che non manca sono prorio i timer di arduino
Anche interrogandolo ogni 10 secondi funziona sicuramente... Leggendo l'RTC a ogni giro o ogni decimo di secondo o secondo si ha una precisione superiore, ma secondo i casi può essere superfluo.
Come detto da cotestatnt, se il loop gira con un periodo maggiore di un minuto, c'è qualche altra cosa da "rivedere"...
Premesso che personalmente non uso mai l'approccio ora/minuti/secondi, ma ragiono sempre in termini di tempo Unix, per come la vedo io spesso anche un tempo di loop() maggiore di un secondo è troppo (il che significa abbandonare completamente l'struzione delay )
Infatti di solito faccio un confronto diretto sul secondo e non ho mai avuto problemi (anzi mi tocca inserire un flag per evitare di chiamare più di una volta l'evento programmato).
if (tempCorrenteUnix == tempoProgrammatoUnix){
// evento da programmare
}
Beh... Certo... Il loop dovrebbe girare con un periodo di qualche millisecondo o qualche decina di millisecondi, salvo in casi in cui si sia perfettamente coscienti di poterlo far fermare intenzionalmente fino alla pressione di un pulsante, perché è un programma molto semplice e/o non deve fare altro nel frattempo.