Gast
#331866
Hallo allerseits,
ich schaff es nicht, bei meinem AT90PWM3 auf den EEPROM zuzugreifen.
Dabei verwende ich sogar die im Datenblatt vorgeschlagenen Routinen zum
Lesen und Schreiben des EEPROMs:
uint8_t EEPROM_Read(uint16_t Address)
{
while(EECR&(1<<EEWE))
{};
EEAR=Address;
EECR|=(1<<EERE);
return EEDR;
}
void EEPROM_Write(uint16_t Address, uint8_t Data)
{
while(EECR&(1<<EEWE))
{};
EEAR=Address;
EEDR=Data;
EECR|=(1<<EEMWE);
EECR|=(1<<EEWE);
return;
}
Hinweis: Interrupts sind ausgeschaltet, mit dem Bootloader hab ich auch
noch nichts am Hut.
int main(void)
{
uint8_t Temp;
cli();
...
Delay_ms(2000);
EEPROM_Write(0x0000,0xAA);
Delay_ms(2000);
Temp=EEPROM_Read(0x0000);
// Temp=0xAA; // Test->funktioniert
if(Temp==0xAA)
TestPort|=1<<Output1;
while(1);
return 1;
}
Hinweis: Delay_ms(2000) wartet 2s.
Dieser Programmausschnitt funktioniert nicht. Der Pin des Testports
bleibt immer auf Low! Warum? Die Betriebsspannung ist 5V und stabil.
Weiß jemand Rat?
Grüsse,
Steffen