atoombom

Dependencies:   Encoder HIDScope mbed

Fork of EMG by Tom Tom

main.cpp

Committer:
Bartvaart
Date:
2015-09-28
Revision:
19:6eefdb204444
Parent:
18:4ebf5e640f0c
Child:
20:4fe3cab02341

File content as of revision 19:6eefdb204444:

#include "mbed.h"
#include "HIDScope.h"
//#include "LowPassFilter.h"

//Define objects
AnalogIn    emg(A0); //Analog input
Ticker      sample_timer;
Timer       timer;
HIDScope    scope(1);
InterruptIn button(PTA4);
DigitalOut  led(LED4);

/** Sample function
 * this function samples the emg and sends it to HIDScope
 **/
void sample()
{
    if(timer.read()<5){
    /* First, sample the EMG using the 'read' method of the 'AnalogIn' variable named 'emg' */
    double emg_value = emg.read();
    /* Second, set the sampled emg value in channel zero (the first channel) in the 'HIDScope' variable named 'scope' */
    scope.set(0,emg_value);
    /* Repeat the step above if required for more channels (channel 0 up to 5 = 6 channels) */
    /* Finally, send all channels to the PC at once */
    scope.send();
    }
    if(emg.read()>=0.7){
        led.write(0);
        led.write(1);
        }
}

void time(){
    timer.start();
    }

int main()
{
    led=!led;
    /**Attach the 'sample' function to the timer 'sample_timer'.
    * this ensures that 'sample' is executed every... 0.002 seconds
    */
    button.fall(&time);
    sample_timer.attach(&sample, 0.002);

    /*empty loop, sample() is executed periodically*/
    while(1) {}
}