2014 Eurobot fork

Dependencies:   mbed-rtos mbed QEI

Files at this revision

API Documentation at this revision

Comitter:
madcowswe
Date:
Mon Apr 15 13:44:49 2013 +0000
Parent:
72:7996aa8286ae
Child:
74:9620d24a2f4e
Child:
77:8d83a0c00e66
Commit message:
motor disable variable exposed from motor control

Changed in this revision

Processes/MotorControl/MotorControl.cpp Show annotated file Show diff for this revision Revisions of this file
Processes/MotorControl/MotorControl.h Show annotated file Show diff for this revision Revisions of this file
--- a/Processes/MotorControl/MotorControl.cpp	Mon Apr 15 13:37:32 2013 +0000
+++ b/Processes/MotorControl/MotorControl.cpp	Mon Apr 15 13:44:49 2013 +0000
@@ -9,6 +9,8 @@
 namespace MotorControl
 {
 
+volatile bool motorsenabled = 0;
+
 volatile float fwdcmd = 0;
 volatile float omegacmd = 0;
 
@@ -19,7 +21,6 @@
 
 void motor_control_isr()
 {
-    
     const float power_per_dc_m_per_s = 1.64f;
     const float hysteresis_pwr = 0.16f;
 
@@ -73,13 +74,20 @@
     
     float lff = fwdcmd - omegacmd*ENCODER_WHEELBASE/2.0f;
     float rff = fwdcmd + omegacmd*ENCODER_WHEELBASE/2.0f;
-
-    mleft(max(min(actuateleft + max(power_per_dc_m_per_s*abs(lff), min(hysteresis_pwr, 3.0f*abs(lff)))*sgn(lff), MOTOR_MAX_POWER), -MOTOR_MAX_POWER));
-    mright(max(min(actuateright + max(power_per_dc_m_per_s*abs(rff), min(hysteresis_pwr, 3.0f*abs(rff)))*sgn(rff), MOTOR_MAX_POWER), -MOTOR_MAX_POWER));
     
-    if (!(abs(actuateleft) > MOTOR_MAX_POWER || abs(actuateright) > MOTOR_MAX_POWER)){
-        fwdIstate += errfwd;
-        rotIstate += errtheta;
+    if(motorsenabled){
+
+        mleft(max(min(actuateleft + max(power_per_dc_m_per_s*abs(lff), min(hysteresis_pwr, 3.0f*abs(lff)))*sgn(lff), MOTOR_MAX_POWER), -MOTOR_MAX_POWER));
+        mright(max(min(actuateright + max(power_per_dc_m_per_s*abs(rff), min(hysteresis_pwr, 3.0f*abs(rff)))*sgn(rff), MOTOR_MAX_POWER), -MOTOR_MAX_POWER));
+        
+        if (!(abs(actuateleft) > MOTOR_MAX_POWER || abs(actuateright) > MOTOR_MAX_POWER)){
+            fwdIstate += errfwd;
+            rotIstate += errtheta;
+        }
+    
+    } else {
+        fwdIstate = 0;
+        rotIstate = 0;
     }
     
     //mfwdpowdbg = 0;//fwdfiltstate;//;
--- a/Processes/MotorControl/MotorControl.h	Mon Apr 15 13:37:32 2013 +0000
+++ b/Processes/MotorControl/MotorControl.h	Mon Apr 15 13:44:49 2013 +0000
@@ -3,6 +3,8 @@
 #define MOTOR_CONTROL_H
 
 namespace MotorControl{
+
+    extern volatile bool motorsenabled;
     
     extern volatile float fwdcmd;
     extern volatile float omegacmd;