AD开始转换
void AD_CHANGE(void)
{
ADMUX=0X43;
ADCSRA|=(1<<ADSC);
DELAY(50);
ADC_DATAL=ADCL;
ADC_DATAH=ADCH;
ADC_DATAH=ADC_DATAH&0X03;
ADMUX=0X44;
//ADCSRA=0X96;
ADCSRA|=(1<<ADSC);
DELAY(50);
ADC2_DATAL=ADCL;
ADC2_DATAH=ADCH;
ADC2_DATAH=ADC2_DATAH&0X03;
}
AD采样数据处理
AD_CHANGE();
DELAY(10);
AD_DATA=ADC_DATAH*256+ADC_DATAL;
if (AD_DATA>390)
{
wd_warn_flag=0;
if (AD_DATA<=705) TEMP_DATA1=TEMP_DATA1+(AD_DATA)*10/91-42;
else if(AD_DATA>705) TEMP_DATA1=TEMP_DATA1+AD_DATA/7-65;
}
AD_COUNT=AD_COUNT+1;
if (AD_COUNT>=300)
{
AD_COUNT=0;
TEMP_DATA2=TEMP_DATA1/300;
if (TEMP_DATA2<35) TEMP_DATA2=(TEMP_DATA2*XLTEMP)/50;
else TEMP_DATA2=(TEMP_DATA2*XHTEMP)/50;
TEMP_DATA1=0;
}
if (TEMP_DATA2!=TEMP_DATA)
{
AD_TEST_FLAG=1;
if (TEST_COUNT>=200)
{
TEMP_DATA=TEMP_DATA2;
TEST_COUNT=0;
AD_TEST_FLAG=0;
}
}
else
{
TEST_COUNT=0;
AD_TEST_FLAG=0;
}
AD2_DATA=ADC2_DATAH*256+ADC2_DATAL;
if (AD2_DATA>390)
{
wd_warn_flag=0;
if (AD2_DATA<=705) TEMP2_DATA1=TEMP2_DATA1+(AD2_DATA)*10/91-42;
else if(AD2_DATA>705) TEMP2_DATA1=TEMP2_DATA1+AD2_DATA/7-65;
}
AD2_COUNT=AD2_COUNT+1;
if (AD2_COUNT>=300)
{
AD2_COUNT=0;
TEMP2_DATA2=TEMP2_DATA1/300;
if (TEMP2_DATA2<35) TEMP2_DATA2=(TEMP2_DATA2*XLTEMP)/50;
else TEMP2_DATA2=(TEMP2_DATA2*XHTEMP)/50;
TEMP2_DATA1=0;
}
if (TEMP2_DATA2!=TEMP_DATA)
{
AD_TEST_FLAG=1;
if (TEST_COUNT>=200)
{
TEMP_DATA=TEMP_DATA2;
TEST_COUNT=0;
AD_TEST_FLAG=0;
}
}
else
{
TEST_COUNT=0;
AD_TEST_FLAG=0;
} |