Forum: Mikrocontroller und Digitale Elektronik [gcc] EEPROM-Zugriff bei mega88P


von Henne (Gast)


Lesenswert?

Hallo zusammen,

ich stehe derzeit vor folgendem Problem:

Ich versuche ein Byte im EEPROM an einer bestimmten Adresse zu 
schreiben: Der Simulator zeigt dies beim mega88P nicht an.

ich versuche ein Byte an einer bestimmten Stelle zu lesen: Sowohl AVR 
als auch der Simulator machen einen Neustart.

WinAVR: 20071221
(zwar etwas älter - aber schöner und schlanker Code. mega88P wird 
unterstützt.)

AVR-Studio: 4.13 SP2
(Die neue GUI gefällt mir weniger als die gewohnte ;-)


Beispielcode:
<code>
#include <avr/eeprom.h>
#include <avr/interrupt.h>

#define   EE_VALUE1  0x001  // Eine Bytevariable

int main(void)
{
eeprom_write_byte((uint8_t*)EE_VALUE1, 0x11);
sei();
PORTB= eeprom_read_byte((uint8_t*)EE_VALUE1);
for (;;)
   {
   PORTB ^= (1<<3);
   }
}
</code>

Es wäre nett, wenn einer von Euch eine Idee hätte. (Ich habe schon bei 
AVRFreaks und in der Bug-List gesucht, wurde aber nicht fündig.)


Viele Grüße,
Hendrik

von Henne (Gast)


Lesenswert?

kleiner Nachtrag:

Dies geht natürlich auch nicht:
1
uint8_t val= 0x11;
2
eeprom_write_byte((uint8_t*)EE_VALUE1, val);
3
sei();
4
PORTB= eeprom_read_byte((uint8_t*)EE_VALUE1);

Viele Grüße,
Hendrik

von Henne (Gast)


Lesenswert?

Fehler gefunden:

Es lag an einer zu alten WinAVR-Version.

Mit der 20081124 funktioniert es.

Ich versuche dann mal, den alten Optimierungs-Thread wiederzufinden...


Viele Grüße,
Hendrik

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.