ds18b20求助

2019-08-20 16:11发布

u8 ds18b20Readbyte(void)    // read one byte
{        
    u8 i,j,dat;
    dat=0;
        for (i=1;i<=8;i++)
        {
        j=DS18B20_Read_Bit();
        dat=(j<<7)|(dat>>1);
    }                                                    
    return dat;
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
操作系统
1楼-- · 2019-08-20 20:56
 精彩回答 2  元偷偷看……
1103272867
2楼-- · 2019-08-21 01:53
  j=DS18B20_Read_Bit();         dat=(j<<7)|(dat>>1);这个是啥意思?/
1103272867
3楼-- · 2019-08-21 03:16
求助?原子哥用您的代码可以,读字节,我自己写的不知道那个时序有问题?
操作系统
4楼-- · 2019-08-21 04:23
1103272867 发表于 2017-4-4 21:06
j=DS18B20_Read_Bit();         dat=(j1);这个是啥意思?/

实在不赞成这样子写代码.不好看,看不明白.汇编代码也效率不高.
正常做法是:
dat >>= 1;
if (j) dat |= 0x80;
1103272867
5楼-- · 2019-08-21 05:47
嗯您这是最容易懂得,最后明白了,
1103272867
6楼-- · 2019-08-21 09:43
 精彩回答 2  元偷偷看……

一周热门 更多>