From cc591cebc20a19e4f163dc253e6774d19eee218d Mon Sep 17 00:00:00 2001 From: CommanderRedYT Date: Fri, 18 Feb 2022 22:11:59 +0100 Subject: [PATCH] Fixed reverse driving and improved disabling of pwmomat --- main/modes/defaultmode.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/main/modes/defaultmode.cpp b/main/modes/defaultmode.cpp index f41bd59..0632cd8 100644 --- a/main/modes/defaultmode.cpp +++ b/main/modes/defaultmode.cpp @@ -224,10 +224,16 @@ void DefaultMode::update() pwmomat::wish = pwmomat::WISH::NONE; pwmomat::enabled_time = now; } - else if ((pwmomat::tempomat_pwm && pwmomat::enabled_time) && (espchrono::ago(*pwmomat::enabled_time) > 500ms) && (pwm >= std::min(*pwmomat::tempomat_pwm+10, 1500.f) || pwmomat::wish == pwmomat::WISH::WISH_DISABLE)) // disable tempomat when pwm is larger than saved pwm + else if ((pwmomat::tempomat_pwm && pwmomat::enabled_time) && (espchrono::ago(*pwmomat::enabled_time) > 500ms)) { - pwmomat::wish = pwmomat::WISH::NONE; - pwmomat::tempomat_pwm = std::nullopt; + if ((*pwmomat::tempomat_pwm >= 0 && (pwm >= *pwmomat::tempomat_pwm + 10 || pwm < -10)) || + (*pwmomat::tempomat_pwm < 0 && (pwm <= *pwmomat::tempomat_pwm - 10 || pwm > 10)) || + (pwmomat::wish == pwmomat::WISH::WISH_DISABLE) + ) + { + pwmomat::wish = pwmomat::WISH::NONE; + pwmomat::tempomat_pwm = std::nullopt; + } } if (pwmomat::tempomat_pwm)