Liebe Kollegen,
an einem Messgerät auf Basis von ATMEGA1284 sollen zwei unterschiedliche
Applikationen laufen. Applikation 1 hat einmalig in EEPROM mehrere
HW-Parameter gespeichert und kann sie jetzt jedesmal auslesen. (Das
Speichern ins EEPROM ist jetzt nicht mehr aktiv).
1 | //Applikation 1
|
2 | uint8_t EEMEM HW_ver;
|
3 | eeprom_write_byte(&EEMEM HW_ver, 2);
|
Diesen abgespeicherten Wert würde ich gerne nach dem Flashen der zweiten
Applikaton lesen können. Wie macht man es?
1 | //Applikation 2
|
2 | uint8_t EEMEM HW_ver;
|
3 | uint8_t HW_ver_SRAM = eeprom_read_byte(&HW_ver);
|
Nach dem Flashen der zweiten applikation, lese ich aber eine 0.
Wahrscheinlich stimmt der Speicherort nicht, obwohl ich die gleiche
Reihenfolge in der Definition der EEMEM variablen in beiden apps habe.
Wenn ich die Applikation 1 darauf spiele, kann ich die Variable aus
EEPROM wieder richtig lesen, d.h. EEPROM wird nicht beim Flashen
gelöscht! (wir kennen ja die Bugs mit EESAVE beim Flashen und im
Debugger).
Wie geht es denn?
Vielen Dank für alle Tipps!
Karel