Forum: Mikrocontroller und Digitale Elektronik EEPROM vom AVR, mach ich was falsch?


von Stomper (Gast)


Lesenswert?

Hi Leute,

ich weiß nicht, vielleicht lacht ihr gleich weil ich weng doof bin, aber 
ich hab mal ne Frage zum EEPROM von den AVRs.

Ich will einen Wert speichern... ok.

In meiner Hauptroutine wird als allererstes immer das Array Deklariert:
1
uint8_t eeFooByteArray1[3] EEMEM;

Klar ich hab alle anderen Headerfiles usw. eingebunden.
Code funzt schon.

Also ich speicher nun meinen Wert mit
1
eeprom_write_byte(&eeFooByteArray1[0], meinWert);

Rufe ich den Wert nun wieder ab, erhalte ich das Richtige und es scheint 
zu klappen.

So weit so gut.

Schalte ich nun den Strom ab, dann wieder an und möchte nun den Wert mit
1
meinWert = eeprom_read_byte(&eeFooByteArray1[0]);

zurückholen, bekomme ich alles Mögliche, aber garantiert nicht meine 
Zahl die ich vor dem Abschalten reinbuxiert habe.

Wieso klappt das nicht? Was mach ich da falsch? Findet der Controller 
die Adresse nicht mehr?

Was bringt mir n EEPROM, wenn nach dem Abschalten meine Werte im 
Speicher verschollen sind :-P ?

Gruß
Stomper

von Volker (Gast)


Lesenswert?

Lies mal im Datenblatt den Abschnitt "Preventing EEPROM Corruption".
Das könnte dir weiterhelfen.

Gruß, Volker

von Stomper (Gast)


Lesenswert?

Also grundsätzlich muss es so funktionieren, wie ich es mache oder?

Nicht das es gar net klappt wie ich mir das Vorstelle.

Ich les mal in der Mittagspause.

Gruß
Stomper

von OliverSo (Gast)


Lesenswert?

Deine drei gezeigten Programmzeilen sind auf jeden Fall richtig.

Oliver

von Severino R. (severino)


Lesenswert?

Du könntest mit dem Programmer das EEPROM auslesen und nachschauen, was 
da wirklich drin steht. So weisst Du wenigstens, ob schon der 
Schreibvorgang misslang oder "bloss" der Lesevorgang.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.