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);
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.