Hallo,
Ich arbeite schon seit einiger Zeit mir dem Xmega32A4 und verwende dazu
die von Atmel stammende xeeprom.h für meine EEPROM-Zugriffe. Aber seit
gestern habe ich Probleme damit.
Bis jetzt hat das Verändern der EEPROM-Daten im Memory-Fenster immer
funktioniert (im Debug-Modus - ich verwende AVR-Studio in der letzten
Version). D.h. wenn ich zB eine Variable im Memory-Fenster von 0x00 auf
0xFF gesetzt habe, hat sich der Wert im Memory-Fenster und auch im
Watch-Fenster bei der entsprechenden Variable aktualisiert (falls
vorhanden). Nur seit gestern geht das nicht mehr. Ich kann Variablen
nicht immer verändern und wenn es einmal funktioniert, dann nimmt es
falsche Werte an. D.h. wenn ich auf einen Wert im Memory-Fenster klicke,
öffnet sich wie gewohnt das kleine Fenster für die Werteingabe. Ich
geben dann zB 0xFF (nur FF) ein und beim Bestätigen wird aber nicht 0xFF
sondern 0x55 übernommen. Im Watch-Fenster wird dann bei dieser Variable
85 angezeigt. Sehr komisch dieses Verhalten. Was mir aber aufgefallen
ist: Dieses Fehlverhalten tritt erst auf, nachdem ich die
"EEpromInit(void)"-Funktion der xeeprom.h-Datei ausgeführt habe. Was
kann das sein? Ich habe in dieser Hinsicht nichts verändert...
Übrigens: In der EEpromInit(void) steht Folgendes:
1 | EEpromInit(void)
|
2 | {
|
3 | while((NVM.STATUS & NVM_NVMBUSY_bm) == NVM_NVMBUSY_bm);
|
4 | NVM.CTRLB |= NVM_EEMAPEN_bm;
|
5 | }
|
Bin gespannt auf eure Antworten!
mfg
Andy