ATmega8A kann EEPROM nicht lesen und/oder beschreiben

OP #2949785
Lesenswert?

Hallo,

meine ersten Versuche mit einem myAVR Board light und dem AtmelStudio6 
und der Programmierung in C liefen recht gut. Nun stehe ich jedoch vor 
dem Problem, dass ich das EEPROM des ATmega8A nicht lesen und/oder 
beschreiben kann.

Hier eine gekürzte Variante meines Quellcodes:

#include <avr/eeprom.h>

uint16_t eeRot EEMEM;

int main(void)
{
  DDRB |= (1 << DDRB0);
  PORTB &= ~(1 << PORTB0);

  int16_t eepromInhalt = eeprom_read_word(&eeRot);
  if( eepromInhalt == 0 )
  {
    PORTB |= (1<<PORTB0);
    _delay_ms(1000);
  }

  while(1)
  {
    eeprom_busy_wait();
    eeprom_write_word( &eeRot, 1);
    PORTB &= ~(1<<PORTB0);
    _delay_ms(1000);
  }

Meines Erachtens müsste beim ersten Lauf des Programms die an PORTB0 
befindliche LED eine Sekunden lang brennen. Nach dem nächn Reset dürfte 
sie gar nicht mehr leuchten. Es kommt aber anders, denn sie leuchtet 
nach jedem Reset eine Sekunde lang. D.h. es wird aus dem EEPROM eine 0 
ausgelesen, obwohl vor dem ausschalten eine 1 in das EEPROM geschrieben 
wird.

Ich habe auch schon versucht, den EEPROM-Inhalt über das ProgTool 
auszulesen, um zu sehen, ob das Schreiben denn funktioniert. Ich bekomme 
dabei aber einen Fehler im ProgTool.

Kann mir jemand helfen?

Viele Grüße
Peter

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