2014-10-15 Arm 1 naar thuispositie. Eerste poging, fout in keep_in_range

Dependencies:   Encoder MODSERIAL TextLCD mbed mbed-dsp

Revision:
4:69540b9c0646
Parent:
3:adc3052039e7
Child:
5:a1dcd605dd3d
--- a/main.cpp	Thu Oct 16 12:19:15 2014 +0000
+++ b/main.cpp	Thu Oct 16 12:42:21 2014 +0000
@@ -6,6 +6,7 @@
 //Constanten definiëren en waarde geven
 #define SAMPLETIME_REGELAAR     0.005
 #define KP                      1
+#define SAMPLETIME_EMG          0.005
 
 //Pinverdeling en naamgeving variabelen
 TextLCD         lcd(PTD2, PTB8, PTB9, PTB10, PTB11, PTE2);      //LCD scherm
@@ -17,14 +18,18 @@
 PwmOut pwm_motor_arm2(PTA12);
 DigitalOut dir_motor_arm2(PTD3);
 Encoder puls_motor_arm2(PTD4, PTC8);
+AnalogIn EMG_bi(PTB1);
 
-Ticker ticker_regelaar;                  
+
+Ticker ticker_regelaar;  
+Ticker ticker_EMG;                
 
 //Gedefinieerde datatypen en naamgeving
 bool rust = false;                      //Bool voor controleren volgorde in programma
 bool kalibratie_positie_arm1 = false;   //Bool voor controleren volgorde in programma
 bool kalibratie_positie_arm2 = false;   
-bool kalibratie_EMG = false;            //Bool voor controleren volgorde in programma
+bool kalibratie_EMG_bi = false;            //Bool voor controleren volgorde in programma
+bool kalibratie_EMG_tri = false;
 
 char *lcd_r1 = new char[16];             //Char voor tekst op eerste regel LCD scherm
 char *lcd_r2 = new char[16];             //Char voor tekst op tweede regel LCD scherm
@@ -34,6 +39,11 @@
     regelaar_ticker_flag = true;
 }
 
+volatile bool regelaar_EMG_flag;
+void setregelaar_EMG_flag(){
+    regelaar_EMG_flag = true;
+}
+
 void keep_in_range(float * in, float min, float max){
     if (*in < min){
         *in = min;
@@ -61,7 +71,7 @@
     pc.baud(38400);             //PC baud rate is 38400 bits/seconde
     
     //Aanzetten
-    if (rust == false && kalibratie_positie_arm1 == false && kalibratie_positie_arm2 == false && kalibratie_EMG == false){
+    if (rust == false && kalibratie_positie_arm1 == false && kalibratie_positie_arm2 == false && kalibratie_EMG_bi == false && kalibratie_EMG_tri == false){
         lcd_r1 = " BMT M9   GR. 4 ";        //Tekst op eerste regel van LCD scherm
         lcd_r2 = "Hoi! Ik ben PIPO";        //Tekst op tweede regel van LCD scherm
         wait(2);                            //Twee seconden wachten
@@ -72,12 +82,12 @@
     
     
     //Arm 1 naar thuispositie
-    if (rust == true && kalibratie_positie_arm1 == false && kalibratie_positie_arm2 == false && kalibratie_EMG == false){
+    if (rust == true && kalibratie_positie_arm1 == false && kalibratie_positie_arm2 == false && kalibratie_EMG_bi == false && kalibratie_EMG_tri == false){
         wait(1);                            //Een seconde wachten
         
         ticker_regelaar.attach(setregelaar_ticker_flag,SAMPLETIME_REGELAAR);       //Ticker iedere zoveel seconde de flag op laten steken
         
-        while(rust == true && kalibratie_positie_arm1 == false && kalibratie_positie_arm2 == false && kalibratie_EMG == false) {
+        while(rust == true && kalibratie_positie_arm1 == false && kalibratie_positie_arm2 == false && kalibratie_EMG_bi == false && kalibratie_EMG_tri == false) {
             while(regelaar_ticker_flag != true) ;
             regelaar_ticker_flag = false;
             
@@ -102,12 +112,12 @@
     }
     
     //Arm 2 naar thuispositie
-        if (rust == true && kalibratie_positie_arm1 == true && kalibratie_positie_arm2 == false && kalibratie_EMG == false){
+        if (rust == true && kalibratie_positie_arm1 == true && kalibratie_positie_arm2 == false && kalibratie_EMG_bi == false && kalibratie_EMG_tri == false){
         wait(1);                            //Een seconde wachten
         
         //ticker_regelaar.attach(setregelaar_ticker_flag,SAMPLETIME_REGELAAR);       //Ticker iedere zoveel seconde de flag op laten steken
         
-        while(rust == true && kalibratie_positie_arm1 == true && kalibratie_positie_arm2 == false && kalibratie_EMG == false) {
+        while(rust == true && kalibratie_positie_arm1 == true && kalibratie_positie_arm2 == false && kalibratie_EMG_bi == false && kalibratie_EMG_tri == false) {
             while(regelaar_ticker_flag != true) ;
             regelaar_ticker_flag = false;
             
@@ -129,4 +139,15 @@
             wait(1); 
         }
     }
+    
+    //Ticker voor kalibratie
+    if (rust == true && kalibratie_positie_arm1 == true && kalibratie_positie_arm2 == true && kalibratie_EMG_bi == false && kalibratie_EMG_tri == false){
+        
+        ticker_EMG.attach(setregelaar_EMG_flag,SAMPLETIME_EMG);
+        pc.printf("Ticker voor kalibratie compleet");
+    }
+        
+    
+        
+        
 }
\ No newline at end of file