www.mikrocontroller.net

Forum: Compiler & IDEs EEPROM auslesen


Autor: Alexander Schmeil (knut740)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Daß Daten im EEPROM nach Stromausfall erhalten bleiben, ist mir bekannt, 
aber daß sie nach Umprogrammieren weg sind, finde ich unpraktisch, 
insbesonders, wenn man den Umgang mit der eep-Datei nicht kennt, wo die 
EEPROM-Inhalte angeblich gespeichert werden könnten seien, was ich aber 
leider nicht nachvollziehen kann.

Also, ich habe ein Programm, das Meßwerte ins EEPROM schreibt und sie 
z.Zt. zwecks Kontrolle auch gleich wieder ausliest.
Ich möchte aber, daß sie im EEPROM bleiben und daß ich sie später mit 
einem anderen Programm wieder auslesen kann. Sie müssen also 
Umprogrammieren des ATMEGA und ggf. Stromausfall überstehen.

Kann mir vielleicht jemand beschreiben, wie man das bewerkstelligt?
Muß man die o.g. eep-Datei beim Programmieren aktivieren oder das 
Überschreiben des EEPROMs deaktivieren?


Vielen Dank schon mal
Alexander


PS: Ich benutze einen ATMEGA16 und gcc incl. avrdude auf einem 
XP-Rechner

Autor: Grrrr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lies einfach mal gründlich das Datenblatt und die Beschreibung von 
avrdude. Dann werden alle Deine Fragen geklärt.

Autor: Alexander Schmeil (knut740)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Grrrr schrieb:
> Lies einfach mal gründlich das Datenblatt

Hatte ich nicht ausdrücklich geschrieben, daß ich gcc benutze? Dort ist 
eeprom.h enthalten - was soll also der Hinweis auf das Datenblatt mit 
der unkomfortablen Lösung?

> und die Beschreibung von
> avrdude. Dann werden alle Deine Fragen geklärt.

Wenn ich damit zurechtgekommen wäre, hätte ich hier nicht nachfragen 
müssen.
So komme ich einfach nicht über die Nachfrage "can't set buffers for 
lpt1" hinweg; meine Schnittstelle com3 wird nicht akzeptiert.

Trotzdem vielen Dank
mfg

Autor: Grrrr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alexander Schmeil schrieb:
> Hatte ich nicht ausdrücklich geschrieben, daß ich gcc benutze? Dort ist
> eeprom.h enthalten - was soll also der Hinweis auf das Datenblatt mit
> der unkomfortablen Lösung?

Sie soll Dich darauf hinweisen, das Deine Frage von Anzeichen für 
absolute Unwissenheit nur so strotzt.
Grundwissen mussst Du Dir selbst aneignen und nicht Deine Faulheit hier 
auf Kosten Anderer ausleben.

> Wenn ich damit zurechtgekommen wäre, hätte ich hier nicht nachfragen
> müssen.

Wir sind hier nicht dafür da Dir den Darwin-Arward zu ersparen. Wenn Du 
nicht lesen kannst, werde Gärtner.

> So komme ich einfach nicht über die Nachfrage "can't set buffers for
> lpt1" hinweg; meine Schnittstelle com3 wird nicht akzeptiert.

Soll das ein Argument sein oder reine Verzweiflung? Haust uns hier 
irgendeine Fehlermeldung um die Ohren?


> Trotzdem vielen Dank

Du kannst mich auch mal gerne haben.

Autor: NurEinGast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal in Datenblatt nach "EESAVE". Dieses Bit musst Du 
programmieren.
Un denn Du nun beim avrdude das EEProm einfach nicht beschreibst, dann 
sollen die Daten erhalten bleiben.

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

Bewertung
0 lesenswert
nicht lesenswert
Alexander Schmeil schrieb:

> Also, ich habe ein Programm, das Meßwerte ins EEPROM schreibt und sie
> z.Zt. zwecks Kontrolle auch gleich wieder ausliest.
> Ich möchte aber, daß sie im EEPROM bleiben und daß ich sie später mit
> einem anderen Programm wieder auslesen kann. Sie müssen also
> Umprogrammieren des ATMEGA und ggf. Stromausfall überstehen.

Dein ATMEGA hat sicherlich auch eine Fuse, mit der man den EEPROM gegen 
Überschreiben beim Programmieren schützen kann.

AUch Brennprogramme unterscheiden oft zwischen 'Flash beschreiben', 
'EEprom beschreiben' und 'beides in einem Aufwasch beschreiben'. Benutzt 
du letzteres, kann dich nur noch die Fuse im Mega davor retten, dass das 
Brennprogramm das EEPROM beschreibt

> Kann mir vielleicht jemand beschreiben, wie man das bewerkstelligt?
> Muß man die o.g. eep-Datei beim Programmieren aktivieren oder das
> Überschreiben des EEPROMs deaktivieren?

Beides ist möglich.
Für ersteres empfiehlt sich das Studium der avrdude Doku. Für letzteres 
das Studium des Datenblattes.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alexander Schmeil schrieb:
> Hatte ich nicht ausdrücklich geschrieben, daß ich gcc benutze?

Hattest du. gcc hat aber nichts mit deinem Problem zu tun.

Du kannst mit avrdude flashdaten und eepromdaten übertragen, musst es 
aber nicht zusammen tun. Und du kannst den AVR dazu bringen, seinen 
eeprom-Daten nicht zu vergessen.

Infos dazu stehen in der avrdude-Doku und im Datenblatt.

Also:
RTFM

Oliver

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alexander Schmeil schrieb:
> Also, ich habe ein Programm, das Meßwerte ins EEPROM schreibt und sie
> z.Zt. zwecks Kontrolle auch gleich wieder ausliest.
> Ich möchte aber, daß sie im EEPROM bleiben und daß ich sie später mit
> einem anderen Programm wieder auslesen kann. Sie müssen also
> Umprogrammieren des ATMEGA und ggf. Stromausfall überstehen.
>
> Kann mir vielleicht jemand beschreiben, wie man das bewerkstelligt?
> Muß man die o.g. eep-Datei beim Programmieren aktivieren oder das
> Überschreiben des EEPROMs deaktivieren?

Also einen Stromausfall überstehen sie immer.
Beim Umprogrammieren des Atmegas muss man unterscheiden, ob der 
Programmer den Chip mit Chip Erase löscht, oder nur das Flash 
umprogrammiert, meisten aber wird ein Chip Erase gemacht. Dabei wird der 
ganze Chip gelöscht.
Man kann aber die FUSE EESAVE setzen/löschen, dann wird dieses 
verhindert.

Die EEP-Datei nützt für die Erhaltung der Daten nichts, sie enthält nur 
Initial-Werte für das EEPROM, z.B. wenn man im EEPROM einer Seriennummer 
ablegen will.
Wenn der Programmer die EEP-Datei in den Chip schreibt, werden die alten 
Werte überschrieben.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger schrieb:
> AUch Brennprogramme unterscheiden oft zwischen 'Flash beschreiben',
> 'EEprom beschreiben' und 'beides in einem Aufwasch beschreiben'. Benutzt
> du letzteres, kann dich nur noch die Fuse im Mega davor retten, dass das
> Brennprogramm das EEPROM beschreibt

Nö.
Bei 'EEprom beschreiben' und 'beides in einem Aufwasch beschreiben' wird 
der EEPROM natürlich immer überschrieben.

Nur das pure 'Flash beschreiben' + EESAVE schützt den EEPROM.

Das EESAVE verhindert das Mitlöschen beim Flash löschen.


Peter

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.