Forum: Compiler & IDEs eeprom adresse


von Andreas (Gast)


Lesenswert?

ich versuche mich grad am tutorial EEprom
aber mit etwas komm ich nicht klar und zwar möchte ich zb an adresse 15 
den wert 75 schreiben und dann wieder Auslesen jedoch wird an adresse 0 
im eeprom geschrieben und gelesen
vielleicht kann mir da einer weiterhelfen

/* Byte */
uint8_t eeFooByte EEMEM = 15;

void eeprom_read (void)
{
    uint8_t myByte;

    // myByte lesen (Wert = 75 )
    myByte = eeprom_read_byte (&eeFooByte);

 }

void eeprom_write (void)
{
    uint8_t myByte;

    // myByte schreiben (Wert = 75 )
    myByte = 75;
    eeprom_write_byte(&eeFooByte, myByte); // schreiben
 }

von Karl H. (kbuchegg)


Lesenswert?

Andreas schrieb:
> ich versuche mich grad am tutorial EEprom
> aber mit etwas komm ich nicht klar und zwar möchte ich zb an adresse 15
> den wert 75 schreiben und dann wieder Auslesen jedoch wird an adresse 0
> im eeprom geschrieben und gelesen
> vielleicht kann mir da einer weiterhelfen
>
> /* Byte */
> uint8_t eeFooByte EEMEM = 15;

das ist nicht die EEPROM Adresse 15.

Mit EEMEM überlässt du es dem Compiler/Linker, diese (Pseudo-)Variable 
im EEPROM anzuordnen.

Wenn du gezielt im EEPROM eine Adresse ansprechen willst, dann musst du 
auch diese Adresse direkt angeben
1
void eeprom_read (void)
2
{
3
    uint8_t myByte;
4
    myByte = eeprom_read_byte ((uint8_t*)15);
5
 }
6
7
void eeprom_write (void)
8
{
9
    uint8_t myByte;
10
    myByte = 75;
11
    eeprom_write_byte((uint8_t*)15, myByte); // schreiben
12
 }

von Andreas (Gast)


Lesenswert?

wie kann ich denn so schreiben das nun zb an adresse 15 Geschrieben und 
Gelesen wird

von Andreas (Gast)


Lesenswert?

danke hat sich erledigt
wieder was dazu gelernt

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.