Filter emg 7-10-15 v1

Dependencies:   HIDScope mbed MODSERIAL

Kalibratie.cpp

Committer:
Bartvaart
Date:
2016-10-12
Revision:
24:38cd27737a43
Parent:
22:c1811e60bfce

File content as of revision 24:38cd27737a43:

#include "Kalibratie.h"
#include "Filterdesigns.h"
//#include "MODSERIAL.h" //bugfix

//AnalogIn    emg2(A0); //Analog input van emg kabels niet meer nodig
//MODSERIAL   pc2(USBTX, USBRX); //bugfix
DigitalOut  LedGreen(LED2);
DigitalOut  LedRed(LED1);

int samples = 100;

void Init()
{
    LedGreen = 1;
    LedRed = 1;
}

double KalibratieMax(bool &readymax, AnalogIn emg)  //Kalibratie van de maximum waarde
{
    //pc2.baud(115200);
    LedGreen.write(0); //Led aan
    double ymax = 0;

    for(int i = 1; i <= samples; i++) { //Als timer onder de 5 seconden is dit uitvoeren
        double u = emg.read();
        double y = Filterdesigns(u);
        
        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
        wait(0.05);
    }
    
    LedGreen.write(1); //Led aan
    readymax = 1; // Zodat systeem weet wanneer kalibratie voltooid is
    return ymax;
}

double KalibratieMin(bool &readymin, AnalogIn emg)  //Kalibratie van de minimum waarde
{
    //pc2.baud(115200);
    LedRed.write(0);
    double ymin = 10;

    for(int i = 1; i <= samples; i++) {
        double u = emg.read();
        double y = Filterdesigns(u);
        
        if (y < ymin && i >= samples / 10) {
            ymin = y;
        } 
        else {}
        //pc2.printf("y = %f en ymin = %f \n",y,ymin); //bugfix
        wait(0.05);
    }
    
    LedRed.write(1);
    readymin = 1;
    return ymin;
}