关于DS18B20单总线如何区分时钟还是数据和uint延时问题

2019-07-15 10:07发布

我用的是普中科技的实验程序 先声明一下..
接下来是读字节循环里的一部分我给提出来了

其中DSPORT是传感器管脚
DSPORT = 0;
DSPORT = 1;
i++;
i++;//延时6us等待数据稳定
bi = DSPORT;         //读取数据,从最低位开始读取


先拉低 再拉高 读数据. 可是这和IIC不一样。前几天看得IIC有SDA和SCL两根线
但是这个只有一个根线..它是咋识别的 是说如果赋值的话就是数据内容 被赋值
就改变的是时钟??  
另一个问题是
比如我现在有一个 uint i;
我执行while(i--);
我进行调试发现它每次需要花9us才执行一次i--
就算是算上判断 我感觉还是很多啊
因为一个指令周期不应该是1-4us么?
而且这种不应该是比较低级的么... 还是有什么别的因素?
晶振就是普通的12M..
求教..谢谢大家。



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。