33#if EFI_PROD_CODE || EFI_SIMULATOR
37#if EFI_PROD_CODE && EFI_BACKUP_SRAM
44#if EFI_PROD_CODE && EFI_BACKUP_SRAM
77#if EFI_SHAFT_POSITION_INPUT
84 bool forceStepperParking = !
isRunning && tpsPos > STEPPER_PARKING_TPS;
86 forceStepperParking =
true;
87 efiPrintf(
"Stepper: savedStepperPos=%d forceStepperParking=%d (tps=%.2f)",
m_currentPosition, (forceStepperParking ? 1 : 0), tpsPos);
90 efiPrintf(
"Stepper: starting parking time=%lums",
getTimeNowMs());
103 for (
int i = 0; i < numParkingSteps; i++) {
115 efiPrintf(
"Stepper: parking finished time=%lums",
getTimeNowMs());
141 if (targetPosition == currentPosition) {
149 bool isIncrementing = targetPosition > currentPosition;
199 chThdSleepMicroseconds(maxI(MS2US(1), (
int)(MS2US(
m_reactionTime)) / divisor));
uint32_t backupRamLoad(backup_ram_e idx)
void backupRamSave(backup_ram_e idx, uint32_t value)
bool isMainRelayEnabled() const
RpmCalculator rpmCalculator
TunerStudioOutputChannels outputChannels
void initPin(const char *msg, brain_pin_e brainPin, pin_output_mode_e outputMode, bool forceInitWithFatalError=false)
void setValue(const char *msg, int logicValue, bool isForce=false)
static float getOrZero(SensorType type)
pin_output_mode_e enablePinMode
pin_output_mode_e stepPinMode
void initialize(brain_pin_e stepPin, brain_pin_e directionPin, pin_output_mode_e directionPinMode, float reactionTime, brain_pin_e enablePin, pin_output_mode_e enablePinMode)
bool step(bool positive) override
void setDirection(bool isIncrementing)
pin_output_mode_e directionPinMode
virtual bool step(bool positive)=0
void setReactionTime(float ms)
void pause(int divisor=1) const
float getTargetPosition() const
void setTargetPosition(float targetPositionSteps)
void postCurrentPosition(void)
virtual void initialize(StepperHw *hardware, int totalSteps)
void saveStepperPos(int pos)
void setInitialPosition(void)
void changeCurrentPosition(bool positive)
void initialize(StepperHw *hardware, int totalSteps)
void start()
Start the thread.
float efiRound(float value, float precision)
efitimems_t getTimeNowMs()
Returns the 32 bit number of milliseconds since the board initialization.
static EngineAccessor engine
static constexpr engine_configuration_s * engineConfiguration
bool isBrainPinValid(brain_pin_e brainPin)
bool stepperForceParkingEveryRestart
int16_t stepperParkingExtraSteps