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.