🚸 Optional encoder multipliers
This commit is contained in:
parent
1e8fbb7bbb
commit
76b5688304
|
@ -869,6 +869,24 @@
|
||||||
#define HAS_ENCODER_ACTION 1
|
#define HAS_ENCODER_ACTION 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if ENABLED(ENCODER_RATE_MULTIPLIER)
|
||||||
|
#ifndef ENCODER_5X_STEPS_PER_SEC
|
||||||
|
#define ENCODER_5X_STEPS_PER_SEC 0
|
||||||
|
#endif
|
||||||
|
#ifndef ENCODER_10X_STEPS_PER_SEC
|
||||||
|
#define ENCODER_10X_STEPS_PER_SEC 0
|
||||||
|
#endif
|
||||||
|
#ifndef ENCODER_100X_STEPS_PER_SEC
|
||||||
|
#define ENCODER_100X_STEPS_PER_SEC 0
|
||||||
|
#endif
|
||||||
|
#if !((HAS_MARLINUI_MENU || HAS_DWIN_E3V2) && (ENCODER_5X_STEPS_PER_SEC || ENCODER_10X_STEPS_PER_SEC || ENCODER_100X_STEPS_PER_SEC))
|
||||||
|
#undef ENCODER_RATE_MULTIPLIER
|
||||||
|
#undef ENCODER_5X_STEPS_PER_SEC
|
||||||
|
#undef ENCODER_10X_STEPS_PER_SEC
|
||||||
|
#undef ENCODER_100X_STEPS_PER_SEC
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#if STATUS_MESSAGE_TIMEOUT_SEC > 0
|
#if STATUS_MESSAGE_TIMEOUT_SEC > 0
|
||||||
#define HAS_STATUS_MESSAGE_TIMEOUT 1
|
#define HAS_STATUS_MESSAGE_TIMEOUT 1
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -137,11 +137,12 @@ EncoderState encoderReceiveAnalyze() {
|
||||||
// Note that the rate is always calculated between two passes through the
|
// Note that the rate is always calculated between two passes through the
|
||||||
// loop and that the abs of the temp_diff value is tracked.
|
// loop and that the abs of the temp_diff value is tracked.
|
||||||
const float encoderStepRate = encoderMovementSteps / float(ms - encoderRate.lastEncoderTime) * 1000;
|
const float encoderStepRate = encoderMovementSteps / float(ms - encoderRate.lastEncoderTime) * 1000;
|
||||||
if (encoderStepRate >= ENCODER_100X_STEPS_PER_SEC) encoder_multiplier = 100;
|
if (ENCODER_100X_STEPS_PER_SEC > 0 && encoderStepRate >= ENCODER_100X_STEPS_PER_SEC)
|
||||||
else if (encoderStepRate >= ENCODER_10X_STEPS_PER_SEC) encoder_multiplier = 10;
|
encoder_multiplier = 100;
|
||||||
#if ENCODER_5X_STEPS_PER_SEC
|
else if (ENCODER_10X_STEPS_PER_SEC > 0 && encoderStepRate >= ENCODER_10X_STEPS_PER_SEC)
|
||||||
else if (encoderStepRate >= ENCODER_5X_STEPS_PER_SEC) encoder_multiplier = 5;
|
encoder_multiplier = 10;
|
||||||
#endif
|
else if (ENCODER_5X_STEPS_PER_SEC > 0 && encoderStepRate >= ENCODER_5X_STEPS_PER_SEC)
|
||||||
|
encoder_multiplier = 5;
|
||||||
}
|
}
|
||||||
encoderRate.lastEncoderTime = ms;
|
encoderRate.lastEncoderTime = ms;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1055,18 +1055,23 @@ void MarlinUI::init() {
|
||||||
const float encoderStepRate = ((float(abs_diff) / float(epps)) * 1000.0f) / float(ms - encoder_mult_prev_ms);
|
const float encoderStepRate = ((float(abs_diff) / float(epps)) * 1000.0f) / float(ms - encoder_mult_prev_ms);
|
||||||
encoder_mult_prev_ms = ms;
|
encoder_mult_prev_ms = ms;
|
||||||
|
|
||||||
if (encoderStepRate >= ENCODER_100X_STEPS_PER_SEC) encoder_multiplier = 100;
|
if (ENCODER_100X_STEPS_PER_SEC > 0 && encoderStepRate >= ENCODER_100X_STEPS_PER_SEC)
|
||||||
else if (encoderStepRate >= ENCODER_10X_STEPS_PER_SEC) encoder_multiplier = 10;
|
encoder_multiplier = 100;
|
||||||
|
else if (ENCODER_10X_STEPS_PER_SEC > 0 && encoderStepRate >= ENCODER_10X_STEPS_PER_SEC)
|
||||||
|
encoder_multiplier = 10;
|
||||||
|
else if (ENCODER_5X_STEPS_PER_SEC > 0 && encoderStepRate >= ENCODER_5X_STEPS_PER_SEC)
|
||||||
|
encoder_multiplier = 5;
|
||||||
|
|
||||||
// Enable to output the encoder steps per second value
|
// Enable to output the encoder steps per second value
|
||||||
//#define ENCODER_RATE_MULTIPLIER_DEBUG
|
//#define ENCODER_RATE_MULTIPLIER_DEBUG
|
||||||
#if ENABLED(ENCODER_RATE_MULTIPLIER_DEBUG)
|
#if ENABLED(ENCODER_RATE_MULTIPLIER_DEBUG)
|
||||||
SERIAL_ECHO_START();
|
SERIAL_ECHO_MSG(
|
||||||
SERIAL_ECHOPGM("Enc Step Rate: ", encoderStepRate);
|
"Enc Step Rate: ", encoderStepRate,
|
||||||
SERIAL_ECHOPGM(" Multiplier: ", encoder_multiplier);
|
" Mult: ", encoder_multiplier,
|
||||||
SERIAL_ECHOPGM(" ENCODER_10X_STEPS_PER_SEC: ", ENCODER_10X_STEPS_PER_SEC);
|
" 5X Steps: ", ENCODER_5X_STEPS_PER_SEC,
|
||||||
SERIAL_ECHOPGM(" ENCODER_100X_STEPS_PER_SEC: ", ENCODER_100X_STEPS_PER_SEC);
|
" 10X Steps: ", ENCODER_10X_STEPS_PER_SEC,
|
||||||
SERIAL_EOL();
|
" 100X Steps: ", ENCODER_100X_STEPS_PER_SEC
|
||||||
|
);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue