mikrocontroller.net

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


Autor: Andreas K. (ergoproxy)
Datum:

Bewertung
0 lesenswert
nicht 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.:
#define EE_DUMMY      0x000
#define EE_WERT       ( 0x000 + sizeof( uint8_t ) )
#define EE_ANZAHL     ( EE_WERT + sizeof( uint8_t ) )
#define EE_NAME       ( EE_ANZAHL + sizeof( uint16_t ) )
#define EE_WERTIGKEIT ( EE_NAME + 10 * sizeof( uint8_t ) )
#define EE_PROZENT    ( EE_WERTIGKEIT + sizeof( uint8_t ) )
#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
#define EE_LAST       ( EE_WERTIGKEIT + sizeof( double ) ) 
so heißen ?
#define EE_LAST       ( EE_PROZENT + sizeof( double ) ) 

Gruß ErgoProxy

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas K. (ergoproxy)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.