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滤波程序 - 啊和的博客
合泰BS86D20 串口通讯源码
十速单片机触摸包生成软件
基于STC15F204EA的NTC温度计设计
基于STM8的TIM定时器操作
C语言结构体的位域例子
单片机休眠程序例子
合泰单片机触摸包大全