unsigned int sAD1[10] ;
unsigned int xdata AD_Value;
void get_adc_value(void)
{
static unsigned char adc_cnt= 0;
unsigned int xdata ad_min = 0;
unsigned int xdata ad_max = 0;
unsigned int xdata k = 0;
sAD1[adc_cnt] = GET_ADC_VALUE(2);
adc_cnt++;
if (adc_cnt == 6)
{
ad_min = sAD1[0];
ad_max = sAD1[0];
k = sAD1[0];
for (adc_cnt = 1; adc_cnt < 6; adc_cnt++)
{
if (sAD1[adc_cnt] < ad_min) {
ad_min = sAD1[adc_cnt];
}
else if (sAD1[adc_cnt] > ad_max) {
ad_max = sAD1[adc_cnt];
}
k += sAD1[adc_cnt];
}
k -= ad_min;
k -= ad_max;
k >>= 2;
AD_Value = k;
k = 0;
adc_cnt = 0;
}
}
void get_adc_value1(void)
{
static unsigned char adc_cnt= 0;
unsigned int xdata ad_min = 0;
unsigned int xdata ad_max = 0;
unsigned int xdata k = 0;
sAD2[adc_cnt] = GET_ADC_VALUE(7);
adc_cnt++;
if (adc_cnt == 6)
{
ad_min = sAD2[0];
ad_max = sAD2[0];
k = sAD2[0];
for (adc_cnt = 1; adc_cnt < 6; adc_cnt++)
{
if (sAD2[adc_cnt] < ad_min) {
ad_min = sAD2[adc_cnt];
}
else if (sAD2[adc_cnt] > ad_max) {
ad_max = sAD2[adc_cnt];
}
k += sAD2[adc_cnt];
}
k -= ad_min;
k -= ad_max;
k >>= 2;
AD_Value1 = k;
k = 0;
adc_cnt = 0;
}
}读6次,不要最大不要最少,然后取平均
AD滤波程序 - 啊和的博客
HT单片机HT66F017普通咖啡机程序
C语言结构体的位域例子
合泰单片机24C02驱动程序
16位数据拆分成8位数据和两个8位数据和成16位数据
CMS单片机低功耗触摸培训推广资料CMS79FT61X,CMS79F72x
单片机休眠程序例子