eeprom adresse

Gast #2474562
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
 }
#2474584
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
 }

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren