Poi vedo di inventarmi un programma minimale che si limita a stampare sul monitor seriale.
Tranquillo, prima vediamo di risolvere il problema attuale con la state machine ![]()
EDIT:Vi tengo aggiornati, pultroppo stamattina ho potuto fare poco causa riunione urgente ![]()
L'arduino si bloccava alla fasi di inizializazione, fortunatamente il problema era legato alla poca memoria disponibile. Ho risolto spostando alcuni stampate maggiori sulla seriale nella memoria flash con il comando Serial.print(F("Testo")). Rientrato l'avviso di allarme l'arduino riprende a "funzionare".
Altro errore che ho trovato รจ che nella funzione "ImpostaAlarm" non veniva chiamata il tempo attuale, ma era richiamata solamente in un altra funzione(ovviamente non globale), non sono stato a metterla globale tanto una volta usata per caricare l'allarme smette di essere utile....
La funzione:
DateTime now = rtc.now();
DateTime next (now + TimeSpan(0, 0, 1, 0)); //(GG,HH,MM,SS)
rtc.setAlarm1(next, DS3231_A1_Hour);
Serial.print("Imposta allarme alle ");
Serial.print(next.hour());
Serial.print(":");
Serial.println(next.minute());
Serial.flush(); // svuota seriale
dopo tutto questo il software continua a essere zoppo, dopo aver eseguito con successo due iterazioni dello stato S_SAVE sembra che vada in blocco ulteriormente, domani tempo permettendo indago.
ThEnGi