Buona sera,
per cortesia vorrei un consiglio.
Sto scrivendo uno sketch per Arduino Mega, che è abbastanza lungo.
A forza di aggiungere funzioni, la compilzione ha cominciato a dare questo messaggio: Lo sketch usa 43574 byte (17%) dello spazio disponibile per i programmi. Il massimo è 253952 byte.
Le variabili globali usano 6190 byte (75%) di memoria dinamica, lasciando altri 2002 byte liberi per le variabili locali. Il massimo è 8192 byte.
Poca memoria disponibile, potrebbero presentarsi problemi di stabilità
Una delle funzioni è una serie di Serial.println che stampano in sequenza alcune linee con delle istruzioni per l’operatore.
Riporto la funzione con dimensioni reali, anche se cambio il contenuto con tutti caratteri . (punto)
Se da questa funzione cancello quasi tutte le linee di serial.println, l'errore sparisce.
Avete qualche consiglio per poter continuare ad ottenere il messaggio lungo su monitor seriale ma senza errore di compilazione?
Grazie
Se sono stringhe costati, le puoi memorizzare in flash con la macro F() (la trovi descritta alla fine di QUESTA pagina del reference) ... in pratica i tuoi Serial.print() / Serial.println() diventano:
Serial.print( F ("stringa da stampare") );
...
Serial.println( F ("stringa da stampare") );
Vedrai che l'occupazione di flash cresce e cala l'occupazione di SRAM.
Buongiorno,
questa MACRO F è documentata? Ovvero, si trova una descrizione di cosa fa il compilatore?
Mi piacerebbe saperlo, tanto così, perchè usare le cose a scatola chiusa non lo trovo divertente. Grazie
Se cerchi con Google "Arduino F() macro" trovi di tutto e di più ... comunque, semplicemente, sfrutta PROGMEM ovvero mette le "costanti" in flash invece che in SRAM.