diff --git a/firmware/controllers/algo/engine_configuration.cpp b/firmware/controllers/algo/engine_configuration.cpp index 7171d6f048..df078948c2 100644 --- a/firmware/controllers/algo/engine_configuration.cpp +++ b/firmware/controllers/algo/engine_configuration.cpp @@ -788,6 +788,7 @@ void setDefaultConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->useOnlyRisingEdgeForTrigger = false; + boardConfiguration->idleStepperPulseDuration = 10; boardConfiguration->idle.solenoidFrequency = 200; // set idle_position 50 boardConfiguration->manIdlePosition = 50; diff --git a/firmware/hw_layer/stepper.cpp b/firmware/hw_layer/stepper.cpp index de63541483..408aed3182 100644 --- a/firmware/hw_layer/stepper.cpp +++ b/firmware/hw_layer/stepper.cpp @@ -9,8 +9,9 @@ #include "stepper.h" #include "pin_repository.h" +#include "engine.h" -#define ST_DELAY_MS 10 +EXTERN_ENGINE; static msg_t stThread(StepperMotor *motor) { chRegSetThreadName("stepper"); @@ -32,7 +33,7 @@ static msg_t stThread(StepperMotor *motor) { int currentPosition = motor->currentPosition; if (targetPosition == currentPosition) { - chThdSleepMilliseconds(ST_DELAY_MS); + chThdSleepMilliseconds(boardConfiguration->idleStepperPulseDuration); continue; } bool isIncrementing = targetPosition > currentPosition; @@ -78,9 +79,9 @@ void StepperMotor::pulse() { palWritePad(enablePort, enablePin, false); // ebable stepper palWritePad(stepPort, stepPin, true); - chThdSleepMilliseconds(ST_DELAY_MS); + chThdSleepMilliseconds(boardConfiguration->idleStepperPulseDuration); palWritePad(stepPort, stepPin, false); - chThdSleepMilliseconds(ST_DELAY_MS); + chThdSleepMilliseconds(boardConfiguration->idleStepperPulseDuration); palWritePad(enablePort, enablePin, true); // disable stepper }