Warum wird erst beim 2. mal das EEPROM beschrieben?

Gast #366967
Lesenswert?
• ▲
▼
Hallo

Ich habe ein Problem wenn ich das EEPROM meines ATMega32 beschreiben
will. Der 1. Eintrag fehlt immer im EEPROM erste wenn ich z.b. wie hier
im Beispiel die Adresse $1 beim 2. mal mit dem Wert beschreibe ist er
auch im EEPROM. Von da an ist aber jedes schreiben erfolgreich.

Habe ich da irgendwie eine Initialisierung vergessen?

Gruss

Blei



EEPROM_Write (1, 0xAA);
EEPROM_Write (1, 0xAA);
EEPROM_Write (2, 0xBB);
EEPROM_Write (3, 0xCC);
EEPROM_Write (4, 0xDD);

void EEPROM_Write (unsigned int Address, unsigned Daten)
{
  while (EECR & (1<<EEWE))

  EEAR = Address;
  EEDR = Daten;

  EECR |= (1<<EEMWE);
  EECR |= (1<<EEWE);
}
Gast #366969
Lesenswert?
• ▲
▼
Das dürfte das Problem sein. Denn beim ersten Byte muß nicht gewartet
werden und die while-Schleife wird nicht durchlaufen. Der
Schreibzugriff wird zwar durchgeführt, aber auf der Adresse, die halt
vom letzten Zugriff noch eingestellt war.
Gast #366971
Lesenswert?
• ▲
▼
Hallo zusammen.

Kleine Ursache grosse Wirkung. Ja es war das Semikolon das fehlte.

"unsigned Daten" ist auch ein fehler aber funktioniert.

Muss "unsigned char Daten" heissen.



THX

Gruss

Blei

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