Arduino logger

Ciao,

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" :wink: ), 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!

o memorizzi dentro delle variabili oppure
http://www.e-armazem.com.br/dev/fat16-32driver/FAT16-32%20File%20System%20Driver%20for%20ATMEL%20AVR.pdf

...memorizzi dentro delle variabili...

Non posso memorizzare dentro delle variabili perchè quando spengo arduino perderei il loro valore...oppure no ?

si, si perdono

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.

M

@pitusso
Grazie per la dritta, trovato!

solo per completare l'informazione :slight_smile:

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

Ciao Uwe

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?

grazie molto interessante, lo proverò al più presto!

la sd la puoi attaccare con dei cavi :wink:

interessante ma cosa fai i cavi li metti sui pin dell'sd e quelli di arduino?

no servono delle resistenze per abbasare la tensione di arduino a 3,3 volt sennò la sd si rompe...

http://forum.allaboutcircuits.com/image_cache/httpimg441.imageshack.usimg4412391schematicuo7.jpg

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 =)

cosi
http://cambarduino.altervista.org/wp-content/uploads/2009/12/091211_231702-1024x768.jpg :wink:

@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.

salvi in flash invece che in ram.
leggiti questo PROGMEM - Arduino Reference

non sono sicuro che i dati rimangano anche se togli la corrente.

salvi in flash invece che in ram.

Siamo d'accordo, ma non ho accesso in scrittura, le variabili in realtà sono costanti.

ma con progmem non ce un modo per scriverci sopra la variabile, ci ho gia provato una volta e mi dava errore

allora questo potrebbe risolvere?
http://arduiniana.org/libraries/flash/
Ciao Uwe

allora questo potrebbe risolvere?
Flash | Arduiniana

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.

Mikal