AD_And_Filter( AD_ch){
uint8_t i = 0,j = 0,count=0;
unsigned short min = 0 ,sum=0;
for(i = 0;i < AD_SAMP_SIZE;i++){ //ADC采样的临时存放数组
AD_Temp_Array = ADC_Process(AD_ch); //对输入端电压进行AD采样
}
for(i = 0;i < AD_SAMP_SIZE;i++){
for(j = i + 1;j <SAMP_SIZE;j++){
if(AD_Temp_Array > AD_Temp_Array[j]){
min = AD_Temp_Array[j];
AD_Temp_Array[j] = AD_Temp_Array;
AD_Temp_Array = min;
}
}
}
for(count=1;count<SAMP_SIZE-1;count++) //连续采样N个数据,去掉一个最大值和一个最小值
sum += AD_Temp_Array[count];
return sum/(SAMP_SIZE-2); //然后计算N-2个数据的算术平均值
|