www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik EEPROM Verständnisfrage


Autor: Uwe Castagne (Firma: privat) (olmuk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forum,
ich bitte um Hilfe zur Thematik EEPROM :

Im Projekt werden 2 Zählerstände erzeugt durch Taster. Jedesmal wenn 
einer der Zähler inkrementiert wird, schreibe ich diesen geänderten Wert 
in eine EEPROM Zelle. Um die beiden Zählern mit Low- und Highbyte 0 zu 
beginnen müsste ich die 4 Zellen im EEPROM mit 0 setzen.
Allerdings ist dies nur der Startwert, nach dem ersten Zählen ändert 
sich dies ja sofort.
Was ich rausbekommen habe, kann ich nachfolgen .eseg das EEPROM 
beschreiben,
aber dies möchte ich halt nur einmal tun.
Kann man im AVR-Studio das eep-file entsprechend beschreiben ?

Vielen Dank im voruas - Gruß Uwe

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ich in solchen Fällen mache:

Ich lass das EEP File links liegen.
Viel zu viel Aufwand, mir das EEP File zu suchen, dem Brennprogramm 
mitzuteilen, dass es jetzt das EEP File doch schreiben soll, ev. die 
Fuses umstellen etc.

Stattdessen kriegt mein eigentliches Programm ganz an den Anfang die 
Anweisung, in die bewussten Speicherzellen den Anfangswert zu schreiben, 
den ich gerne haben möchte. Das brenn ich ganz normal auf den µC und 
lass es laufen. Dann wird der Programmteil auskommentiert, erneut 
compiliert, gelinkt und auf den µC gespielt. Für ein Einzelstück ist das 
eine gangbare Lösung, die schneller erledigt ist, als du Piep sagen 
kannst.

(Mann kanns auch umgekehrt machen: Einfach den Initialisierungsteil 
auskommentieren, der das erste mal den Wert aus dem EEPROM holt und 
statt dessen der Variable/Register den gewünschten Startwert geben. 
Programm laufen lassen und den Programmteil ausführen, der das EEPROM 
neu beschreibt.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>aber dies möchte ich halt nur einmal tun.
>Kann man im AVR-Studio das eep-file entsprechend beschreiben ?

Ja, wenn ich dich richtig verstanden habe.

       .eseg

Taster1:   .dw 0  ; Setzt 2 Byte auf 0
Taster2:   .dw 0  ; Setzt 2 Byte auf 0

      .cseg

      .... Programm

>Im Projekt werden 2 Zählerstände erzeugt durch Taster. Jedesmal wenn
einer der Zähler inkrementiert wird, schreibe ich diesen geänderten Wert
in eine EEPROM Zelle.

Du solltest aber beachten, das EEPROM-Zellen nicht unendlich oft 
beschrieben werden können.

MfG Spess

Autor: Uwe Castagne (Firma: privat) (olmuk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Karl heinz Buchegger :

Die Idee finde ich gut, habe es probiert und es passiert folgendes :
Nach dem Setzen des EEPROMS kommentiere ich die Zeilen aus und nach
dem Übertragen ( nur hexfile ) steht wieder alles auf FF.

Was kann ich falsch machen ?

Ist eine Reihenfolge des flashens vorgeschrieben ( hex, eep )?

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

EESAVE-Fuse!

MfG Spess

Autor: Tim O. (tim_o)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wird vorm flashen der Chip gelöscht? ;) Ist nen Häkchen, das man schnell
mal übersieht.

Autor: j0 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
warum bebrennt ihr den neu?
ich würde eine ganz eeprom-speicherzelle als flag benutzen. das programm 
"schaut" erstmal dort nach, ob etwas von 0x00 verschiedenes da steht, 
wenn nein, wird der eeprom-inhalt auf deine werte gesetzt, zum schluss 
das flag noch auf 0x00. und so muss man die firmware nur 1x neu drauf 
brennen.
J0

Autor: Uwe Castagne (Firma: privat) (olmuk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antworten - das muß ich erst mal austesten.
Klingt ja logisch.

Gruß Uwe

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.