Forum: Mikrocontroller und Digitale Elektronik Probleme beim EEPROM Zugriff


von Karl (Gast)


Lesenswert?

Hallo,

ich habe ein Problem beim Zugreifen auf den EEPROM meines ATMega8515.
Ich versuche ein Zeichen in den EEPROM zu schreiben, doch der
Controller scheint die Routine einfach zu ueberspringen. Hier mal ein
kleiner Code Ausschnitt:

        EEAR = 0x00;
  while(!(UCSRA & (1<<UDRE)));
  UDR = 0x38;

  EECR |= (1<<EERE);

  while(!(UCSRA & (1<<UDRE)));
  UDR = 0x33;

Das ganze ist in einer while Schleife und ich bekomme nicht die "3"
ausgegeben. Der EEPROM wird also nicht beschrieben.


Waere dankbar fuer Hilfe, Karl

von Chris (Gast)


Lesenswert?

Für den avr-gcc gibts ein eigenes Forum.

Wieso benutzt du nicht eeprom_write_byte bzw. eeprom_read_byte?

von Karl (Gast)


Lesenswert?

Jo, werd ich mal genauer ausprobieren, scheint aber zu klappen, frag
mich nur warum es nicht sonst klappt!?

von Chris (Gast)


Lesenswert?

Straight-forward wäre dieser Ansatz:
Schau dir den Code von eeprom_write_byte an und vergleich ihn mit
deinem.

von Karl (Gast)


Lesenswert?

Hmm, naja, wie auch immer. Es gibt aber leider immernoch das Problem,
dass wenn ich zweimal hintereinander auf das EEPROM schreibe, dass der
zweite Eintrag nicht vernuenftig geschrieben wird. Es ist immer ein
anderes Zeichen.
  eeprom_write_byte(addr, 0x40);
  worklist.w_time_8 = eeprom_read_byte(addr);
  addr++;
  eeprom_write_byte(addr, 0x50);
  uint8_t toto = eeprom_read_byte(addr);

Wenn ich toto ausgebe kommt nur Datenmuell herraus, irgendwelche Ideen?

von Karl (Gast)


Lesenswert?

So,

auch wenns mir keiner glaubt, es lag an 0x50. Hat auch nur eine Stunde
gebraucht bis ich mal ein anderes Zeichen versucht habe!

Nochmals Vielen Dank Chris

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.