www.mikrocontroller.net

Forum: Compiler & IDEs EEPROM, lesen/schreiben geht nicht


Autor: Mike Novy (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

mit folgendem Code versuche ich, ein Byte an der ersten Stelle im
Eeprom meines Atmel-Controllers (AAT90S8515) zu speichern.
Wenn ich den Code neu compiliere und NUR die besagte Stelle auslese,
kommt 0 Inhalt zurück. Was läuft da falsch?

Autor: Malte Marwedel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo läuft dein Programm hin, nachdem es die Daten an PortD geschickt
hat?
Übrigrens die 1. EEProm Zelle besser nicht verwenden, die wird beim
Programmstart gerne mal überschrieben, was zumindest bei deinem
Testprogramm jedoch egal sein dürfte.

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nicht ganz, die erste EEPROM-Zelle kann überschrieben werden, wenn
während eines EEPROM-Schreibens ein Reset eintritt.  Wenn das nie
passiert (weil z. B. die Applikation selbst gar nicht im EEPROM
schreibt, sondern nur vom Programmierer hinterlegte Daten liest), ist
die erste Zelle nicht anders riskant als jede andere Zelle.

Allerdings geht allgemein die Einschätzung um, daß besonders die AVRs
der AT90-Serie anfällig gegen EEPROM-Korrumpierung sind, wenn sie
(auch read/only) in einen brown-out geraten.  Die aktuellen Chips sind
dem Vernehmen nach davon weniger betroffen, wobei mir nicht klar ist,
ob diese Aussage allgemein gilt oder nur dann, wenn man den
(verbesserten?) brown-out detector benutzt.

Autor: Mike Novy (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo nochmal,

das Programm bleibt in einer while-schleife hängen.
Anbei ein Versuch, das geschriebene im nächsten Kompilat auszulesen
(zuerst eine willkürliche Zelle, dann die zuvor beschriebene)... es
kommt immer nur 0 zurück.

Diesen Versuch habe ich nun auf einen Atmega16 durchgeführt. Was mach
ich nur falsch???

Autor: Mike Novy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag:

...oder täusche ich mich da?
Wenn man den das Board aussschaltet (STK500), müssten die Daten
erhalten bleiben, oder etwa nicht?

Autor: Mike Novy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, hat sich erledigt:

Ich hatte übersehen, beim Flashen im AVRStudio das Flag "Preserve
EEPROM memory...." einzuschalten. Ich Hirn ;-)

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.