|
谢谢大家的解答!
我参考高手的DS18B20程序,确实可以用,但是有几句不太理解,请大家指导:(程序节选)
const float wendu[6]={0,0.5,10.125,25.0625,85,125}; //温度表格
const float celiang[6]={0,0x08,0xa2,0x0191,0x550,0x7d0}; //测量得到的结果
请问上面这些有什么用?
void Read_Temperature(void)
{
float a[2];
unsigned char i=0;
DS1820_Reset();
DS1820_WriteByte(0xCC); // Skip ROM
DS1820_WriteByte(0xBE); // Read Scratch Pad
a[0]=DS1820_ReadByte();
a[1]=DS1820_ReadByte();
a[1]=a[1]*256;
temp=a[1]+a[0];
for(i=0;temp<=celiang[i];i++); //这三行(以下)都不知道是在干什么?????????
temp=temp-celiang[i];
temp=temp*(wendu[i+1]-wendu[i])/(celiang[i+1]-celiang[i])+wendu[i];
}
}
|
|