EEPROM in Codevision

OP #768087
Hi,

man kann doch den EEPROM beim mega32 ja nur 100.000 mal beschreiben. Nun 
hab ich eine Variable mit > eeprom int save_klein; < deklariert und 
speichere in ihr nun etwas mit zb. > save_klein = klein; <. Nun das 
funktioniert zwar aber
1. bringt der Compiler die Fehlermeldung: uninitalized EEPROM, was 
bedeutet sie?
2. Benutzt der Compiler automatisch immer die selbe EEPROM 
speicherzelle?,  die ich dann nur 100.000 mal beschrieben werden kann 
oder wechselt er sie. Wenn er dies nicht tut wie kann ich das manuell 
tun?

mfg milka
Gast
zu 1:
eeprom int save_klein=0;
Damit wird dann auch eine *.eep-Datei erzeugt und die Variable erhält 
den Wert 0 (oder eben einen anderen x-beliebigen)

zu 2:
erst mal benutzt er natürlich immer die gleiche Speicherzelle(n) für die 
gleiche Variable.

Einen Speicherzellenwechsel musst du programmieren. Dazu eine weitere 
EEPROM-Zelle als Adresszeiger verwenden. Dort steht dann, wohin im 
Moment gelesen/geschrieben werden soll. Dazu brauchst du natürlich auch 
einen Zyklenzähler, aber der muss ja nicht jedes einzelne Byte 
mitzählen, kann erst mal im RAM bleiben. Wenn nicht ständige 
Abschaltungen erfolgen, reicht es, wenn du den EEPROM-Zähler z.B. alle 
256 Schreibvorgänge erhöhst und so irgendwann einen notwendigen 
Speicherzellenwechsel erkennst.
Im Prinzip halte ich aber nicht allzuviel von solchen Spielereien.
Lösungsmöglichkeiten:
-Daten bleiben im RAM, Versorgungsausfall frühzeitig erkennen, dann noch 
schnell ins EEPROM schreiben, aus
-AVR mit Batterie puffern, sleep-Mode. Daten bleiben im RAM erhalten
-ext. I2C-FRAM dranbasteln

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.