Warum verwaltest Du Deine EEPROM-Variablen selber? Lass das doch den
Compiler machen.
Eine Variable im RAM anlegen:
Eine Variable als Gegenstück im EEPROM anlegen:
1 | uint16_t ee_var __attribute__ ((section (".eeprom")));
|
im Programm so ins EEPROM kopieren:
1 | eeprom_write_block(&ram_var, &ee_var, sizeof(ee_var));
|
und so wieder zurückholen:
1 | eeprom_read_block(&ram_var, &ee_var, sizeof(ee_var));
|
Wenn Du einen ganzen Schwung voller Settings hast, die Du praktisch
immer gemeinsam ins EEPROM und zurück kopieren willst, dann pack die am
Besten in eine struct. Dann kannst Du alle Werte mit einem einzigen
Befehl sichern oder wieder lesen.
Gruß, Stefan