c语言adc采集取平均值,读取ADC值的浮动平均值
我想做移動平均值或類似的東西,因為我從ADC獲得噪音值,這是我的第一次嘗試,只是為了計算移動平均值,但是每次值都變為0,你可以幫我嗎?讀取ADC值的浮動平均值
這是代碼的一部分,這使得該魔術:
unsigned char buffer[5];
int samples = 0;
USART_Init0(MYUBRR);
uint16_t adc_result0, adc_result1;
float ADCaverage = 0;
while(1)
{
adc_result0 = adc_read(0); // read adc value at PA0
samples++;
//adc_result1 = adc_read(1); // read adc value at PA1
ADCaverage = (ADCaverage + adc_result0)/samples;
sprintf(buffer, "%d\n", (int)ADCaverage);
char * p = buffer;
while (*p) { USART_Transmit0(*p++); }
_delay_ms(1000);
}
return(0);
}
該結果,我通過USART發送到顯示值。
2017-04-26
Branis
+0
您的等式不正確,請嘗試'ADCaverage + =(adc_result0-ADCaverage)/ samples;' –
+0
ty mate,它的工作原理 –
+0
如果噪音是一個問題,您可能還想使用整數而不是浮點數。 –
總結
以上是生活随笔為你收集整理的c语言adc采集取平均值,读取ADC值的浮动平均值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 树莓派c语言访问mariadb,树莓派之
- 下一篇: android 固定大小数组,andro