📄 airtemp.h
字号:
#include "Sersor.c"
unbyte ReadADValue(unbyte CheckAins); //返回i=十六进制温度值 CheckAins 是当前要使用的通道
byte LetHexToTemp(unbyte AD_Hex,unbyte AllDot,unbyte StartDot,unbyte Tables,byte Remove);//返回k=十进制温度值
//AD_Hex---->AD采样的十六进制数 AllDot---->当前通道总点数
//StartDot--->查表起始点 Tables-->当前采样通道排号(0,1,2.....)
//Remove---->(当前通道排号为n)以每组表格120点为基准,当前要查的表格以前所有点与((n-1)*120)的差值
byte LoadTemp(void);//返回k=十进制温度值
//=======================================
void AirTemp()
{
if (Eenble_A_D_WorkFlag==0) return;
Eenble_A_D_WorkFlag=0;
AD_STARTBIT=true;
A_DSampleValue[A_DCounter]=ReadADValue(0);
if (A_DSampleValue[13]==0)
{
A_DCounter=13;
for (i=1;i<14;i++)
{A_DSampleValue[i]=A_DSampleValue[0];}
}
A_DCounter++;
if (A_DCounter==14)
{
for (i=1;i<14;i++)
{
if (A_DSampleValue[0]<A_DSampleValue[i])
{
WDTC.byte=0x05;
j=A_DSampleValue[0];
A_DSampleValue[0]=A_DSampleValue[i];
A_DSampleValue[i]=j;
}
}
for (i=2;i<14;i++)
{
if (A_DSampleValue[1]>A_DSampleValue[i])
{
WDTC.byte=0x05;
j=A_DSampleValue[1];
A_DSampleValue[1]=A_DSampleValue[i];
A_DSampleValue[i]=j;
}
}
for (i=3;i<14;i++)
{
if (A_DSampleValue[2]<A_DSampleValue[i])
{
WDTC.byte=0x05;
j=A_DSampleValue[2];
A_DSampleValue[2]=A_DSampleValue[i];
A_DSampleValue[i]=j;
}
}
for (i=4;i<14;i++)
{
if (A_DSampleValue[3]>A_DSampleValue[i])
{
WDTC.byte=0x05;
j=A_DSampleValue[3];
A_DSampleValue[3]=A_DSampleValue[i];
A_DSampleValue[i]=j;
}
}
Dobule=0;
for (i=4;i<14;i++)
{Dobule +=A_DSampleValue[i];}
A_DAverageValue= Dobule/10;
A_DCounter=0;
if (LcdAllLightFlag)
{
if (A_DAverageValue<10)
{TempErrorFlag=1;InRoomTemp=0;return;}
else if (A_DAverageValue>240)
{TempErrorFlag=1;InRoomTemp=60;return;}
else
{TempErrorFlag=0;}
}
InRoomTemp=LetHexToTemp(A_DAverageValue,120,j,0,0);
}
}
unbyte ReadADValue(unbyte CheckAins)
{
AD_ANS=CheckAins;
while (AD_ADMV) {;}
i=ADDV.word/4;
return i;
}
byte LetHexToTemp(unbyte AD_Hex,unbyte AllDot,unbyte StartDot,unbyte Tables,byte Remove)
{
j=0;
if (!Channels1TransingFlag)
{
Channels1TransingFlag=true;
if (SersorTable[j+Tables*120+Remove]>=AD_Hex)
{
LoadTemp();
return SignedData;
}
}
for (j=1;j<=AllDot;j++)
{
WDTC.byte=0x05;
if (SersorTable[j+Tables*120+Remove]>AD_Hex)
{
LoopLoadTemp:
j--;
LoadTemp();
nop;
return SignedData;
}
}
goto LoopLoadTemp;
}
//---------------------------------------------------------------------
byte LoadTemp()
{
SignedData=j-30;
LcdAllLightFlag=true;
if (LcdAllLightFlag)
{
if (SignedData<0)
{SignedData=0;}
else if (SignedData>60)
{SignedData=60;}
}
Channels1TransingFlag=false;
return SignedData;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -