![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
script zover
Dependencies: HIDScope MODSERIAL mbed
Diff: main.cpp
- Revision:
- 14:4c33f6240118
- Parent:
- 13:23130c3a37b1
- Child:
- 15:2adb036a191f
--- a/main.cpp Wed Oct 22 10:46:51 2014 +0000 +++ b/main.cpp Wed Oct 22 12:51:15 2014 +0000 @@ -22,10 +22,13 @@ #define TSAMP 0.001 AnalogIn emg1(PTB1); -AnalogIn emg2(PTB0); +AnalogIn emg2(PTB2); + +DigitalOut red(LED1); +DigitalOut blue(LED2); MODSERIAL pc(USBTX,USBRX); -HIDScope scope(5); +HIDScope scope(4); Ticker timer; volatile bool looptimerflag; @@ -35,6 +38,8 @@ float ysum1 = 0, yave1=0 ; float ysum2 = 0, yave2=0 ; +int set; + float readEMG1() { @@ -123,13 +128,10 @@ void viewer() { - scope.set(0,emg_value1); - scope.set(1,ylp1); - scope.set(2,yave1); - scope.set(3,ylp2); - scope.set(4,yave2); - - + scope.set(0,ylp1); + scope.set(1,yave1); + scope.set(2,ylp2); + scope.set(3,yave2); scope.send(); } @@ -138,43 +140,57 @@ looptimerflag = true; } +float filter1(float emg_value1) +{ + static int n; + yn1 = notchfilter1(emg_value1); + yhp1 = hpfilter1(yn1); + ylp1 = lpfilter1(yhp1); + ylp1 = fabs(ylp1); + ysum1 = ysum1+ylp1; + n++; + + if(n==100) { + yave1 = ysum1/100; + ysum1 = 0; + n = 0; + } + return yave1; +} + +float filter2(float emg_value2) +{ + static int n; + yn2 = notchfilter2(emg_value2); + yhp2 = hpfilter2(yn2); + ylp2 = lpfilter2(yhp2); + ylp2 = fabs(ylp2); + ysum2 = ysum2 + ylp2; + n++; + + if(n==100) { + yave2 = ysum2/100; + ysum2 = 0; + n = 0; + } + return yave2; +} + int main() { pc.baud(115200); timer.attach(setlooptimerflag,TSAMP); - int n = 0; - int m = 0; + while(1) { while(!looptimerflag); looptimerflag = false; - emg_value1 = readEMG1(); - - yn1 = notchfilter1(emg_value1); - yhp1 = hpfilter1(yn1); - ylp1 = lpfilter1(yhp1); - ysum1 = ysum1+sqrt(ylp1*ylp1); - n++; - - if(n==100) { - yave1 = abs(ysum1/100); - ysum1 = 0; - n = 0; - } - - emg_value2 = readEMG2(); - yn2 = notchfilter2(emg_value2); - yhp2 = hpfilter2(yn2); - ylp2 = lpfilter2(yhp2); - ysum2 = ysum2 +sqrt(ylp2*ylp2); - m++; - - if(m==1000) { - yave2 = abs(ysum2/1000); - ysum2 = 0; - m = 0; - } - - viewer(); + emg_value1 = readEMG1(); + emg_value2 = readEMG2(); + yave1 = filter1(emg_value1); + yave2 = filter2(emg_value2); + + + viewer(); } } \ No newline at end of file