script zover
Dependencies: HIDScope MODSERIAL mbed
main.cpp
- Committer:
- wiesdat
- Date:
- 2014-10-15
- Revision:
- 2:620ff9f02d62
- Parent:
- 1:bc2db3bff4bb
- Child:
- 3:9a7ed524bb30
- Child:
- 5:9415e5be8235
File content as of revision 2:620ff9f02d62:
#include "mbed.h" #include "MODSERIAL.h" #include "HIDScope.h" #define A1LP 0.181269246922018 #define B1LP -0.818730753077982 #define A1HP -1.999214978283642 #define A0HP 0.999214978283642 #define B1HP -1.943446330323158 #define B0HP 0.945001709500376 #define TSAMP 0.0001 AnalogIn emg0(PTB1); MODSERIAL pc(USBTX,USBRX); HIDScope scope(5); Ticker timer; float filter(float); float emg_value; volatile bool looptimerflag; float ysum = 0, yave=0 ; uint16_t readEMG() { return emg0.read_u16(); } float hpfilter(float emg0_value) { static float y,x1=0,y1=0,x2=0,y2=0; y = y1*B1HP-y2*B0HP-x1*A1HP+x2*A0HP; x2 = x1; x1 = emg0_value; y2 = y1; y1 = y; return yhp1; } float lpfilter(float yhp1) { static float y,x1=0,y1=0,x=0; y = A1LP*x1lp+y1lp*B1LP; y1 = y; x1 = x; x = y; return ylp1; } void viewer() { scope.set(0,emg_value); scope.set(1,yhp); scope.set(2,ylp); scope.set(3,ysum); scope.set(4,yave); scope.send(); } void setlooptimerflag(void) { looptimerflag = true; } int main() { pc.baud(115200); timer.attach(setlooptimerflag,TSAMP); int n; while(1) { while(!looptimerflag) /* do nothing */; looptimerflag = false; //read(); //waardes inladen emg_value = readEMG(); yhp1 = hpfilter(emg_value); //functie hpfilter ylp1 = lpfilter(yhp1); //functie filter ysum = ysum+abs(ylp); n++; if(n==1000) { yave = ysum/1000; yave = yave; ysum = 0; n = 0; } viewer(); //functie hidscope } }