Multi-Z stepper inverting (#20678)
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
This commit is contained in:
@ -211,14 +211,18 @@
|
||||
#if DISABLED(Y_DUAL_STEPPER_DRIVERS)
|
||||
#undef Y2_DRIVER_TYPE
|
||||
#endif
|
||||
#if NUM_Z_STEPPER_DRIVERS < 2
|
||||
#undef Z2_DRIVER_TYPE
|
||||
#endif
|
||||
#if NUM_Z_STEPPER_DRIVERS < 3
|
||||
#undef Z3_DRIVER_TYPE
|
||||
#endif
|
||||
|
||||
#if NUM_Z_STEPPER_DRIVERS < 4
|
||||
#undef Z4_DRIVER_TYPE
|
||||
#undef INVERT_Z4_VS_Z_DIR
|
||||
#if NUM_Z_STEPPER_DRIVERS < 3
|
||||
#undef Z3_DRIVER_TYPE
|
||||
#undef INVERT_Z3_VS_Z_DIR
|
||||
#if NUM_Z_STEPPER_DRIVERS < 2
|
||||
#undef Z2_DRIVER_TYPE
|
||||
#undef INVERT_Z2_VS_Z_DIR
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
//
|
||||
|
@ -60,16 +60,11 @@ uint8_t L64XX_Marlin::dir_commands[MAX_L64XX]; // array to hold direction comma
|
||||
|
||||
const uint8_t L64XX_Marlin::index_to_dir[MAX_L64XX] = {
|
||||
INVERT_X_DIR, INVERT_Y_DIR, INVERT_Z_DIR
|
||||
, (INVERT_X_DIR) // X2
|
||||
#if ENABLED(X_DUAL_STEPPER_DRIVERS)
|
||||
^ ENABLED(INVERT_X2_VS_X_DIR)
|
||||
#endif
|
||||
, (INVERT_Y_DIR) // Y2
|
||||
#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
|
||||
^ ENABLED(INVERT_Y2_VS_Y_DIR)
|
||||
#endif
|
||||
, INVERT_Z_DIR, INVERT_Z_DIR, INVERT_Z_DIR // Z2,Z3,Z4
|
||||
|
||||
, (INVERT_X_DIR) ^ BOTH(X_DUAL_STEPPER_DRIVERS, INVERT_X2_VS_X_DIR) // X2
|
||||
, (INVERT_Y_DIR) ^ BOTH(Y_DUAL_STEPPER_DRIVERS, INVERT_Y2_VS_Y_DIR) // Y2
|
||||
, (INVERT_Z_DIR) ^ ENABLED(INVERT_Z2_VS_Z_DIR) // Z2
|
||||
, (INVERT_Z_DIR) ^ ENABLED(INVERT_Z3_VS_Z_DIR) // Z3
|
||||
, (INVERT_Z_DIR) ^ ENABLED(INVERT_Z4_VS_Z_DIR) // Z4
|
||||
, INVERT_E0_DIR, INVERT_E1_DIR, INVERT_E2_DIR, INVERT_E3_DIR
|
||||
, INVERT_E4_DIR, INVERT_E5_DIR, INVERT_E6_DIR, INVERT_E7_DIR
|
||||
};
|
||||
|
@ -381,7 +381,10 @@ xyze_int8_t Stepper::count_direction{0};
|
||||
#endif
|
||||
|
||||
#if NUM_Z_STEPPER_DRIVERS == 4
|
||||
#define Z_APPLY_DIR(v,Q) do{ Z_DIR_WRITE(v); Z2_DIR_WRITE(v); Z3_DIR_WRITE(v); Z4_DIR_WRITE(v); }while(0)
|
||||
#define Z_APPLY_DIR(v,Q) do{ \
|
||||
Z_DIR_WRITE(v); Z2_DIR_WRITE((v) ^ ENABLED(INVERT_Z2_VS_Z_DIR)); \
|
||||
Z3_DIR_WRITE((v) ^ ENABLED(INVERT_Z3_VS_Z_DIR)); Z4_DIR_WRITE((v) ^ ENABLED(INVERT_Z4_VS_Z_DIR)); \
|
||||
}while(0)
|
||||
#if ENABLED(Z_MULTI_ENDSTOPS)
|
||||
#define Z_APPLY_STEP(v,Q) QUAD_ENDSTOP_APPLY_STEP(Z,v)
|
||||
#elif ENABLED(Z_STEPPER_AUTO_ALIGN)
|
||||
@ -390,7 +393,9 @@ xyze_int8_t Stepper::count_direction{0};
|
||||
#define Z_APPLY_STEP(v,Q) do{ Z_STEP_WRITE(v); Z2_STEP_WRITE(v); Z3_STEP_WRITE(v); Z4_STEP_WRITE(v); }while(0)
|
||||
#endif
|
||||
#elif NUM_Z_STEPPER_DRIVERS == 3
|
||||
#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) ^ ENABLED(INVERT_Z2_VS_Z_DIR)); Z3_DIR_WRITE((v) ^ ENABLED(INVERT_Z3_VS_Z_DIR)); \
|
||||
}while(0)
|
||||
#if ENABLED(Z_MULTI_ENDSTOPS)
|
||||
#define Z_APPLY_STEP(v,Q) TRIPLE_ENDSTOP_APPLY_STEP(Z,v)
|
||||
#elif ENABLED(Z_STEPPER_AUTO_ALIGN)
|
||||
@ -399,7 +404,7 @@ xyze_int8_t Stepper::count_direction{0};
|
||||
#define Z_APPLY_STEP(v,Q) do{ Z_STEP_WRITE(v); Z2_STEP_WRITE(v); Z3_STEP_WRITE(v); }while(0)
|
||||
#endif
|
||||
#elif NUM_Z_STEPPER_DRIVERS == 2
|
||||
#define Z_APPLY_DIR(v,Q) do{ Z_DIR_WRITE(v); Z2_DIR_WRITE(v); }while(0)
|
||||
#define Z_APPLY_DIR(v,Q) do{ Z_DIR_WRITE(v); Z2_DIR_WRITE((v) ^ ENABLED(INVERT_Z2_VS_Z_DIR)); }while(0)
|
||||
#if ENABLED(Z_MULTI_ENDSTOPS)
|
||||
#define Z_APPLY_STEP(v,Q) DUAL_ENDSTOP_APPLY_STEP(Z,v)
|
||||
#elif ENABLED(Z_STEPPER_AUTO_ALIGN)
|
||||
|
Reference in New Issue
Block a user