DS1820 temperatur - falsch oder richtig

OP #227492
Lesenswert?

Hallo Leute!
Mal wieder ein DS1820-Problem;ich lese das Scratchpad aus,
daraus ergeben sich folgende Werte:
Byte0: 0x10
Byte1: 0x00
Byte2: 0x25
Byte3: 0x23
Byte4: 0x7F
Byte5: 0x7F
Byte6: 0x02
Byte7: 0x08
Byte8: 0x24

1.Frage: sollten nicht Byte4 und 5 0xFF sein?
2.Frage: Byte0 ist die Temperatur, die man doch noch
durch zwei teilen muss (oder?) => 0x10 / 0x02 = 16 / 2 = 8

Es hat aber 16 C hier....ist da was faul an meinen Leseroutinen?
Angehängte Dateien:
OP #227493
Lesenswert?

ok,hatte in ReadByte dsa oberste Bit rausgeschossen. Jetzt ists behoben
und ich lese anscheinend gute Werte aus,
nur die Temperatur stimmt nicht:
ich lese nur 0xAA.
Scratchpad:
0 LSB: 0xAA
1 MSB: 0x00
2 TH:  0x4B
3 TL:  0x46
4 --:  0xFF
5 --:  0xFF
6 CR:  0x0C
7 CC:  0x10
8 CRC: 0x87

hatte jemand aehnliche probleme?
das Lesen scheint richtig zu funktionieren,nur die Temperatur
ist wohl falsch.Wie berechnet man die aus den geg. Werten.
Ich dachte den binearen Wert einfach durch 2 teilen....oder?
Angehängte Dateien:
OP #227495
Lesenswert?

Ich habs noch ueberprueft und ...doch ich schicke alles so wie
erwuenscht, in etwa (ohne delays)
reset->skipRom->convert-2 sec
warten->reset->skipRom->readScratchpad->readByte...(9mal)  fertig

nun bekomme ich als LSByte = 0x27 ....
wie errechne ich jetzt die tatsaechlich gemessene Temperatur ?
Gast #227497
Lesenswert?

0x27 = dezimal 39
durch 2 ergibt 19,5°

Da du ein MSB und ein LSB hast, hast du eigentlich den Wert 0x0027 für
die Temperatur. Das MSB wird jedoch nur benötigt, wenn die Temperatur
außerhalb von 0-127,5° liegt.

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