标题:
关于DS18B20正负温度的判断问题
[打印本页]
作者:
liyihang
时间:
2020-5-24 14:37
标题:
关于DS18B20正负温度的判断问题
正温度的话直接乘0.625就得到实际温度,而负温度的话要取反加1再乘0.625,这里它是怎么判断正负温度的?
{XLGDQO9(KZ5_V4)[H1JR)U.png
(87.26 KB, 下载次数: 15)
下载附件
2020-5-24 14:37 上传
作者:
benclee
时间:
2020-5-24 22:10
高8位大于7就是负温度,
作者:
mffhxa
时间:
2020-5-24 22:53
因为负温度是用补码表示的,所以要取反加1。
作者:
wulin
时间:
2020-5-25 08:01
temp = (double)t; 在这里t被强制转换成双精度变量,就能以t的最高位判断+/-。
作者:
f556
时间:
2020-5-25 09:35
if(Tempe & 0x800 ) //第12位为1,则温度为负值,取反加一,将补码变成原码
{
Tempe= ~Tempe+1;
}
Tempe=Tempe*0.625+0.5; //扩大10倍,四舍五入
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1