diff options
author | lonkaars <loek@pipeframe.xyz> | 2022-06-04 18:42:31 +0200 |
---|---|---|
committer | lonkaars <loek@pipeframe.xyz> | 2022-06-04 18:42:31 +0200 |
commit | 4fed6f532cb9c990e0a30c3e541f63b3a39383ab (patch) | |
tree | 86f8b61e64df7b0387a24859133b2ca13489b41c /robot/mode_dirc.c | |
parent | 595763efb64ee861f3ccf458ff35992b94f2fa3a (diff) |
slow down motors when disconnected
Diffstat (limited to 'robot/mode_dirc.c')
-rw-r--r-- | robot/mode_dirc.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/robot/mode_dirc.c b/robot/mode_dirc.c index 397d44d..b7df974 100644 --- a/robot/mode_dirc.c +++ b/robot/mode_dirc.c @@ -5,14 +5,18 @@ #include "../shared/util.h" #include "orangutan_shim.h" +#include <string.h> +#include "../shared/errcatch.h" + int16_t g_w2_mode_dirc_motor_l = 0; int16_t g_w2_mode_dirc_motor_r = 0; -double g_w2_mode_dirc_power = 1.0; +uint8_t g_w2_mode_dirc_power = 100; void w2_mode_dirc() { - // if (g_w2_connected) g_w2_mode_dirc_power = 1.0; - // else g_w2_mode_dirc_power = W2_MAX(0, g_w2_mode_dirc_power - 0.01); + if (g_w2_connected == 1) g_w2_mode_dirc_power = 100; + else g_w2_mode_dirc_power = W2_MAX(0, g_w2_mode_dirc_power - 1); + + if (g_w2_mode_dirc_power == 0) w2_modes_call(W2_M_HALT); - // if (g_w2_mode_dirc_power == 0.0) w2_modes_call(W2_M_HALT); - set_motors(g_w2_mode_dirc_motor_l * g_w2_mode_dirc_power, g_w2_mode_dirc_motor_r * g_w2_mode_dirc_power); + set_motors(g_w2_mode_dirc_motor_l * g_w2_mode_dirc_power / 100, g_w2_mode_dirc_motor_r * g_w2_mode_dirc_power / 100); } |