first test of done filter

Dependencies:   biquadFilter mbed HIDScope

Revision:
12:b7025b3a111b
Parent:
11:50ef30ca2b59
--- a/main.cpp	Mon Oct 31 13:31:41 2016 +0000
+++ b/main.cpp	Wed Nov 02 16:34:51 2016 +0000
@@ -10,9 +10,11 @@
 AnalogIn   emg0(A0);
 AnalogIn   emg1(A1);
 DigitalOut led1(LED1);
-HIDScope  scope( 2 );
+DigitalOut led3(LED3);
+HIDScope  scope( 3 );
+int counter;
 
-Ticker  emgticker;  
+Ticker  emgticker;
 
 BiQuadChain bqc;
 BiQuad bq1( 8.17310e-01, 0.00000e+00, -8.17310e-01, -1.57627e-01, -6.34619e-01 ); //bandpass
@@ -22,47 +24,65 @@
 
 BiQuadChain bqc2;
 BiQuad bq3( 2.00834e-02, 4.01667e-02, 2.00834e-02, -1.56102e+00, 6.41352e-01 );  //lowpass
-
+ double a;
 
 
 
 void Sample ()
 {
+   
 
-double emgSignal = emg0.read();
+    double emgSignal = emg0.read();
+
+
+    double emgFiltered1 = bqc.step(emgSignal);              //chain1
+    double emgFiltered2 = fabs(emgFiltered1);               //rectifier
+    double emgFiltered3 = bqc2.step(emgFiltered2);          //chain2
+
+    scope.set(0, emgSignal);                                //hidscope channel 1
+    scope.set(1, emgFiltered3);
+    scope.set(2, a);                                       //hidscope channel 2
+    scope.send();
+
+    if (counter == 0) {
+        a = emgFiltered3;
+    }
 
 
-double emgFiltered1 = bqc.step(emgSignal);
-double emgFiltered2 = fabs(emgFiltered1);
-double emgFiltered3 = bqc2.step(emgFiltered2);
+    if (a >= 0.1)                                            //threshold value
 
-scope.set(0, emgSignal);
-scope.set(1, emgFiltered3);
-scope.send();
+    {
+
+        a = 0;
 
-  if (emgFiltered3 >= 0.1)
-    
-    {
-led1 = !led1;
+        led1 = !led1;
+        counter++;                                         //change LED on/off
+    } else if (a == 0) {
+        counter++;
 
-  
-    emgFiltered3 = true;
-   
     }
+
+    if (counter == 1000) {
+        led3 = !led3;
+        counter = 0;
     }
 
-int main()
-{ 
 
-led1 = 1;
+}
+
 
 
-bqc.add( &bq1 ).add( &bq2 );
-bqc2.add( &bq3 );
-emgticker.attach(&Sample, 0.001);
+int main()
+{
+    counter = 0;
+    led1 = 1; //off
+    led3 = 1; //off
+    bqc.add( &bq1 ).add( &bq2 );
+    bqc2.add( &bq3 );                                       //add both biquad chains
+    emgticker.attach(&Sample, 0.001);                       //attach ticker
 
 
-while (true) {
+    while (true) {
 
-   }
-   }
+    }
+}