EEPROM Auszug verstehen

Gast #1329875
Lesenswert?

1
:100000008602D901FFFFFFFFFFFFFFFFFFFFFFFF9A
2
:10001000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0
3
:10002000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0
4
:10003000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0
5
:10004000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0
6
:10005000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0
7
:10006000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0
8
:10007000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90
9
:10008000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80
10
:10009000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70
11
:1000A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60
12
:1000B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50
13
:1000C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40
14
:1000D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30
15
:1000E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20
16
:1000F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10
17
:10010000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
18
:10011000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
19
:10012000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
20
:10013000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF
21
:10014000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF
22
:10015000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF
23
:10016000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F
24
:10017000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F
25
:10018000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F
26
:10019000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F
27
:1001A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F
28
:1001B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F
29
:1001C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F
30
:1001D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F
31
:1001E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F
32
:1001F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F
33
: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
Gast #1329890
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)
Gast #1329894
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
Gast #1329910
Lesenswert?

1
ADCSRA |= (1<<ADSC);                           //ADC-Messung starten
2
_delay_ms(5);
3
Messwert=ADCW;                                 
4
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
Gast #1329922
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
Gast #1329931
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
Gast #1329935
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
Gast #1329972
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren