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