da profano chiede se sarebbe possibile riuscire a "scrivere" tramite codice (già caricato) sul mcu atmega ? Una sorta di codice che si autoaggiorna.
Vediamo lo scenario che credo di non essermi spiegato bene.
Collego ad arduino un pulsante ( o "tasterino" ), ogni volta che lo schiaccio, salvo sul mcu ora e data dell'evento.
E' possibile scrivere solo su una parte della memoria del mcu ?
Avrei 20k+ liberi!
Scusate la pignoleria ma a me interesserebbe scrivere solo suul'atmega, non su mcu esterne.
Ciao,
l'ATMega ha una eeprom integrata (da 512bytes a 4kByte in base al modello), che si può utilizzare per scrivere delle variabili e che non si dovrebbero perdere in caso di riavvio / spegnimento.
Ricordo di aver letto anche nel forum ita qualche consiglio sull'utilizzo.
ciao Lude
l'ATmega168 ha 512 Byte EEprom, e il Atmega328 ha 1024 Byte
Se questo ti basta bene.
C'é la possibilita di memorizare variabili nella memoria flasch (dove c'é memorizzato il Sketch) col progmem ma non so se puoi richiamarle dopo un interuzione di corrente.
Oppure aggiungi un EEProm con interfaccia I2C oppure una schedina SD
con progmem non ho capito una cosa, come si fa a scrivere sulla variabile.
forse è meglio una eprom con interfaccia i2c rispetto ad una sd, come fai ad attaccarla ad arduino senza la shield?
basta prendere un adattatore da microSD a SD e saldare sopra i cavi fare il circuito con le resistenze su una millefori o su una breadbor e il gioco e fatto =)
@uwefed
...mi dispiace contraddirti e spero di sbagliarmi ma con PROGMEM salvi le variabili nella ROM.
Di conseguenza ogni accesso di scrittura a tali variabili non è consentito.
@camba192
bel link, visto che con PROGMEM ho fallito, userò sicuramente il tuo metodo!
...mi dispiace contraddirti e spero di sbagliarmi ma con PROGMEM salvi le variabili nella ROM.
Di conseguenza ogni accesso di scrittura a tali variabili non è consentito.
No, non potrebbe, come già ho detto e provato sono costanti e non variabili, ad ulteriore conferma di ciò riporto la risposta data dall'autore della libreria ad un tizio che chiedeva in che modo potesse cambiare valore alle variabili:
Unfortunately, because of the nature of the architecture of flash memory, there is no way for a program to rewrite the flash values. They must be considered read-only by the software. If you want to store values in non-volatile memory, use the EEPROM library.