Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: HIDScope MODSERIAL QEI TextLCD mbed
Fork of TotalControlEmg2 by
Diff: Kalibratie.cpp
- 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;