www.mikrocontroller.net

Forum: Compiler & IDEs EEProm, Fehler beim schreiben


Autor: Richy (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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);

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Richy (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.