Uso libreria EEPROM.h

Ho una domanda da porvi.
Uso la libreria in oggetto ed utilizzo EEPROM put e EEPROM get per salvare e richiamare.
es: EEPROM.put(0x00,a)
Volendo memorizzare 20 variabili di tipo diverso in coda una all'altra mi sono trovato a scrivere

EEPROM.put(0x00,a);
EEPROM.put(0x00+sizeof(a),b);
EEPROM.put(0x00+sizeof(a)+sizeof(b),c);
EEPROM.put(0x00+sizeof(a)+sizeof(b)+sizeof(c),d);
.....

alla ventesima variabile esco pazzo, la riga è enorme.
Oltre a mettere l'indirizzo fisso della variabile, esiste un altro metodo per scrivere quello che voglio?
TEnendo conto che poi non le richiamerò tutte insieme, ma singolarmente quando mi servono...
Grazie

SI, studiare l'allegato documento :smiley:

Guglielmo

EEPROM.pdf (181 KB)

manolomao:
Volendo memorizzare 20 variabili di tipo diverso in coda una all'altra mi sono trovato a scrivere
alla ventesima variabile esco pazzo, la riga è enorme.

In ogni caso, oltre a studiare quel documento (e quindi scrivere ad esempio una struttura e non singole variabili...), la prima cosa che mi viene in mente per agevolarti è fare una funzione che fa questo per te, una per tipo di variabile (giusto per evitare l'overload in C++...), ossia una cosa come:

...
int ptr = 0;
...
void EputInt(int valore) {
  EEPROM.put(ptr, valore);
  ptr += sizeof(valore);
}
void EputLong(long valore) {
  EEPROM.put(ptr, valore);
  ptr += sizeof(valore);
}
...
  // Uso:
  EputInt(a);
  EputLong(b);
  EputInt(c);
...

(ed ovviamente anche le equivalenti funzioni "int EgetInt()", "long egetLong()" eccetera.