Read an analog value using ADC.

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers smooth.cpp Source File

smooth.cpp

00001 //#include "math.h"
00002 void smooth(uint16_t *input, uint16_t *output, int n, int window)
00003 {
00004    int i,j,z,k1,k2,hw;
00005    uint16_t tmp;
00006    if((window%2)==0) window++;
00007    hw=(window-1)/2;
00008    output[0]=input[0];
00009 
00010    for (i=1;i<n;i++){
00011        tmp=0;
00012        if(i<hw){
00013            k1=0;
00014            k2=2*i;
00015            z=k2+1;
00016        }
00017        else if((i+hw)>(n-1)){
00018            k1=i-n+i+1;
00019            k2=n-1;
00020            z=k2-k1+1;
00021        }
00022        else{
00023            k1=i-hw;
00024            k2=i+hw;
00025            z=window;
00026        }
00027 
00028        for (j=k1;j<=k2;j++){
00029            tmp=tmp+input[j];
00030        }
00031        output[i]=tmp/z;
00032    }
00033 }