Gast
#1250755
Hallo Leute,
ich versuche vergeblich das interne EEPROM des Atmega 644 zu
beschreiben.
Leider ohne Erfolg. Ich lese immer 0xFF aus. D.h. ja dass das Schreiben
irgendwie nicht klappt.
So schreibe ich:
// Wait for completion of previous write
ui_TryCounter = 0;
while(EECR & (1<<EEPE))
{
ui_TryCounter++;
if (ui_TryCounter >= TRYS) return 1;
}
// Set up address and Data Registers
EEAR = uiAddress;
EEDR = ucData;
// Write logical one to EEMPE
EECR |= (1<<EEMPE);
// Start eeprom write by setting EEPE
EECR |= (1<<EEPE);
So lese ich:
// Wait for completion of previous write
ui_TryCounter = 0;
while(EECR & (1<<EEPE))
{
ui_TryCounter++;
if (ui_TryCounter >= TRYS) return 1;
}
// Set up address register
EEAR = uiAddress;
// Start eeprom read by writing EERE
EECR |= (1<<EERE);
// Return data from Data Register
*uc_Data = EEDR;
sei();
return 0;
Kann mir jemand sagen was ich falsch mache?
Gruss
Georg.