|
@ -256,6 +256,18 @@ int8_t Stepper::count_direction[NUM_AXIS] = { 0, 0, 0, 0 }; |
|
|
A##3_STEP_WRITE(V); \ |
|
|
A##3_STEP_WRITE(V); \ |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#define TRIPLE_SEPARATE_APPLY_STEP(A,V) \ |
|
|
|
|
|
if (separate_multi_axis) { \ |
|
|
|
|
|
if (!locked_##A##_motor) A##_STEP_WRITE(V); \ |
|
|
|
|
|
if (!locked_##A##2_motor) A##2_STEP_WRITE(V); \ |
|
|
|
|
|
if (!locked_##A##3_motor) A##3_STEP_WRITE(V); \ |
|
|
|
|
|
} \ |
|
|
|
|
|
else { \ |
|
|
|
|
|
A##_STEP_WRITE(V); \ |
|
|
|
|
|
A##2_STEP_WRITE(V); \ |
|
|
|
|
|
A##3_STEP_WRITE(V); \ |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
#if ENABLED(X_DUAL_STEPPER_DRIVERS) |
|
|
#if ENABLED(X_DUAL_STEPPER_DRIVERS) |
|
|
#define X_APPLY_DIR(v,Q) do{ X_DIR_WRITE(v); X2_DIR_WRITE((v) != INVERT_X2_VS_X_DIR); }while(0) |
|
|
#define X_APPLY_DIR(v,Q) do{ X_DIR_WRITE(v); X2_DIR_WRITE((v) != INVERT_X2_VS_X_DIR); }while(0) |
|
|
#if ENABLED(X_DUAL_ENDSTOPS) |
|
|
#if ENABLED(X_DUAL_ENDSTOPS) |
|
@ -301,6 +313,8 @@ int8_t Stepper::count_direction[NUM_AXIS] = { 0, 0, 0, 0 }; |
|
|
#define Z_APPLY_DIR(v,Q) do{ Z_DIR_WRITE(v); Z2_DIR_WRITE(v); Z3_DIR_WRITE(v); }while(0) |
|
|
#define Z_APPLY_DIR(v,Q) do{ Z_DIR_WRITE(v); Z2_DIR_WRITE(v); Z3_DIR_WRITE(v); }while(0) |
|
|
#if ENABLED(Z_TRIPLE_ENDSTOPS) |
|
|
#if ENABLED(Z_TRIPLE_ENDSTOPS) |
|
|
#define Z_APPLY_STEP(v,Q) TRIPLE_ENDSTOP_APPLY_STEP(Z,v) |
|
|
#define Z_APPLY_STEP(v,Q) TRIPLE_ENDSTOP_APPLY_STEP(Z,v) |
|
|
|
|
|
#elif ENABLED(Z_STEPPER_AUTO_ALIGN) |
|
|
|
|
|
#define Z_APPLY_STEP(v,Q) TRIPLE_SEPARATE_APPLY_STEP(Z,v) |
|
|
#else |
|
|
#else |
|
|
#define Z_APPLY_STEP(v,Q) do{ Z_STEP_WRITE(v); Z2_STEP_WRITE(v); Z3_STEP_WRITE(v); }while(0) |
|
|
#define Z_APPLY_STEP(v,Q) do{ Z_STEP_WRITE(v); Z2_STEP_WRITE(v); Z3_STEP_WRITE(v); }while(0) |
|
|
#endif |
|
|
#endif |
|
|