ds18b20 (problem z ujemna temperatura)

May 02, 2004 2 Replies

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


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

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.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required