void ADC_DCV_filter(void)
{
#define N 5
char filter();
{
char count,i,j;
char value_buf[N];
int sum=0;
for(count=0;count<N;count++)
{
value_buf[count]=ADC2_Get_AdcValue(5);
// delay();
}
for(j=0;j<N-1;j++)
{
for(i=0;i<N-j;i++)
{
if(value_buf[i]>value_buf[i+1])
{char temp;
temp = value_buf[i];
value_buf[i] = value_buf[i+1];
value_buf[i+1] = temp;
}
}
}
for(count=1;count<N-1;count++)
sum += value_buf[count];
data_in_DCV =(sum/(N-2));
}
ADC转换出来不滤波每次的结果都在1700-1900之间,这也算正常,
可是只要加上这个滤波,结果有时候会变成个位数,,,,,不知道何因,
难道是数据溢出了?
|