AVR ATtiny25 EEPROM schreiben nach Handbuch

Gast #2860989
Lesenswert?
• ▲
▼
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.