Marijke Abma / Mbed 2 deprecated motor1aansturing201014

Dependencies:   Encoder MODSERIAL mbed-dsp mbed

Fork of motor1aansturing by BMT M9 Groep01

Revision:
21:6412e24cef74
Parent:
20:322499ae6dd1
Child:
22:93d32c57bac8
--- a/main.cpp	Fri Oct 10 10:02:19 2014 +0000
+++ b/main.cpp	Fri Oct 10 12:09:34 2014 +0000
@@ -3,7 +3,7 @@
 #include "MODSERIAL.h"
 
 #define TSAMP 0.01
-#define K_P (0.01)
+#define K_P (0.01) //aanpassen Ki Kp en Kd vóór motortest!
 #define K_I (0  *TSAMP)
 #define K_D (0  /TSAMP)
 #define I_LIMIT 1.
@@ -20,7 +20,7 @@
 AnalogIn potmeter(PTC2);
 volatile bool looptimerflag;
 float potsamples[POT_AVG];
-float EMG(float biceps, float triceps); // waarschijnlijk niet float omdat input functies zijn, geeft problemen met de void functie hieronder...
+int EMG(float biceps, float triceps); // waarschijnlijk niet float omdat input functies zijn
 
 void setlooptimerflag(void)
 {
@@ -37,7 +37,7 @@
     DigitalOut motordir(PTD1);
     
     int toestand = TERUGKEREN;
-    //moet hier wel int voor staan? want terugkeren is al gedifined alszijnde 3
+    //moet hier wel int voor staan? want terugkeren is al gedifined alszijnde 3 (waarschijnlijk wel want toestand is hier voor het eerst benoemd...)
     
     Ticker looptimer;
     looptimer.attach(setlooptimerflag,TSAMP);
@@ -47,16 +47,16 @@
         while(!looptimerflag);
         looptimerflag = false;
         
-        if (motor1.getPosition()<ANGLEMIN && toestand = TERUGKEREN)
+        if (motor1.getPosition()<= ANGLEMIN && toestand != SLAAN)
         {
-            toestand = WACHTEN;
+            toestand = WACHTEN; 
             if (EMG(readbiceps, readtriceps) != 0)
             {
                 toestand = SLAAN;
                // potmeter.read() wordt waarschijnlijk output EMG functie (0,1,2,3)
-                if ( EMG(readbiceps, readtriceps)=3 && motor1.getPosition()<ANGLEMAX) //angle<ANGLEMAX moet ergens anders staan (iets met toestand)
+                if ( EMG(readbiceps, readtriceps)=3)
                 {
-                    setpoint = v3; //experimenteel bepaald, snelheid(?) om bovenste goal te raken 
+                    setpoint = v3; //experimenteel bepaald, snelheid(?)>>>=pulsewidthmodulation! geclampt tussen -1/1. om bovenste goal te raken 
                 }
                 else if ( EMG(readbiceps, readtriceps)=2)
                 {
@@ -85,7 +85,7 @@
         else
             motordir = 1;
         pwm_motor.write(abs(new_pwm));
-        if(motor1.getPosition()>ANGLEMAX && toestand=SLAAN)
+        if(motor1.getPosition()>= ANGLEMAX && toestand=SLAAN)
         { 
             toestand = TERUGKEREN;
             // pc.printf ("Toestand = terugkeren!");