Ardu-Aquarium Controller v. 3.3.1

riciweb:
Grazie del consiglio, e sopratutto permettiti sempre ti prego :slight_smile: ma così non si consuma più flash?

No, il consumo di Flash è identico perché la stringa è sempre salvata in Flash.
Quanto tu compili uno sketch che contiene una stringa da stampare su LCD o seriale, il compilatore salva la stringa nel firmware, e questo viene scritto nella Flash.
Ciò che fa la differenza è il dopo: usando la funzione F(), che altro non è se non una scorciatoia per gestire i dati in Flash con PROGMEM, la stringa tu la leggi direttamente dalla Flash mentre senza la stringa viene prima copiata in RAM e poi spedita al display o sulla seriale. Quindi occupi anche RAM.

Un'altra ottimizzazione sarebbe quella di gestire le voci del menu sempre da Flash con PROGMEM, riscrivendo un pochino le funzioni per la stampa.

Altra cosa che ho visto è la presenza di diverse porzioni di codice uguale, ad esempio quello per la stampa delle frecce. Fatene una funzione da richiamare dove serve, così recuperate un pò di Flash.