mikrocontroller.net

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


Autor: Stomper (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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:
uint8_t eeFooByteArray1[3] EEMEM;

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

Also ich speicher nun meinen Wert mit
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
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

Autor: Volker (Gast)
Datum:

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

Gruß, Volker

Autor: Stomper (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: OliverSo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Deine drei gezeigten Programmzeilen sind auf jeden Fall richtig.

Oliver

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.