adc采集,使用中位滤波,为什么只能采集250次,251就卡死,代码:
AD_Value[0]= middleValueFilter(250);
uint16_t middleValueFilter(uint16_t N)
{
uint16_t value_buf[N];
uint16_t i,j,k,temp;
for( i = 0; i < N; ++i)
{
value_buf[i] = AD_GetValue(10); //adc通道10
}
for(j = 0 ; j < N-1; ++j)
{
for(k = 0; k < N-j-1; ++k)
{
if(value_buf[k] > value_buf[k+1])
{
temp = value_buf[k];
value_buf[k] = value_buf[k+1];
value_buf[k+1] = temp;
}
}
}
return value_buf[(N-1)/2];
} |