打印

一点DS18B20的小问题~~

[复制链接]
1687|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
ayb_ice| | 2013-3-8 13:34 | 只看该作者
左移时高8位丢弃,低8位变成高8位(实际是温度高字节),再+上低8位组成16位结果

使用特权

评论回复
板凳
雁舞白沙| | 2013-3-8 15:56 | 只看该作者
void ReadTempa(unsigned char *RecData)
{
    *(RecData)=0;
    *(RecData+1)=0;
    WDT();
    if(ChkTempaChip()==0x00){WriteByte(0xCC);WriteByte(0x44);WDT();DelayTempa(3000);}
    if(ChkTempaChip()==0x00){WriteByte(0xCC);WriteByte(0xBE);*(RecData)=ReadByte();*(RecData+1)=ReadByte();}
}

使用特权

评论回复
地板
lzqxs89| | 2013-3-8 16:24 | 只看该作者
请阅读DS1820的数据手册哦

使用特权

评论回复
5
限量_个性。|  楼主 | 2013-3-8 22:07 | 只看该作者
ayb_ice 发表于 2013-3-8 13:34
左移时高8位丢弃,低8位变成高8位(实际是温度高字节),再+上低8位组成16位结果 ...

哦哦~~但为什么要这样移位呢,为什么要两个低八位呢?

使用特权

评论回复
6
ayb_ice| | 2013-3-9 07:58 | 只看该作者
左移8位等于X256,
最直观的方法用联合体来完成

使用特权

评论回复
7
限量_个性。|  楼主 | 2013-3-9 21:49 | 只看该作者
ayb_ice 发表于 2013-3-9 07:58
左移8位等于X256,
最直观的方法用联合体来完成

哦哦~有点明白了 。用联合体?可能再说清楚点。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:欢迎进入电动车版块

45

主题

1082

帖子

14

粉丝