Hallo zusammen,
ich habe ein Problem mit dem Lesen vom EEPROM, bzw. das Schreiben und
Lesen ansich funktioniert eigentlich.
Ich habe mir die Application Note "101 High Endurance EEPORM Storage"
von ATMEL vorgenommen. Ich möchte einfach dadurch halt die möglichen
Schreibzyklen erhöhen.
Das funktioniert auch soweit gut. Ich kann generell ins EEPROM
schreiben, Daten Lesen usw.
Mein Problem liegt nun darin, dass ich nach einem Reset, z.B.
Spannungsversorung aus, die Daten nicht mehr lesen kann. Wenn ich z.B.
folgenden Ablauf habe
1 | void main ( void )
|
2 | {
|
3 | unsigned char counter= 20;
|
4 | findCurrentEepromAddr( &EeBufPtrParam1 );
|
5 | test= EeReadBuffer( EeBufPtrParam1 );
|
6 |
|
7 | while(1)
|
8 | {
|
9 | findCurrentEepromAddr( &EeBufPtrParam1 );
|
10 | EeWriteBuffer( EE_PARAM_1, &EeBufPtrParam1, counter );
|
11 | }
|
12 | }
|
wird die 20 ins EEPROM geschrieben. Das habe ich durch auslesen des
EEPROM mit dem AtmelStuio kontrolliert.
Wenn ich nun die Spannungsversorgung aus- und wieder einschalte, würde
ich erwarten, dass vor der while-Schleife in der Variable "test" die 20
drin stehen würde.
Es wird allerdings immer ein 0xFF ausgelesen. Scheinbar wird halt die
letzte Schreib-/Speicherposition nicht richtig gefunden.
Das Ganze lläuft auf einem ATMEGA48 aktuell.
Hat jemand eine Idee / Anregung, woran es liegen könnte?
Vielen Dank!
Gruß
Steffen