我有个延时函数
/***********************************************/
/*函数名称:delay() */
/*函数功能:延时函数,单次 25us 左右延时 */
/*入口参数:t; */
/*输出参数:无 */
/*调用函数:无 */
/*全局变量:无 */
/*局部变量:t; */
/***********************************************/
void delay(uint t)
{
for (;t>0;t--);
}
DS18B20读数据函数
uchar ds_read(void)
{
uchar i;
uchar value=0;
for(i=8;i>0;i--)
{
DQ=1;_nop_();
_nop_();
value>>=1;
DQ=0;
_nop_();
_nop_();
_nop_();
_nop_();
DQ=1;
_nop_();
_nop_();
_nop_();
_nop_();
if(DQ)value|=0x80;
delay(6);
!!!问题是这部 手册上说延时60微秒即可 可是这个程序 是不是延时6*25=150微秒 所以这个不对??
}
DQ=1;
return(value);
}
此帖出自
小平头技术问答
18b20手册上写要150微秒实际上也没那么特别的严格,时序对了才能行。
一周热门 更多>