diff --git a/src/driveModi/Modi/ManualControl/manualControl.cpp b/src/driveModi/Modi/ManualControl/manualControl.cpp index a8f3643..a02c561 100644 --- a/src/driveModi/Modi/ManualControl/manualControl.cpp +++ b/src/driveModi/Modi/ManualControl/manualControl.cpp @@ -85,5 +85,10 @@ void ManualControl::digitalControl() { this->moveControl->setRotationSpeed(0); if (this->directionChangeWrapper && (x > 120 || x < -120)) - this->directionChangeWrapper->action(); + this->lastLoopTurned = true; + else if (this->lastLoopTurned) { + if (this->directionChangeWrapper) + this->directionChangeWrapper->action(); + this->lastLoopTurned = false; + } } diff --git a/src/driveModi/Modi/ManualControl/manualControl.h b/src/driveModi/Modi/ManualControl/manualControl.h index ad70d2d..35d242d 100644 --- a/src/driveModi/Modi/ManualControl/manualControl.h +++ b/src/driveModi/Modi/ManualControl/manualControl.h @@ -103,8 +103,9 @@ class ManualControl : public DriveModi { void analogControl(); void digitalControl(); - uint32_t lastMillis = 0; + bool lastLoopTurned = false; uint8_t delay = 10; + uint32_t lastMillis = 0; double max_speed = 1; double max_rotation = 7; CalibrateCompass* caliCompass = nullptr;