DS18B20,C语言编程问题,求解答,在线等!
voiddsreset(void)//DS18b20复位,初始化函数{uinti;ds=0;i=103;//延时最短480uswhile(i>0)i--;ds=1;//等...
void dsreset(void) //DS18b20复位, 初始化函数
{
uint i;
ds=0;
i=103; //延时最短480us
while(i>0) i--;
ds=1; //等待16-60us,收到低电平一个约60-240us则复位成功
i=4;
while(i>0) i--;
}
这里面的i=103是什么意思 为什么这么久延时480us,还有ds=0是什么意思,ds=1又怎么理解 展开
{
uint i;
ds=0;
i=103; //延时最短480us
while(i>0) i--;
ds=1; //等待16-60us,收到低电平一个约60-240us则复位成功
i=4;
while(i>0) i--;
}
这里面的i=103是什么意思 为什么这么久延时480us,还有ds=0是什么意思,ds=1又怎么理解 展开
1个回答
展开全部
void dsreset(void) //DS18b20复位, 初始化函数
{
uint i;
ds=0;
i=103; //延时最短480us //这里是计算机运行的时间 。。主要是下面while(I〉0)i--消耗时间
while(i>0) i--;
ds=1; //等待16-60us,收到低电平一个约60-240us则复位成功
i=4;
while(i>0) i--;
}
在 ds=0,与ds=1 之间添加时间消化目的是为了使硬件能检测的这个变化而已。。
{
uint i;
ds=0;
i=103; //延时最短480us //这里是计算机运行的时间 。。主要是下面while(I〉0)i--消耗时间
while(i>0) i--;
ds=1; //等待16-60us,收到低电平一个约60-240us则复位成功
i=4;
while(i>0) i--;
}
在 ds=0,与ds=1 之间添加时间消化目的是为了使硬件能检测的这个变化而已。。
追问
那i=103是怎么计算出来时480us的。
追答
这个根据具体晶振相关的。。看执行一条语句需要多少时间。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询