|
|
@ -179,6 +179,10 @@ bool Stepper::abort_current_block; |
|
|
|
uint32_t Stepper::acceleration_time, Stepper::deceleration_time; |
|
|
|
uint8_t Stepper::steps_per_isr; |
|
|
|
|
|
|
|
#if HAS_FREEZE_PIN |
|
|
|
bool Stepper::frozen; // = false
|
|
|
|
#endif |
|
|
|
|
|
|
|
IF_DISABLED(ADAPTIVE_STEP_SMOOTHING, constexpr) uint8_t Stepper::oversampling_factor; |
|
|
|
|
|
|
|
xyze_long_t Stepper::delta_error{0}; |
|
|
@ -1531,6 +1535,9 @@ void Stepper::pulse_phase_isr() { |
|
|
|
// If there is no current block, do nothing
|
|
|
|
if (!current_block) return; |
|
|
|
|
|
|
|
// Skipping step processing causes motion to freeze
|
|
|
|
if (TERN0(HAS_FREEZE_PIN, frozen)) return; |
|
|
|
|
|
|
|
// Count of pending loops and events for this iteration
|
|
|
|
const uint32_t pending_events = step_event_count - step_events_completed; |
|
|
|
uint8_t events_to_do = _MIN(pending_events, steps_per_isr); |
|
|
|