Forum: Compiler & IDEs EEProm, Fehler beim schreiben


von Richy (Gast)


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);

von Stefan (Gast)


Lesenswert?

Versionsnummer der Library? Es gab mal EEPROM Probleme beim AT90CAN128 
bis inkl. Version AVR-LIBC 1.2.4. Kannst du ein komplettes Minibeispiel 
posten? Funktioniert es im AVR Simulator auch nicht?

von Richy (Gast)


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

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
Noch kein Account? Hier anmelden.