Forum: Mikrocontroller und Digitale Elektronik Verständnissfehler oder ist ein Fehler im Tutorial


von Andreas K. (ergoproxy)


Lesenswert?

Hallo hab mir grade durchgelesen wie man das EEPROM beim AVR benutzt und 
bin da euf was gestoßen, wo ich glaube es ist nicht richtig:

[Tutorial]
Jedes Makro definiert also seine Startadresse durch die Startadresse der 
unmittelbar vorhergehende 'Variablen' plus der Anzahl der Bytes die von 
der vorhergehenden 'Variablen' verbraucht werden. Dadurch ist man 
zumindest etwas auf der sicheren Seite, dass keine 2 'Variablen' im 
EEPROM überlappend definiert werden. Möchte man eine weitere 'Variable' 
hinzufügen, so wird deren Name, einfach anstelle der EE_LAST eingesetzt 
und eine neue Zeile für EE_LAST eingefügt, in der dann die Größe der 
'Variablen' festgelegt wird. Zb.:
1
#define EE_DUMMY      0x000
2
#define EE_WERT       ( 0x000 + sizeof( uint8_t ) )
3
#define EE_ANZAHL     ( EE_WERT + sizeof( uint8_t ) )
4
#define EE_NAME       ( EE_ANZAHL + sizeof( uint16_t ) )
5
#define EE_WERTIGKEIT ( EE_NAME + 10 * sizeof( uint8_t ) )
6
#define EE_PROZENT    ( EE_WERTIGKEIT + sizeof( uint8_t ) )
7
#define EE_LAST       ( EE_WERTIGKEIT + sizeof( double ) )

EE_PROZENT legt die Startadresse für eine neue 'Variable' des Datentyps 
double fest.
[/Tutorial]

So nun meine Frage müsste das nicht statt
1
#define EE_LAST       ( EE_WERTIGKEIT + sizeof( double ) )
so heißen ?
1
#define EE_LAST       ( EE_PROZENT + sizeof( double ) )

Gruß ErgoProxy

von Falk B. (falk)


Lesenswert?

Ja, scheint ein kleiner Fehler zu sein. Aber das mit den handverlesenen 
Adressen sollte man zu 99% bleiben lasse, ist viel Aufwand für nix. Im 
Allgemeinen landen die Daten sowieso am Anfang des EEPROMs. Wenn man sie 
alle zusammen in ein STRUCT packt ist auch die Reihenfolge fix. Das ist 
10 mal einfacher.

MFG
Falk

von Andreas K. (ergoproxy)


Lesenswert?

Mir gings eigendlich nicht darum das ich das jetzt verwenden möchte 
sondern viel mehr darum das halt Fehler die vorhanden sind möglichst 
behoben werden ^^ und das sind bemerkenswert wenige für so einen 
riesiges Tutorial. Danke Falk dannn glaub ich hab ich verstanden wie 
mans verwendet.
Ich will wenn ich alles zusammen hab mal n großes Array für Char ins 
EEPROM verlegen. Bin grade am schreiben eines VC++ Programms um die 
Zeichen (5bx8h) zu erstellen.

Gruß ErgoProxy

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.