Forum: Mikrocontroller und Digitale Elektronik ATmega8A kann EEPROM nicht lesen und/oder beschreiben


von Peter M. (pelumu)


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

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.