Hallo! In der AVR Lib AVR/eeprom.h gibt es die Funktion eeprom_write_byte. Dieser übergibt man einen Zeiger als Adresse und das zu schreibende Byte. Der verwendete µC besitzt ein 4kB-Datenspeicher. Frage: ist es korrekt, dass für die Speicherung von Daten die Adressen 0-4085 zur Verfügung stehen?
Hi >Frage: ist es korrekt, dass für die Speicherung von Daten die Adressen >0-4085 zur Verfügung stehen? Nur wenn dein AVR 4k EEPROM besitzt. Sonst nicht. MfG Spess
Hi Mist zu schnell gedrückt Es sind natürlich 4095. MfG Spess
Warum wird um EEPROM- Nutzung eigentlich so viel Brimbamborium gemacht? Man sieht die wildesten Beispielcodes und Turorials, dabei nimmt einen diese Lib von Atmel doch förmlich alles ab?!
@ Stephan (Gast) >In der AVR Lib AVR/eeprom.h gibt es die Funktion eeprom_write_byte. >Dieser übergibt man einen Zeiger als Adresse und das zu schreibende >Byte. Der verwendete µC besitzt ein 4kB-Datenspeicher. Welchen Datenspeicher? Der AVR hat DREI verschiedene! RAM, FLASH und EEPROM, siehe Speicher. Ja, aber man übergibt in C keine absoluten Adressen sondern Namen von Variablen im EEPROM. Um die realen, absoluten Adressen kümmert sich der Compiler.
Falk Brunner schrieb: > Welchen Datenspeicher? Ich rede zZt immer nur vom EEPROM. Der Prototyp lautet void eeprom_write_byte( uint8_t * __p, uint8_t __value); "Write a byte __value to EEPROM address __p." Wie übergibt man denn hier einen Variablennamen?
1 | uint8_t x EEMEM; //<-- global |
2 | |
3 | [...]
|
4 | |
5 | eeprom_write_byte(&x, 55); |
Du übergibst die ADRESSE einer Variablen im EEPROM. Die avr-size Ausgabe zeigt dir dann auch gleich den belegten Speicher im EEPROM an. Die konkrete Adresse ist dir egal. Die ist dir bei Variablen im RAM ja auch egal.
cyblord ---- schrieb: > Du übergibst die ADRESSE einer Variablen im EEPROM. Ooookay, jetzt hab ichs. Danke!!
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.