Hallo an alle, ich beschreibe derzeit den internen EEPROM eines ATMEGA 16 mit der avrlibc. Nun möchte ich auf einen extrenen 24C02 umsteigen. Dieser Funktioniert auch schon über den I2C. Ich suche nun nach Funktionen oder Lib's für meinen externen EEPROM die gleiche Funktionsweisen wie aus der avrlibc bereitstellen. Also allá eeprom_write_block(myByteBuffer,eeFooByteArray1,sizeof(myByteBuffer)); Also so, dass ich nicht die direkte adresse in HEX im EEPROM angeben muss sondern, dass ich über variablen arbeiten kann. Und die Funktionen mir die eigentliche Speicherorganisation abnehmen. Eben wie in der avrlic. Ich hoffe ich habe mein Anliegen deutlich genug beschrieben. Bin noch nicht so der pro. Vielen dank schonmal
:
Verschoben durch User
Hey!!!!!!!!! Hat den keiner n par Programmschnippsel für sowas parat ? Oder auch ne Idee oder n Ansatz wie sowas Funktioniert... Vielleicht ist es ja auch ganz easy, nur ich komm enicht drauf.. Ihr würdet mir echt weiter helfen... Danke
> Und die Funktionen mir die eigentliche Speicherorganisation abnehmen.
Na ja.
Die Funktionen an sich sind es ja nicht, die dir die
Speicherorganisation abnehmen.
Das macht schon der Compiler.
Das EEMEM Makro bei den Variablen sorgt dafür, dass diese Variablen in
einer eigenen Section gesammelt werden. Dort kümmert sich dann
Compiler/Linker um die korrekte Adresslage.
Aber um die Spezialfunktionen zum Auslesen an einer bestimmten
Speicherstelle kommst du nicht herum. Die musst du sowieso neu
schreiben.
Abgesehen davon lautet mein Rat: Sieh dir an, wie das EEMEM funktioniert
und dupliziere das mit einer neuen Speicher-Section. Du musst
rauskriegen, wie du die Speichersektion dem Compiler unterjubelst und du
musst rauskriegen, wie du die Startadresse einer Section dem Linker
unterjubelst.
rollo schrieb: > Also allá > eeprom_write_block(myByteBuffer,eeFooByteArray1,sizeof(myByteBuffer)); > > Also so, dass ich nicht die direkte adresse in HEX im EEPROM angeben > muss sondern, dass ich über variablen arbeiten kann. Nö, Du arbeitest ja voll im SRAM in der Variable myByteBuffer. Und das eeprom_write_block speichert dann vom SRAM ins EEPROM an Adresse eeFooByteArray1. Du must also nur Dein eeprom_write_block umschreiben auf externen EEPROM, dann wars das. Peter P.S.: Ich mach das auch immer so, auf ner Kopie im SRAM arbeiten. Das Lesen ist dann schneller, das Schreiben extrem viel schneller und man verbräht nicht unnütz Schreibzyklen. Man schreibt nur auf Anforderung ins EEPROM bzw. liest einmal nach dem Reset daraus.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.