|
一个测温程序,中间往芯片写数据有这么一段。把写1、写0放到子函数就不行了。不知道为啥。程序挺简单的分别如下:
void tmpwritebyte(uchar dat) //write a byte to ds18b20
{
uint i;
uchar j;
for(j=1;j<=8;j++)
{
dat=dat>>1;
if(CY==1) //write 1
{
DS=0;
i++;i++;
DS=1;
i=8;while(i>0)i--;
}
else
{
DS=0; //write 0
i=8;while(i>0)i--;
DS=1;
i++;i++;
}
}
}
上面这一段是可以的,但是如果写成
void write1()
{
uchar i;
DS=0;
i++;i++;
DS=1;
i=8;while(i>0)i--;
}
void write0()
{ uchar i;
DS=0; //write 0
i=8;while(i>0)i--;
DS=1;
i++;i++;
}
void tmpwritebyte(uchar dat) //write a byte to ds18b20
{
uchar j;
for(j=1;j<=8;j++)
{
dat=dat>>1;
if(CY==1) //write 1
{
write1();
}
else
{
write0();
}
}
就不能够了,菜鸟学艺不精,。,,,求助。。。。
|
|