Remco Dasselaar / Mbed 2 deprecated TotalControlEmg2

Dependencies:   HIDScope MODSERIAL QEI TextLCD mbed

Fork of TotalControlEmg2 by Remco Dasselaar

Revision:
22:c1811e60bfce
Parent:
21:8fe8419de3e9
Child:
24:ddd69385b55f
diff -r 8fe8419de3e9 -r c1811e60bfce Kalibratie.cpp
--- a/Kalibratie.cpp	Wed Oct 14 14:49:47 2015 +0000
+++ b/Kalibratie.cpp	Thu Oct 15 10:00:54 2015 +0000
@@ -1,13 +1,13 @@
 #include "Kalibratie.h"
 #include "Filterdesigns.h"
-#include "MODSERIAL.h" //bugfix
+//#include "MODSERIAL.h" //bugfix
 
-Timer   Timermax;
-Timer   Timermin;
 AnalogIn    emg2(A0); //Analog input van emg kabels
-MODSERIAL   pc2(USBTX, USBRX); //bugfix
-DigitalOut LedGreen(LED2);
-DigitalOut LedRed(LED1);
+//MODSERIAL   pc2(USBTX, USBRX); //bugfix
+DigitalOut  LedGreen(LED2);
+DigitalOut  LedRed(LED1);
+
+int samples = 100;
 
 void Init()
 {
@@ -17,24 +17,22 @@
 
 double KalibratieMax(bool &readymax)  //Kalibratie van de maximum waarde
 {
-    Timermax.reset();
-    Timermax.start(); //Start de timer
-
+    //pc2.baud(115200);
     LedGreen.write(0); //Led aan
     double ymax = 0;
 
-    while(Timermax <= 5) { //Als timer onder de 5 seconden is dit uitvoeren
+    for(int i = 1; i <= samples; i++) { //Als timer onder de 5 seconden is dit uitvoeren
         double u = emg2.read();
         double y = Filterdesigns(u);
-        if (y > ymax && Timermax >= 1) { //Als de gemeten waarde groter is dan de opgeslagen waarde wordt dit de nieuwe opgeslagen waarde
+        
+        if (y > ymax && i >= samples / 10) { //Als de gemeten waarde groter is dan de opgeslagen waarde wordt dit de nieuwe opgeslagen waarde
             ymax = y;
         } 
-        else {
-        }
-        pc2.printf("y = %f en ymax = %f \n",y,ymax); //bugfix
+        else {}
+        //pc2.printf("y = %f en ymax = %f \n",y,ymax); //bugfix
+        wait(0.05);
     }
     
-    Timermax.stop();
     LedGreen.write(1); //Led aan
     readymax = 1; // Zodat systeem weet wanneer kalibratie voltooid is
     return ymax;
@@ -42,25 +40,22 @@
 
 double KalibratieMin(bool &readymin)  //Kalibratie van de minimum waarde
 {
-    Timermin.reset();
-    Timermin.start();
-
+    //pc2.baud(115200);
     LedRed.write(0);
     double ymin = 10;
 
-    while(Timermin <= 5) {
+    for(int i = 1; i <= samples; i++) {
         double u = emg2.read();
         double y = Filterdesigns(u);
         
-        if (y < ymin && Timermin >= 1) {
+        if (y < ymin && i >= samples / 10) {
             ymin = y;
         } 
-        else {
-        }
-        pc2.printf("y = %f en ymin = %f \n",y,ymin); //bugfix
+        else {}
+        //pc2.printf("y = %f en ymin = %f \n",y,ymin); //bugfix
+        wait(0.05);
     }
     
-    Timermin.stop();
     LedRed.write(1);
     readymin = 1;
     return ymin;