|
|
|
@ -127,15 +127,15 @@ ENCODER_DiffState Encoder_ReceiveAnalyze(void) {
|
|
|
|
|
|
|
|
|
|
// if must encoder rati multiplier
|
|
|
|
|
if (EncoderRate.encoderRateEnabled) {
|
|
|
|
|
const float abs_diff = ABS(temp_diff);
|
|
|
|
|
const float encoderMovementSteps = abs_diff / (ENCODER_PULSES_PER_STEP);
|
|
|
|
|
const float abs_diff = ABS(temp_diff),
|
|
|
|
|
encoderMovementSteps = abs_diff / (ENCODER_PULSES_PER_STEP);
|
|
|
|
|
if (EncoderRate.lastEncoderTime) {
|
|
|
|
|
// Note that the rate is always calculated between two passes through the
|
|
|
|
|
// loop and that the abs of the temp_diff value is tracked.
|
|
|
|
|
const float encoderStepRate = encoderMovementSteps / float(ms - EncoderRate.lastEncoderTime) * 1000;
|
|
|
|
|
if (encoderStepRate >= ENCODER_100X_STEPS_PER_SEC) encoderMultiplier = 100;
|
|
|
|
|
else if (encoderStepRate >= ENCODER_10X_STEPS_PER_SEC) encoderMultiplier = 10;
|
|
|
|
|
else if (encoderStepRate >= ENCODER_5X_STEPS_PER_SEC) encoderMultiplier = 5;
|
|
|
|
|
if (encoderStepRate >= ENCODER_100X_STEPS_PER_SEC) encoderMultiplier = 100;
|
|
|
|
|
else if (encoderStepRate >= ENCODER_10X_STEPS_PER_SEC) encoderMultiplier = 10;
|
|
|
|
|
else if (encoderStepRate >= ENCODER_5X_STEPS_PER_SEC) encoderMultiplier = 5;
|
|
|
|
|
}
|
|
|
|
|
EncoderRate.lastEncoderTime = ms;
|
|
|
|
|
}
|
|
|
|
|