Verständnissfehler oder ist ein Fehler im Tutorial

OP #1056179
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
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
OP
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 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.