DS1820

Enviado:
06 Mar 2015 10:01
por Pask
Amigos, eu consegui compreender como é gerado o formato de bits para a leitura de temperaturas do DS1820 conforme seu datasheet, mas não consigo entender como é feita a leitura dos valores negativos. Será que alguém poderia me ajudar? Segue link do datasheet. Vejam a página 6.
http://datasheets.maximintegrated.com/en/ds/DS18S20.pdf
Re: DS1820

Enviado:
06 Mar 2015 11:09
por xultz
Dá uma olhada na seção 3.4
https://www3.ntu.edu.sg/home/ehchua/programming/java/DataRepresentation.htmlSe você utilizar um microntrolador de 16 bits, e declarar uma variável signed int, o compilador utilizará esta representação de números positivos e negativos. É meio estranho, mas ela permite realizar alguns cálculos de forma bastante otimizada.
Re: DS1820

Enviado:
06 Mar 2015 13:47
por tcpipchip
Re: DS1820

Enviado:
06 Mar 2015 14:30
por Pask
Realmente, eu havia me esquecido do complemento de 2:
Por exemplo, na página 6 do datasheet temos a forma como o DS1820 faz a leitura da temperatura de +25ºC => 0000 0000 0011 0010
Em que os primeiros 8 bits representam o valor 25 binário mais o 1/2 dígito e os últimos 8 bits são todos 0 enquanto a temperatura for positiva.
Quando o DS1820 faz a leitura do valor de -25ºC, ele apresenta o resultado em complemento de dois => 1111 1111 1100 1110
Em que os primeiros 8 bits representam o valor 25 negativo em complemento de dois e os 8 últimos bits são todos 1 enquanto a temperatura for negativa.
Resumindo, a representação binária de números negativos só é possível em complemento de dois e todos os números negativos começam com 1.