|
@@ -1794,7 +1794,7 @@ bool Planner::_buffer_steps(const xyze_long_t &target
|
1794
|
1794
|
if (cleaning_buffer_counter) return false;
|
1795
|
1795
|
|
1796
|
1796
|
// Fill the block with the specified movement
|
1797
|
|
- if (!_populate_block(block, false, target
|
|
1797
|
+ if (!_populate_block(block, target
|
1798
|
1798
|
OPTARG(HAS_POSITION_FLOAT, target_float)
|
1799
|
1799
|
OPTARG(HAS_DIST_MM_ARG, cart_dist_mm)
|
1800
|
1800
|
, fr_mm_s, extruder, millimeters
|
|
@@ -1826,17 +1826,24 @@ bool Planner::_buffer_steps(const xyze_long_t &target
|
1826
|
1826
|
}
|
1827
|
1827
|
|
1828
|
1828
|
/**
|
1829
|
|
- * Planner::_populate_block
|
|
1829
|
+ * @brief Populate a block in preparation for insertion
|
|
1830
|
+ * @details Populate the fields of a new linear movement block
|
|
1831
|
+ * that will be added to the queue and processed soon
|
|
1832
|
+ * by the Stepper ISR.
|
1830
|
1833
|
*
|
1831
|
|
- * Fills a new linear movement in the block (in terms of steps).
|
|
1834
|
+ * @param block A block to populate
|
|
1835
|
+ * @param target Target position in steps units
|
|
1836
|
+ * @param target_float Target position in native mm
|
|
1837
|
+ * @param cart_dist_mm The pre-calculated move lengths for all axes, in mm
|
|
1838
|
+ * @param fr_mm_s (target) speed of the move
|
|
1839
|
+ * @param extruder target extruder
|
|
1840
|
+ * @param millimeters A pre-calculated linear distance for the move, in mm,
|
|
1841
|
+ * or 0.0 to have the distance calculated here.
|
1832
|
1842
|
*
|
1833
|
|
- * target - target position in steps units
|
1834
|
|
- * fr_mm_s - (target) speed of the move
|
1835
|
|
- * extruder - target extruder
|
1836
|
|
- *
|
1837
|
|
- * Returns true if movement is acceptable, false otherwise
|
|
1843
|
+ * @return true if movement is acceptable, false otherwise
|
1838
|
1844
|
*/
|
1839
|
|
-bool Planner::_populate_block(block_t * const block, bool split_move,
|
|
1845
|
+bool Planner::_populate_block(
|
|
1846
|
+ block_t * const block,
|
1840
|
1847
|
const abce_long_t &target
|
1841
|
1848
|
OPTARG(HAS_POSITION_FLOAT, const xyze_pos_t &target_float)
|
1842
|
1849
|
OPTARG(HAS_DIST_MM_ARG, const xyze_float_t &cart_dist_mm)
|
|
@@ -2849,9 +2856,8 @@ bool Planner::_populate_block(block_t * const block, bool split_move,
|
2849
|
2856
|
// Initialize block entry speed. Compute based on deceleration to user-defined MINIMUM_PLANNER_SPEED.
|
2850
|
2857
|
const float v_allowable_sqr = max_allowable_speed_sqr(-block->acceleration, sq(float(MINIMUM_PLANNER_SPEED)), block->millimeters);
|
2851
|
2858
|
|
2852
|
|
- // If we are trying to add a split block, start with the
|
2853
|
|
- // max. allowed speed to avoid an interrupted first move.
|
2854
|
|
- block->entry_speed_sqr = !split_move ? sq(float(MINIMUM_PLANNER_SPEED)) : _MIN(vmax_junction_sqr, v_allowable_sqr);
|
|
2859
|
+ // Start with the minimum allowed speed
|
|
2860
|
+ block->entry_speed_sqr = sq(float(MINIMUM_PLANNER_SPEED));
|
2855
|
2861
|
|
2856
|
2862
|
// Initialize planner efficiency flags
|
2857
|
2863
|
// Set flag if block will always reach maximum junction speed regardless of entry/exit speeds.
|