Hallo, ich hab ein kleines Problem mit meinem ATmega48 (zumindest im
Simulator)
und zwar möcht dich ein 16bit Integer in mein EEPROM schreiben.
Zunächst hab ich das mit
aus der eeprom.h gemacht. da wurde nur das lowByte geschrieben. dann
hab ich die zwei byte einzeln schreiben wollen mit
. da wurde auch nur eines geschrieben, das erste nur je nach dem wierum
ich das gemacht hab.
dann hab ichs versucht per hand zu machen, analog zum datenblatt, nur
halt zweimal und nicht einmal:
1 | while(EECR & (1<<EEPE))
|
2 | ;
|
3 | EEARL = (uint8_t)ui16address;
|
4 | EEARH = (uint8_t)(ui16address>>8);
|
5 | EEDR = (uint8_t)ui16data;
|
6 | EECR |= (1<<EEMPE);
|
7 | EECR |= (1<<EEPE);
|
8 |
|
9 | while(EECR & (1<<EEPE))
|
10 | ;
|
11 | EEARL = (uint8_t)(ui16address-1);
|
12 | EEARH = (uint8_t)((ui16address-1)>>8);
|
13 | EEDR = (uint8_t)(ui16data>>8);
|
14 | EECR |= (1<<EEMPE);
|
15 | EECR |= (1<<EEPE);
|
wieder das selbe: nur das erste byte wurde geschrieben, hier das low
nachdem ich die
durch
aus der delay.h ersetzt habe hat es funktioniert.
Nun meine Frage(n): hab ich was falsch gemacht? wieso gehn dann die
und co nicht? liegt es vllt am simulator (avr simulator)?
Schöne grüße und schon mal danke für die hilfe
Christian