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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.