Hallo Zusammen Ich möchte bei einem ATtiny25 (ganz einfach...) so wie im Handbuch beschrieben (und in diversen anderen Quellen) das EEPROM lesen und schreiben - aber das Schreiben funktioniert nicht... cli(); // --- read --- SYS.EEByte = 0x77; while (EECR & (1<<EEPE) ); // wait for previous write access EEAR = 0x07; // ee size = 128' => HByte not needed EECR |= (1<<EERE); // start read SYS.EEByte = EEDR; // read ee data register // --- write --- SYS.EEByte = 0x88; while (EECR & (1<<EEPE) ); // wait for previous write access EECR = (0<<EEPM1) | (0<<EEPM0); // set programming mode EEAR = 0x08; // ee size = 128' => HByte not needed EEDR = SYS.EEByte; // write address EECR |= (1<<EEMPE); // master prog. enable EECR |= (1<<EEPE); // start write // --- done --- sei(); Der relevante C-Code ist m.E. 1:1 das, was im Handbuch steht. Ich compiliere / simuliere etc. mit dem AVR-Studio 4.14 + WinAVR20100110, Handbuch für ATtiny25/45/85 Version 2586-AVR-04/11, S.16ff. Lesen funktioniert: Man sieht es, wenn man sich die entsprechenden Werte im Watch- und im Memory-Fenster ansieht. Ich ändere dazu während der Simulation im Memory-Fenster die entsprechenden EE-Werte und sehe dann nach dem Lesen die Änderungen in der Variablen SYS.EEByte. Schreiben geht aber nicht - weder im Simulator, noch auf der Zielhardware. Gibt es irgendwo einen "Trick", etwas, was ich vergessen habe (Interrupts sind ja schon disabled) oder irgendeine Rahmenbedingung, welche nirgendwo erwähnt ist, weil sie vielleicht zu trivial ist - und ich hab sie übersehen? Danke schon mal für Eure Hilfe uhustic - Michael
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.