EEProm, Fehler beim schreiben

Gast #497525
Lesenswert?

Hallo,

ich finde meinen Fehler einfach nicht. Ich möchte zu Programmlaufzeiten 
einen Werte abspeichern, der beim Wiedereinschalten auslesbar sein soll. 
Für`s erste habe ich mich ganz eng am Tutorium orientiert. Leider ist 
das Ausführen meiner letzten Codezeile nicht mehr erfolgreich. Es wird 
ein Reset ausgelöst obwohl der Watchdog deaktiviert ist. Lasse ich die 
vorletzte Zeile weg (oder gebe eine 112 ein) funktioniert es übrigens. 
Das kann ich mir nicht erklären, ältere Beiträge haben mir leider nicht 
helfen können.

Ich programmiere im AVRStudio über Jtag einen AT90CAN128, also quasie 
einen Mega128.

Richy



#include <avr/eeprom.h>

#ifndef EEMEM
#define EEMEM  _attribute_ ((section (".eeprom")))
#endif

uint8_t myByte;
uint8_t eeFooByte EEMEM = 123;


myByte = eeprom_read_byte(&eeFooByte);
USART0outint(myByte);    // Bildschirm: 112

myByte = eeprom_read_byte(&eeFooByte);
USART0outint(myByte);    // Bildschirm: 112

myByte = 8;

eeprom_write_byte(&eeFooByte, myByte);
Gast #498008
Lesenswert?

Oh man,

jetzt bin ich aber ganz schön aufgeschmissen.
Ich arbeite nämlich tatsächlich mit einer total veralteten WinAVR 
Version von 2005 mit einer ähnlich alten AVRStudio Version. Mein Problem 
ist nämlich das mein JTag Programmieradapter von OLIMEX nicht mit einer 
aktuelleren Version des Studios zusammenarbeitet.

Eben habe ich das aktuelle WinAVR installiert, also auch die libc 
aktualisiert. Wenn ich damit neu compilliere und das Programm mit dem 
alten Studio übertrage funktioniert es komischerweise nicht mehr.

Mitten im Begrüßungstext den ich interruptgesteuert über die serielle 
Schnittstelle ausgebe bricht das Programm ab und hängt sich in einer 
Schleife auf, die ca. sekündlich Euro Symbole sendet. Auch hier kann ich 
mir leider überhaupt nicht erklären wo der Fehler liegen kann.

Darauf hin habe ich die aktuelle WinAVR Version installiert und das 
Programm über einen anderen OLIMEX Programmieradapter (neue Version 
arbeitet auch mit neuem Studio zusammen) übertragen. Der Fehler ist der 
gleiche, Programm hängt sich bei Begrüßung auf.

Als ich denn den alten OLIMEX Adapter mit dem neuen AVRStudio zusammen 
gebracht habe hat das Studio vorgeschlagen ein Softwareupdate des 
Adapters zu machen. Dieses ist leider in die Hose gegangen. Seit dem ist 
der Adapter weder mit der neuen noch mit der alten AVRStudio Version 
ansprechbar. Er wird gar nicht mehr erkannt. Hat hier evt. jemand eine 
Idee ob man ihn noch retten kann?

Das programmiertechnische Problem ist jetzt aber das, dass ich nicht 
verstehen kann warum das Programm generell nicht mit einer neueren libc 
Version zusammen funktioniert.

Das anfängliche EEPROM Problem liegt wohl hoffentlich in der veralteten 
libc, ausprobieren konnte ich es ja leider noch nicht.

Richy

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren