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滤波程序 - 啊和的博客
可控硅数周波方式开启程序
比亚迪单片机使用注意事项
MC32P7030/7031__C编译注意问题
可控硅丢波控制程序
基于定时中断方式扫描编码器驱动程序
C语言结构体的位域例子
HT45F0018 内部OPA放大器校准程序