Forum: Mikrocontroller und Digitale Elektronik EEPROM beim ATMEGA8


von Black-Devel (Gast)


Lesenswert?

Hi @ all

Ich habe versucht das beispiel zum beschreiben und auslesen des EEPROMS 
vom ATMEGA8, welches im datenblatt beschrieben ist, nachzumachen.
Ergebniss: kein erfolg!!

Ich habe ein wenig hier im forum gesucht und festgestellt das es 
passende header gibt in denen die funktionen zum schrieben und lesen 
ausm eeprom schon fertig sind .

kurzerhand getestet und siehe da: es läuft

so und hier die frage :
warum kann es sein das das Beispiel aud dem datenblatt nicht 
funktioniert hat? ich konnte immer nur den wert 255 auslesen egal was 
ich reingeschrieben habe. muss man noch irgentwelche register zusätzlich 
setzen die nicht in den samples drin sind?

thx

von Helfer (Gast)


Lesenswert?

Hast du das berücksichtigt?

...
5. Write a logical one to the EEMPE bit while writing a zero to EEPE in 
EECR.
6. Within four clock cycles after setting EEMPE, write a logical one to 
EEPE.
...

Caution: An interrupt between step 5 and step 6 will make the write 
cycle fail, since the
EEPROM Master Write Enable will time-out. If an interrupt routine 
accessing the EEPROM is
interrupting another EEPROM access, the EEAR or EEDR Register will be 
modified, causing the
interrupted EEPROM access to fail. It is recommended to have the Global 
Interrupt Flag cleared
during all the steps to avoid these problems.

von Helfer (Gast)


Lesenswert?

In den Code-Beispielen wird vorausgesetzt, dass Interrupts bereits 
deaktiviert sind und damit nix "dazwischenfunken" kann.

von Black-Devel (Gast)


Lesenswert?

ja hatte ich bedacht.
hab vorher die Interrupts deaktiviert.
außerdem hatte ich auch kein interrupt aktiviert

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
Noch kein Account? Hier anmelden.