Dependencies:   mbed HIDScope biquadFilter

Revision:
23:4c66541f00d3
Parent:
22:65c90d816235
Child:
24:2637e0160301
--- a/main.cpp	Fri Oct 11 09:59:08 2019 +0000
+++ b/main.cpp	Mon Oct 14 10:36:54 2019 +0000
@@ -1,6 +1,7 @@
 #include "mbed.h"
 #include "HIDScope.h"
 #include "BiQuad.h"
+Serial pc(USBTX, USBRX);
 InterruptIn but1(PTC6);
 
 BiQuad bq1 (0.881889334678067,  -1.76377866935613,   0.8818893346780671,  -1.77069673005903,   0.797707797506027);
@@ -23,19 +24,27 @@
  * this function samples the emg and sends it to HIDScope
  **/
  
- float sample_max = 0;
- float sample_min = 1;
+ float sample_max = 0.0f;
+ float sample_min = 1.0f;
  
-     float emg0_value = emg0.read(); 
+    float emg0_value = emg0.read(); 
     float emg1_value = emg1.read();
  
     float filter_value = fabs(bq2.step(fabs(bq1.step(emg0_value - emg1_value))));
 
+
 void calibrate() {
-
+    if (filter_value > sample_max) {
+        sample_max = filter_value;
+        }
+    if (sample_min > filter_value) {
+        sample_min = filter_value;
+        }
     filter_value = filter_value-sample_min;
     filter_value = filter_value/(sample_max-sample_min);
+    pc.printf("Calibrate function has been called\n\r");
     } 
+
  
 void sample()
 {
@@ -45,19 +54,26 @@
     
     //double filter_value = bqc.step(emg1_value);
     float filter_value = fabs(bq2.step(fabs(bq1.step(emg0_value - emg1_value))));
+    //float filter_value = fabs(bq2.step(fabs(bq1.step(emg0_value))));     //alleen emg0 geeft een betere baseline dan emg0 - emg1
+    /*
     if (filter_value > sample_max) {
         sample_max = filter_value;
         }
     if (sample_min > filter_value) {
         sample_min = filter_value;
         }
+    */
     
-        but1.mode(PullUp); 
-    but1.rise(&calibrate);
+    
+    //but1.mode(PullUp); 
+    //but1.rise(&calibrate);
+    
+    calibrate();
+    
     
     scope.set(0, emg0.read() );
     scope.set(1, emg1.read() );
-    //scope.set(2, filter_value);
+    scope.set(2, filter_value);
     /* Repeat the step above if required for more channels of required (channel 0 up to 5 = 6 channels) 
     *  Ensure that enough channels are available (HIDScope scope( 2 ))
     *  Finally, send all channels to the PC at once */
@@ -69,11 +85,13 @@
     
 int main()
 {   
+    pc.baud(115200);
     bqc.add( &bq1);
     /**Attach the 'sample' function to the timer 'sample_timer'.
     * this ensures that 'sample' is executed every... 0.002 seconds = 500 Hz
     */
     sample_timer.attach(&sample, 0.002);
     /*empty loop, sample() is executed periodically*/
-    while(1) {}
+    while(1) {
+        }
 }