EEPROM, lesen/schreiben geht nicht

Gast #100048
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?
Angehängte Dateien:
Gast #100049
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.
Gast #100050
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.
Gast #100051
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???
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren