Filter emg 7-10-15 v1

Dependencies:   HIDScope mbed MODSERIAL

Kalibratie.cpp

Committer:
Bartvaart
Date:
2015-10-13
Revision:
19:6c0245063b96
Parent:
18:eec0880fcded
Child:
20:11e1244ad2ad

File content as of revision 19:6c0245063b96:

#include "Kalibratie.h"
#include "Filterdesigns.h"

Timer   Timermax;
Timer   Timermin;
AnalogIn    emg2(A0); //Analog input van emg kabels

DigitalOut LedGreen(LED2);
DigitalOut LedRed(LED1);

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

double KalibratieMax(bool &readymax)  //Kalibratie van de maximum waarde
{
    Timermax.reset();
    Timermax.start(); //Start de timer

    LedGreen.write(0); //Led aan
    double ymax = 0;
    double gem = 0; // omdat y min nog niet is gedefinieerd moet er daarvoor in de plaats een waarde 0 worden doorgestuurd naar het programma Filterdesigns. Omdat het onduidelijk is dezse ymin te gaan noemen in een bestand waar ymin ook wordt bepaald heet deze in dit geval gem

    while(Timermax <= 2) { //Als timer onder de 5 seconden is dit uitvoeren
        double u = emg2.read();
        double y = Filterdesigns(u, gem);
        if (y > ymax) { //Als de gemeten waarde groter is dan de opgeslagen waarde wordt dit de nieuwe opgeslagen waarde
            ymax = y;
        } 
        else {
        }
    }
    
    Timermax.stop();
    LedGreen.write(1); //Led aan
    readymax = 1; // Zodat systeem weet wanneer kalibratie voltooid is
    return ymax;
}

double KalibratieMin(bool &readymin)  //Kalibratie van de minimum waarde
{
    Timermin.reset();
    Timermin.start();

    LedRed.write(0);
    double ymin = 10;
    double gem = 0;

    while(Timermin <= 2) {
        double u = emg2.read();
        double y = Filterdesigns(u, gem);
        
        if (y < ymin) {
            ymin = y;
        } 
        else {
        }
    }
    
    Timermin.stop();
    LedRed.write(1);
    readymin = 1;
    return ymin;
}