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); }
Hi, kann es sein, dass Du das Semikolon bei der While-Schleife vergessen hast? Wenn ja, dann führt es dazu, dass >>EEAR = Address<< nur in der While-Schleife abgehandelt wird. Gruß Volkmar
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.
Was ist denn das "unsigned Daten" in deiner Argumentenliste?
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
> "unsigned Daten" ist auch ein fehler aber funktioniert.
Ist halt ein unsigned int. Das int kann man hier weglassen, genauso wie
bei short int.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.