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
Lies einfach mal gründlich das Datenblatt und die Beschreibung von avrdude. Dann werden alle Deine Fragen geklärt.
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
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.
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.
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.
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
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.