EMG check. met knopjes en toetsenboard emg signalen simuleren om de code te testen. groepje 12

Dependencies:   MODSERIAL QEI mbed

Fork of EMG_check by sibren vuurberg

main.cpp

Committer:
sivuu
Date:
2016-09-30
Revision:
5:d1d65e16fd9e
Parent:
4:2b3fbd7ef1cf
Child:
6:e6a048f541ee

File content as of revision 5:d1d65e16fd9e:

#include "mbed.h"
//#include "MODSERIAL.h"
 
DigitalOut led(LED_RED);
DigitalOut led2(LED_BLUE);
InterruptIn sw3(SW3);
Serial pc(USBTX, USBRX);
DigitalOut motor1(D4);
PwmOut pwm_motor1(D5);
DigitalOut motor2(D7);
PwmOut pwm_motor2(D6);
int n = 0;
 
void SwitchN() {                        // maakt simpele functie die 1 bij n optelt
    n++;
    }
 
int main()
{
  pc.baud(115200);                      // zorgt voor de link voor putty
  
  while (true) {                        // zorgt er voor dat de code oneindig doorgelopen wordt
    
    sw3.fall(&SwitchN);                  // zorrgt er voor dat void switch wordt gedaan als switch 3 wordt ingedrukt
    
    char c = pc.getc();                 // zorgt ervoor dat er in het toetsenboard characters gebruikt kunnen worden
    
    if (c=='s')                           // als s ingedrukt wordt gebeurd het volgende
    {
         if (n%2==0)                     // als s ingedrukt wordt en het getal is even gebeurd het onderstaande
         {
           pc.printf("n is even \n\r"); // print lijn "n is even"
           pc.printf("up \n\r");        // print lijn "up"   
           motor1 = 1;
           pwm_motor1 = 1;     
           wait (0.05);
           pwm_motor1 = 0.75;
           wait (0.01);
           pwm_motor1 = 0.5;
            wait (0.01);
           pwm_motor1 = 0.25;
            wait (0.01);
           pwm_motor1 = 0;
         } 
         else                           // als s is ingedrukt maar het getal is niet even (dus oneven) gebeurdt het onderstaande
         {
           pc.printf("n is odd \n\r");  // print lijn "n is odd"
           pc.printf("left \n\r");      // print lijn "left"
           motor2 = 1;
           pwm_motor2 = 1;
          wait (0.05);
           pwm_motor2 = 0.75;
           wait (0.01);
           pwm_motor2 = 0.5;
            wait (0.01);
           pwm_motor2 = 0.25;
            wait (0.01);
           pwm_motor2 = 0;
         }            
    }
    else if (c=='d')                     // als d ingedrukt wordt gebeurd het volgende
    {
         if (n%2==0)                     // als d is ingedrukt en n is even dan gebeurd het volgende
         {
           pc.printf("n is even \n\r"); // print lijn "n is even"
           pc.printf("down \n\r");      // print lijn "down"   
           motor1 = 0;
           pwm_motor1 = 1;
           wait (0.05);
           pwm_motor1 = 0.75;
           wait (0.01);
           pwm_motor1 = 0.5;
            wait (0.01);
           pwm_motor1 = 0.25;
            wait (0.01);
           pwm_motor1 = 0;
         } 
         else                           // als d is ingedrukt maar het getal is niet even (dus oneven) gebeurdt het onderstaande
         {
           pc.printf("n is odd \n\r"); // print lijn "n is odd"
           pc.printf("right \n\r");    // print lijn "right"
           motor2 = 0;
           pwm_motor2 = 1;
           wait (0.05);
           pwm_motor2 = 0.75;
           wait (0.01);
           pwm_motor2 = 0.5;
            wait (0.01);
           pwm_motor2 = 0.25;
            wait (0.01);
           pwm_motor2 = 0;
         }                 
    }    
           
}
}