robot

Dependencies:   FastPWM3 mbed

Revision:
198:7ee146427a0d
Parent:
196:7172e6e28867
Child:
199:c160a2c03781
--- a/main.cpp	Sat Feb 10 22:00:34 2018 +0000
+++ b/main.cpp	Sun Feb 11 07:12:46 2018 +0000
@@ -31,7 +31,7 @@
 
 void commutate() {  
     /*safety checks, do we do anything this cycle?*/
-    if (!control.enabled && checks_passed()) {
+    if (checks_passed()) {
         go_enabled();
     }
     
@@ -107,13 +107,55 @@
         go_disabled();
     }
     
+    /*some modes disable output*/
+    switch (BREMS_mode) {
+    case MODE_CFG:
+        go_disabled();
+        break;
+    case MODE_RUN:
+    case MODE_ZERO:
+    case MODE_CHR:
+        break;
+    default:
+        go_disabled();
+        break;
+    }
+    
     /*output to timers*/
-    set_dtc(io.a, 0.5f + 0.5f * va * LINEAR_MODULATION_MAX);
-    set_dtc(io.b, 0.5f + 0.5f * vb * LINEAR_MODULATION_MAX);
-    set_dtc(io.c, 0.5f + 0.5f * vc * LINEAR_MODULATION_MAX);
-    
+    switch (BREMS_mode) {
+    case MODE_CFG:
+        set_dtc(io.a, 0.5f);
+        set_dtc(io.b, 0.5f);
+        set_dtc(io.c, 0.5f);
+        break;
+    case MODE_RUN:
+        set_dtc(io.a, 0.5f + 0.5f * va * LINEAR_MODULATION_MAX);
+        set_dtc(io.b, 0.5f + 0.5f * vb * LINEAR_MODULATION_MAX);
+        set_dtc(io.c, 0.5f + 0.5f * vc * LINEAR_MODULATION_MAX);
+        break;
+    case MODE_ZERO:
+        set_dtc(io.a, 0.95f);
+        set_dtc(io.b, 0.05f);
+        set_dtc(io.c, 0.05f);
+        break;
+    case MODE_CHR:
+        //i have no idea lol;
+        break;
+    }
+        
     /*log data*/
-    if (_ENABLE_LOGGING) log();
+    if (_ENABLE_LOGGING) {
+        switch (BREMS_mode) {
+        case MODE_RUN:
+            log();
+            break;
+        case MODE_CFG:
+        case MODE_ZERO:
+        case MODE_CHR:
+        default:
+            break;
+        }
+    }
 }
 
 void slow_loop() {