ds18b20 (problem z ujemna temperatura)

Witam, nie moge zrozumiec jak przeliczana jest ujemna temperatura w ds18b20, oto dane z pdf'a: bit0 - 2^-4 bit1 - 2^-3 bit2 - 2^-2 bit3 - 2^-1 bit4 - 2^0 bit5 - 2^1 bit6 - 2^2 bit7 - 2^3 bit8 - 2^4 bit9 - 2^5 bit10 - 2^6 bit11-15 - S (S - znak; 0="+", 1="-")

dane przykladowe z pdf'a

-0,5oC - 1111 1111 1111 1000 ->OK

-10.125 - 1111 1111 0101 1110 ->czesc dziesietna ok, ale czy po przecinku nie powinno byc .0625 (bit0-3->inwersja->0001)?

-25.0625 - 1111 1110 1001 1111 -> czesc dziesietna ok, ale czy po przecinku nie powinno byc .0 (bit0-3->inwersja->0000)?

-55 - 1111 1100 1001 0000 -> czesc dziesietna rowna 54 (bit4-10->inwersja->0011 0110), a po przecinku 0.9375?

Gdzie popelniam blad? Z gory dziekuje za informacje! Maciek

Reply to
Maciej TYWOŃCZUK
Loading thread data ...

Z tego co pamietam wg. zapisu U2 (zapis liczb ujemnych) musisz najpierw bajt zanegowac a nastepnie do otrzymanej wartosci dodac 1 .... i wszystko sie zgadza:) snipped-for-privacy@interia.pl

Reply to
non

Uzupelnienie do dwoch - czyli liczby ujemne zapisujemy liczba ktora dodana do wartosci dodatniej da 1000 0000 0000 0000.

czyli tu uzupelnieniem jest 0000 0000 1010 0010 = 10.125

0000 0001 0110 0001 = 26.0625 ... hm, 26

J.

Reply to
J.F.

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.