|
|
|
@ -147,7 +147,7 @@
|
|
|
|
|
#define MIN_ISR_LOOP_CYCLES (ISR_X_STEPPER_CYCLES + ISR_Y_STEPPER_CYCLES + ISR_Z_STEPPER_CYCLES + ISR_E_STEPPER_CYCLES + ISR_MIXING_STEPPER_CYCLES)
|
|
|
|
|
|
|
|
|
|
// Calculate the minimum MPU cycles needed per pulse to enforce, limited to the max stepper rate
|
|
|
|
|
#define _MIN_STEPPER_PULSE_CYCLES(N) max((F_CPU) / (MAXIMUM_STEPPER_RATE), ((F_CPU) / 500000UL) * (N))
|
|
|
|
|
#define _MIN_STEPPER_PULSE_CYCLES(N) MAX((F_CPU) / (MAXIMUM_STEPPER_RATE), ((F_CPU) / 500000UL) * (N))
|
|
|
|
|
#if MINIMUM_STEPPER_PULSE
|
|
|
|
|
#define MIN_STEPPER_PULSE_CYCLES _MIN_STEPPER_PULSE_CYCLES(MINIMUM_STEPPER_PULSE)
|
|
|
|
|
#else
|
|
|
|
@ -158,7 +158,7 @@
|
|
|
|
|
#define ADDED_STEP_TICKS ((MIN_STEPPER_PULSE_CYCLES) / (PULSE_TIMER_PRESCALE) - MIN_PULSE_TICKS)
|
|
|
|
|
|
|
|
|
|
// But the user could be enforcing a minimum time, so the loop time is
|
|
|
|
|
#define ISR_LOOP_CYCLES (ISR_LOOP_BASE_CYCLES + max(MIN_STEPPER_PULSE_CYCLES, MIN_ISR_LOOP_CYCLES))
|
|
|
|
|
#define ISR_LOOP_CYCLES (ISR_LOOP_BASE_CYCLES + MAX(MIN_STEPPER_PULSE_CYCLES, MIN_ISR_LOOP_CYCLES))
|
|
|
|
|
|
|
|
|
|
// If linear advance is enabled, then it is handled separately
|
|
|
|
|
#if ENABLED(LIN_ADVANCE)
|
|
|
|
@ -171,7 +171,7 @@
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
// And the real loop time
|
|
|
|
|
#define ISR_LA_LOOP_CYCLES max(MIN_STEPPER_PULSE_CYCLES, MIN_ISR_LA_LOOP_CYCLES)
|
|
|
|
|
#define ISR_LA_LOOP_CYCLES MAX(MIN_STEPPER_PULSE_CYCLES, MIN_ISR_LA_LOOP_CYCLES)
|
|
|
|
|
|
|
|
|
|
#else
|
|
|
|
|
#define ISR_LA_LOOP_CYCLES 0UL
|
|
|
|
|