|
unsigned int TypeFlag = 0;
void MAX6675_Init(void)
{
MAX6675_CS = 0;
MAX6675_SCK = 0;
MAX6675_SO = 1;
MAX6675_CS = 1;
MAX6675_SCK = 0;
}
unsigned int MAX6675_Read(void)
{
unsigned char i=0;
unsigned int dat;
dat=0;
i = 0;
TypeFlag = 0;
MAX6675_CS = 0 ;
MAX6675_SCK = 0;
for(i=0;i<16;i++)
{
MAX6675_SCK = 1 ;
dat <<= 1;
if(MAX6675_SO == 1)
{
dat |= 0x01 ;
}
MAX6675_SCK = 0 ;
}
MAX6675_CS = 1;
TypeFlag = dat & 0x04; //斷線判斷標(biāo)志,全局變量
return dat;
}
unsigned int Get_Temp(unsigned int TempDat)
{
TempDat=MAX6675_Read();
TempDat <<= 1 ;
TempDat >>= 4 ;
TempDat = 5*TempDat/2 - 30 ;
return TempDat;
}
上面是我處理的方法。
因?yàn)?1不能浮點(diǎn)運(yùn)算,而我又想顯示精度到0.1,所以,我把返回值擴(kuò)大了10倍, -30就是做的線性糾正。 t= t - t/50 只是想給你一個(gè)思路,照搬可不行的。 |
|