Anton Boyt
/
Nucleo_read_analog_value_with_smooth
Read an analog value using ADC.
smooth.cpp
- Committer:
- margadon
- Date:
- 2014-12-30
- Revision:
- 1:9685565fd3cc
File content as of revision 1:9685565fd3cc:
//#include "math.h" void smooth(uint16_t *input, uint16_t *output, int n, int window) { int i,j,z,k1,k2,hw; uint16_t tmp; if((window%2)==0) window++; hw=(window-1)/2; output[0]=input[0]; for (i=1;i<n;i++){ tmp=0; if(i<hw){ k1=0; k2=2*i; z=k2+1; } else if((i+hw)>(n-1)){ k1=i-n+i+1; k2=n-1; z=k2-k1+1; } else{ k1=i-hw; k2=i+hw; z=window; } for (j=k1;j<=k2;j++){ tmp=tmp+input[j]; } output[i]=tmp/z; } }