Strano freeze del loop

leo72:
Ma l'hai fatto un controllo statico del consumo di memoria con avr-size oppure no?
Tanto per capire dove andiamo a cascare..

no, come si fa?

leo72:
Poi hai una miriade di invocazioni ad una funzione ToSerial che altro non fa che stampare stringhe sulla seriale. Peccato che tutte quelle stringhe gliele passi dalla Ram.

si, ma solo con il define DEBUG a 1

leo72:
Riscrivi il codice togliendo quella funzione e mettendo un semplice Serial.println in modo da poter usare le stringhe gestite in Flash con la funzione F() e racchiudendo tutto tra #define se vuoi stampare solo in caso di debug.

già ho provato ad usare F() in tutto le Serial.println che non avevano all'interno variabili, ma il sistema andava lo stesso in loop.

leo72:
So che così raddoppi la lunghezza del tuo codice ma elimini un sacco di occupazione di memoria.

questo non è un problema, puoi farmi un esempio? Grazie