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滤波程序 - 啊和的博客
萝丽6通接收机二代G版(程序)
比亚迪单片机使用注意事项
基于合泰HT66F018的双路TDS读取源码
BYD单片机烧录软件及keil插件
合泰单片机OLED屏驱动程序
基于STM8的TIM定时器操作