script zover

Dependencies:   HIDScope MODSERIAL mbed

Revision:
5:9415e5be8235
Parent:
2:620ff9f02d62
Child:
6:6f0bc2e465b0
--- a/main.cpp	Wed Oct 15 13:35:09 2014 +0000
+++ b/main.cpp	Fri Oct 17 10:23:42 2014 +0000
@@ -1,60 +1,62 @@
 #include "mbed.h"
 #include "MODSERIAL.h"
 #include "HIDScope.h"
+#include <iostream>
 
-#define A1LP    0.181269246922018
-#define B1LP    -0.818730753077982
+#define A1LP    0.221199216928595
+#define B1LP    -0.778800783071405
 
-#define A1HP -1.999214978283642
-#define A0HP   0.999214978283642
-#define B1HP -1.943446330323158
-#define B0HP 0.945001709500376
+#define A1HP  -1.999801878951505
+#define A0HP   0.999801878951505
+#define B1HP   -1.971717601075000
+#define B0HP  0.972111984032897
 
-#define TSAMP 0.0001
+#define TSAMP 0.001
 
 AnalogIn    emg0(PTB1);
 MODSERIAL pc(USBTX,USBRX);
 HIDScope scope(5);
 Ticker timer;
-float filter(float);
-float emg_value;
+float emg_value, ylp1, yhp1;
 volatile bool looptimerflag;
 float ysum = 0, yave=0 ;
 
-uint16_t readEMG()
+
+float readEMG()
 {
 
-    return emg0.read_u16();
+    emg_value=emg0.read();
+    return emg_value;
 }
 
-float hpfilter(float emg0_value)
+float hpfilter1(float emg_value)
 {
-    static float y,x1=0,y1=0,x2=0,y2=0;
-    y = y1*B1HP-y2*B0HP-x1*A1HP+x2*A0HP;
+    static float y,x1=0,y1=0,x2=0, y2=0;
+    yhp1 = y1*B1HP-y2*B0HP-x1*A1HP+x2*A0HP;
     x2 = x1;
-    x1 = emg0_value;
+    x1 = emg_value;
     y2 = y1;
     y1 = y;
     return yhp1;
 }
 
-float lpfilter(float yhp1)
+float lpfilter1(float yhp1)
 {
     static float y,x1=0,y1=0,x=0;
-    y = A1LP*x1lp+y1lp*B1LP;
+    ylp1 = A1LP*x1+y1*B1LP;
     y1 = y;
     x1 = x;
-    x = y;
+    x = yhp1;
     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.set(1,yhp1);
+    scope.set(2,ylp1);
+    scope.set(3,yave);
+    scope.set(4,ysum);
     scope.send();
 }
 
@@ -67,27 +69,25 @@
 {
     pc.baud(115200);
     timer.attach(setlooptimerflag,TSAMP);
-    int n;
+    int n = 0;
     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);
+        yhp1 = hpfilter1(emg_value);  //function hpfilter
+        ylp1 = lpfilter1(emg_value);       //function filter
+        ysum = ysum+yhp1;
         n++;
-
-        if(n==1000) {
-            yave = ysum/1000;
-            yave = yave;
+       
+        if(n==100) {
+            yave = ysum/100;
             ysum = 0;
             n = 0;
-        }
+            }
 
-
-        viewer();                  //functie hidscope
+         viewer();                  //functie hidscope
+        
 
     }
 }
\ No newline at end of file