forked from Mirrors/Marlin
🩹 FT Motion : Update E index
This commit is contained in:
@@ -389,8 +389,11 @@ bool FTMotion::plan_next_block() {
|
||||
stepper.last_direction_bits.hz = current_block->direction_bits.hz;
|
||||
#endif
|
||||
|
||||
// Cache the extruder index for this block
|
||||
TERN_(DISTINCT_E_FACTORS, block_extruder_axis = E_AXIS_N(current_block->extruder));
|
||||
// Cache the extruder index / axis for this block
|
||||
#if ENABLED(DISTINCT_E_FACTORS)
|
||||
stepper_extruder = current_block->extruder;
|
||||
block_extruder_axis = E_AXIS_N(current_block->extruder);
|
||||
#endif
|
||||
|
||||
const float totalLength = current_block->millimeters;
|
||||
|
||||
|
||||
@@ -3623,7 +3623,24 @@ void Stepper::report_positions() {
|
||||
DIR_WAIT_AFTER();
|
||||
}
|
||||
|
||||
// Start step pulses. Edge stepping will toggle the STEP pin.
|
||||
/**
|
||||
* - For every axis drive STEP pins
|
||||
* - If any axes lack DEDGE stepping:
|
||||
* - Wait for the longest required Pulse Delay
|
||||
* - Reset state of all non-DEDGE STEP pins
|
||||
*
|
||||
* The stepper_extruder must be pre-filled at this point.
|
||||
*
|
||||
* Emits macros of the form: [XYZEIJKUVW]_APPLY_STEP(state, ?always?)
|
||||
* For the standard E axis this expands to: E_STEP_WRITE(stepper_extruder, state)
|
||||
*
|
||||
* TODO: For MIXING_EXTRUDER stepping distribute the steps proportionally to the
|
||||
* E stepper drivers' STEP pins according to pre-calculated Bresenham factors.
|
||||
* So the events are timed just like normal E stepping; only the STEP pin varies.
|
||||
*/
|
||||
|
||||
// Start step pulses on all axes including the active Extruder.
|
||||
// Edge stepping will simply toggle the STEP pin.
|
||||
#define _FTM_STEP_START(A) A##_APPLY_STEP(step_bits.A, false);
|
||||
LOGICAL_AXIS_MAP(_FTM_STEP_START);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user