![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
robot
Diff: main.cpp
- 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() {