Read an analog value using ADC.

Dependencies:   mbed

Revision:
1:9685565fd3cc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smooth.cpp	Tue Dec 30 11:26:34 2014 +0000
@@ -0,0 +1,33 @@
+//#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;
+   }
+}
\ No newline at end of file