'eeprom_read_byte' makes pointer from integer..

Gast #1543200
Hallo,

wie der Betreff vermuten lässt hab ich ein Porblem mit dem lesen und 
schreiben von Bytes in das EEPROM. Und zwar wollte ich über defines die 
EEPROM Adresse der verschiedenen Parameter die ich im speichern 
festlegen:
1
#define   par1   0x001

Jetzt würde ich gerne mit:
1
test = eeprom_read_byte(par1);

den Wert aus dem EEPROM auslesen. Das funktioniert auch soweit, leider 
gibt es eine Warnung:

../main.c:22: warning: passing argument 1 of 'eeprom_read_byte' makes 
pointer from integer without a cast

Lässt sich das beheben?

Vielen Dank
Jan
Gast #1543444
@ Stefan Ernst

Ja danke so bekomme ich die Fehlermeldung los.

@ Ernst B
Macht das einen Speicher/Geschwindigkeitsunterschied? Ich habe die 
Eeprom Artikel auf dieser Seite schonmal durchgelesen, dort wurde eine 
Array von der größe des kompletten EEPROMS angeleget, so dass dies immer 
an die selbe Stelle gelegt wird. Das wollte ich aus irgendeinen grund 
nicht machten, daher wollte ich die Adressen fest vorgeben.
#1543468
Jan schrieb:

> Macht das einen Speicher/Geschwindigkeitsunterschied?

Nein.
Die Variante von Ernst hat aber einen Haken. Von einer Firmware-Version 
zur nächsten kann sich die jeweilige Position der Daten im EEPROM 
verändern, insbesondere wenn eine zusätzliche EEPROM-Variable 
hinzukommt. Wirklich gangbar ist dieser Weg also nur, wenn die Firmware 
sicher irgendwann einen "finalen Status" erreicht hat, oder wenn die 
Daten im EEPROM eh nicht über ein Firmware-Update hinweg gültig sein 
müssen.

> Ich habe die
> Eeprom Artikel auf dieser Seite schonmal durchgelesen, dort wurde eine
> Array von der größe des kompletten EEPROMS angeleget,

Dieses Array ist nur dann relevant, wenn du feste Adressen und im 
Programm festgelegte Initialisierungsdaten haben möchtest. Wenn du auf 
die Initialisierungsdaten verzichten kannst, besteht praktisch kein 
Unterschied zu deiner Version.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.