dht22 versionen ?

Begonnen von justme1968, 12 Juni 2014, 21:57:08

Vorheriges Thema - Nächstes Thema

golmic

Hallo!
Kurze Frage: Wie muss ein negativer Wert übertragen werden?
Wenn ich
GSD 1 83 1 1 0 202 231 12 16 210 4- 24 148 17
übertrage, kommt  "temperature = 12.34" statt "-12,34". Was mache ich falsch?

hexenmeister

Das Format ist signed int, 2 Byte lang.
Wenn Du 210,4 überträgst, kommt eben 1234 raus (dann wird noch durch 100 geteilt).
Du musst stattdessen 46,251 übertragen, das ist dann -1234.
Minuszeichen hat da dagegen gar nichts verloren.

Zum Testen:
{my $value = GSD_parseNumber(210,4);;my $tf = 65536;;if($value > ($tf/2)) {$value = $value-$tf;;}$value/100}

{my $value = GSD_parseNumber(46,251);;my $tf = 65536;;if($value > ($tf/2)) {$value = $value-$tf;;}$value/100}

golmic