mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik EEPROM Auszug verstehen


Autor: Unitled (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
:100000008602D901FFFFFFFFFFFFFFFFFFFFFFFF9A
:10001000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0
:10002000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0
:10003000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0
:10004000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0
:10005000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0
:10006000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0
:10007000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90
:10008000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80
:10009000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70
:1000A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60
:1000B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50
:1000C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40
:1000D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30
:1000E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20
:1000F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10
:10010000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
:10011000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
:10012000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
:10013000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF
:10014000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF
:10015000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF
:10016000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F
:10017000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F
:10018000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F
:10019000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F
:1001A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F
:1001B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F
:1001C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F
:1001D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F
:1001E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F
:1001F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F
:00000001FF


Das ist der EEPROM Auszug eines MEGA16 in dem 2 16bit Variablen stehen. 
Aber wie interpretiere ich diese Werte?
Was heißt:

8602D901

auf Dezimal?

Vielen Dank
Unitled

Autor: Maschinenbauer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
34306

55553

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Maschinenbauer schrieb:
> 34306
>
> 55553

Nein, es sind 646 und 473.
(Little Endian!)

Autor: Maschinenbauer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hä?

13*16^3+9*16^2+1*16^0

Ich weiss ja nicht, was da noch für ein Zahlenformat hintersteckt, aber 
so rechne isch hex in dez um.

Irgendwas was ich wissen müsste (bin ja Maschinenbauer, kein 
Elektroniker)

Autor: Tubie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dazu müßte man jetzt wissen, wie das EEProm beschrieben wurde. Hierbei 
gibt es 2 Schreibweisen:

1. Wert
in Hex:
$8602 oder $0286

in Dezimal:
34306 oder 646

2. Wert
in Hex:
$D901 oder $01D9

in Dezimal:
55553 oder 473

Gruß,
Tubie

Autor: Maschinenbauer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah, wieder was gelernt!

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Werte sind "Little-Endian" gespeichert. (*)
Die beiden Hex-Werte sind daher 0x0286 und 0x01D9.

(*) Nicht zwangsläufig, aber zumindest aller Wahrscheinlichkeit nach.

Autor: Unitled (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok ihr konntet es nicht riechen, aber das sind ADC-Werte. Und da das ja 
ein 10Bit ADC ist, kann das doch gar nicht was höheres als 1024 sein 
oder?

Autor: Tubie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn diese Werte wirklich nur 10 Bit haben, dann ja. Wenn sie wegen 
irgendwas auch immer vorher noch umgerechnet wurden, ggf. sogar negative 
Zahlen darstellen, dann nein.

Gruß,
Tubie

Autor: Unitled (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ADCSRA |= (1<<ADSC);                           //ADC-Messung starten
_delay_ms(5);
Messwert=ADCW;                                 
eeprom_write_word(&Eiswasserwert, Messwert);  //Messwert in EEPROM schreiben

Die beiden Variablen sind die Fixpunkte eines Thermometers. Oben steht 
wie ich den ADC-Wert in das EEPROM schreibe.

Vielen Dank
Unitled

Autor: Lukas R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab damit schon gearbeitet. Die letzten zwei Ziffern sind die 
Checksumme. Allses was FF ist ist unbeschrieben und die ersten Acht 
beschreiben einfach nur die Stelle des EEPROM's also ist das einzige was 
dich interesiert

86 02 D9 01

Und bitte da hast du deinen Wert

Lukas

Autor: Unitled (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke euch allen! Klappt nun alles.

Autor: Lukas R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sry vergessen moment
wurde bei mir so gerechnet

86: 134
02: 2
D9: 217
01: 1

Kann mich nicht mehr genau erinner aber ich glaub addieren und du hast 
dein Wert gegenüber deinem Vreff.

Somit: 354 von 1024

Lukas

Autor: Tubie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
irgendwie Sinnlos das ganze. Ich bin kein Basic Programmierer aber die 
Routine:

eeprom_write_word(&Eiswasserwert, Messwert)

sagt doch nichts anderes als an Adresse von "Eiswasserwert" den 16Bit 
Wert(Word) der Variablen "Messwert" zu schreiben. Warum sollte die 
Routine nun 4 Bytes für ein Word verwenden, die dann zusammen zu 
addieren sind??? Das muß hier mal einer erklären.


Gruß,
Tubie

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Das muß hier mal einer erklären.

Braucht keiner erklären, weil es Unsinn ist.

>sagt doch nichts anderes als an Adresse von "Eiswasserwert" den 16Bit

Richtig.

MfG Spess

Autor: Unitled (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
achja das ist übrigens kein basic, sondern c. ;)

Autor: Tubie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, ich komme aus der ASM Ecke und dachte bei dieser Write Routine an 
ein fertiges Basic Paket. ;) - Sorry

Gruß,
Tubie

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>ok, ich komme aus der ASM Ecke...

Ich auch.

>und dachte bei dieser Write Routine an ein fertiges Basic Paket. ;) - Sorry

Das würde auch nichts anderes machen, als einen Wert an einer bestimmten 
Adresse speichern. Vergiss die Aussage von Lucas.

Autor: Lukas R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab mich vertan das war was anderes da gings um Definitionen sryvergiss 
meine Aussage

Lukas

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Hab mich vertan das war was anderes da gings um Definitionen sryvergiss
>meine Aussage

No Problem.

MfG Spess

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.