Ciao a tutti,
mi piace mantenere a fine sketch la Ram sotto del 50%: mi riferisco al valore che leggo nella IDE quando vado a caricare su Arduino, sotto la voce "variabili globali".
Quando programmo uso molto Serial.println in modo che, in futuro, in caso di problemi o errori subito al PC capisco la situazione anche a distanza di mesi.
Ciò premesso, con gli ultimi sketch più complessi sono circa al 75% di RAM utilizzata visto che, oltre ad essere sketch lunghi, sono anche pieni di Serial.println.
Conosco Serial.print(F()) che carica il testo sulla Flash piuttosto che sulla Ram, e in tal modo scendo intorno al 55% però mi chiedo, in tal modo ogni volta che Arduino manda il codice (anche se non sarò più connesso via USB lui lo manderà lo stesso) sulla seriale, andrà a leggerlo dalla Flash o sbaglio? Così facendo esaurisco nel giro di pochi mesi le 100.000 letture dalla Flash, usurando presto Arduino? Oppure la Flash e la EEPROM sono due cose diverse?
Grazie per la disponibilità, mi scuso in anticipo per queste domande banali.
Il numero di letture non ha limite, il problema sono le scritture sia per flash che per eeprom. Quindi vai tranquillo con F("BlaBlaBla") ![]()
La vita dela flash (quella dove carichi il programma, che nulla ha a che vedere con la EEPROM) è garantita per sole 10'000 scritture ma non ha limiti per le letture. La macro F() viene usata dal compilatore per mettere la stringa costante in flash nel momento in cui carichi il programma quindi solo una volta che, comunque, useresti per, appunto, caricare il programma; per il resto, nell'uso, sono solo letture ininfluenti.
La EEPROM è altra memoria de ha una vita garantita di almeno 100'000 scritture ... anche qui non ci sono limiti per le letture.
Guglielmo
Ok adesso è tutto chiaro! Giusto per darvi un'idea, sono sceso dal 73% di memoria dinamica al TRENTUNO
meglio così.
Grazie a tutti, alla prossima!
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.