|
|
|
@ -212,7 +212,7 @@ float Planner::previous_speed[NUM_AXIS],
|
|
|
|
|
float Planner::position_cart[XYZE];
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if ENABLED(ULTRA_LCD)
|
|
|
|
|
#if HAS_SPI_LCD
|
|
|
|
|
volatile uint32_t Planner::block_buffer_runtime_us = 0;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
@ -1469,7 +1469,7 @@ void Planner::quick_stop() {
|
|
|
|
|
// forced to empty, there's no risk the ISR will touch this.
|
|
|
|
|
delay_before_delivering = BLOCK_DELAY_FOR_1ST_MOVE;
|
|
|
|
|
|
|
|
|
|
#if ENABLED(ULTRA_LCD)
|
|
|
|
|
#if HAS_SPI_LCD
|
|
|
|
|
// Clear the accumulated runtime
|
|
|
|
|
clear_block_buffer_runtime();
|
|
|
|
|
#endif
|
|
|
|
@ -2024,14 +2024,14 @@ bool Planner::_populate_block(block_t * const block, bool split_move,
|
|
|
|
|
// buffer is draining, add extra time. The amount of time added increases if the buffer is still emptied more.
|
|
|
|
|
const uint32_t nst = segment_time_us + LROUND(2 * (settings.min_segment_time_us - segment_time_us) / moves_queued);
|
|
|
|
|
inverse_secs = 1000000.0f / nst;
|
|
|
|
|
#if defined(XY_FREQUENCY_LIMIT) || ENABLED(ULTRA_LCD)
|
|
|
|
|
#if defined(XY_FREQUENCY_LIMIT) || HAS_SPI_LCD
|
|
|
|
|
segment_time_us = nst;
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if ENABLED(ULTRA_LCD)
|
|
|
|
|
#if HAS_SPI_LCD
|
|
|
|
|
// Protect the access to the position.
|
|
|
|
|
const bool was_enabled = STEPPER_ISR_ENABLED();
|
|
|
|
|
if (was_enabled) DISABLE_STEPPER_DRIVER_INTERRUPT();
|
|
|
|
|