📄 airtempb.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;
if (A_DCounter==0)
{A_DSampleValue1=ReadADValue(0);A_DCounter++;return;}
if (A_DCounter==1)
{A_DSampleValue2=ReadADValue(0);A_DCounter++;return;}
if (A_DCounter==2)
{A_DSampleValue3=ReadADValue(0);A_DCounter++;return;}
if (A_DCounter==3)
{
A_DSampleValue4=ReadADValue(0);
A_DCounter=0;
AccountAverage();
}
InRoomTemp=LetHexToTemp(A_DAverageValue,120,j,0,0);
}
AccountAverage()
{
if (A_DSampleValue1<A_DSampleValue2)
{i=A_DSampleValue1;A_DSampleValue1=A_DSampleValue2;A_DSampleValue2=i;}
if (A_DSampleValue3<A_DSampleValue4)
{i=A_DSampleValue3;A_DSampleValue3=A_DSampleValue4;A_DSampleValue4=i;}
if (A_DSampleValue1<A_DSampleValue3)
{i=A_DSampleValue1;A_DSampleValue1=A_DSampleValue3;A_DSampleValue3=i;}
if (A_DSampleValue2<A_DSampleValue4)
{i=A_DSampleValue2;A_DSampleValue2=A_DSampleValue4;A_DSampleValue4=i;}
A_DAverageValue=(A_DSampleValue2+A_DSampleValue3)/2;
}
unbyte ReadADValue(unbyte CheckAins)
{
AD_ANS=CheckAins;
WDTC.byte=0x05;
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<10)
{TempErrorFlag=1;SignedData=10;}
else if (SignedData>60)
{TempErrorFlag=1;SignedData=60;}
else
{TempErrorFlag=0;}
}
Channels1TransingFlag=false;
return SignedData;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -