parent
849e432d62
commit
aad10ea1c7
2 changed files with 137 additions and 113 deletions
|
|
@ -2958,11 +2958,19 @@ void Stepper::init() {
|
|||
TERN_(HAS_Z3_DIR, Z3_DIR_INIT());
|
||||
TERN_(HAS_Z4_DIR, Z4_DIR_INIT());
|
||||
TERN_(HAS_I_DIR, I_DIR_INIT());
|
||||
TERN_(HAS_K_DIR, K_DIR_INIT());
|
||||
TERN_(HAS_J_DIR, J_DIR_INIT());
|
||||
TERN_(HAS_K_DIR, K_DIR_INIT());
|
||||
TERN_(HAS_U_DIR, U_DIR_INIT());
|
||||
TERN_(HAS_V_DIR, V_DIR_INIT());
|
||||
TERN_(HAS_W_DIR, W_DIR_INIT());
|
||||
TERN_(HAS_E0_DIR, E0_DIR_INIT());
|
||||
TERN_(HAS_E1_DIR, E1_DIR_INIT());
|
||||
TERN_(HAS_E2_DIR, E2_DIR_INIT());
|
||||
TERN_(HAS_E3_DIR, E3_DIR_INIT());
|
||||
TERN_(HAS_E4_DIR, E4_DIR_INIT());
|
||||
TERN_(HAS_E5_DIR, E5_DIR_INIT());
|
||||
TERN_(HAS_E6_DIR, E6_DIR_INIT());
|
||||
TERN_(HAS_E7_DIR, E7_DIR_INIT());
|
||||
|
||||
// Init Enable Pins - steppers default to disabled.
|
||||
#if HAS_X_ENABLE
|
||||
|
|
|
|||
|
|
@ -353,140 +353,156 @@ void reset_stepper_drivers(); // Called by settings.load / settings.reset
|
|||
#endif
|
||||
|
||||
// E0 Stepper
|
||||
#ifndef E0_ENABLE_INIT
|
||||
#define E0_ENABLE_INIT() SET_OUTPUT(E0_ENABLE_PIN)
|
||||
#define E0_ENABLE_WRITE(STATE) WRITE(E0_ENABLE_PIN,STATE)
|
||||
#define E0_ENABLE_READ() bool(READ(E0_ENABLE_PIN))
|
||||
#if E_STEPPERS > 0
|
||||
#ifndef E0_ENABLE_INIT
|
||||
#define E0_ENABLE_INIT() SET_OUTPUT(E0_ENABLE_PIN)
|
||||
#define E0_ENABLE_WRITE(STATE) WRITE(E0_ENABLE_PIN,STATE)
|
||||
#define E0_ENABLE_READ() bool(READ(E0_ENABLE_PIN))
|
||||
#endif
|
||||
#ifndef E0_DIR_INIT
|
||||
#define E0_DIR_INIT() SET_OUTPUT(E0_DIR_PIN)
|
||||
#define E0_DIR_WRITE(STATE) WRITE(E0_DIR_PIN,INVERT_DIR(E0, STATE))
|
||||
#define E0_DIR_READ() INVERT_DIR(E0, bool(READ(E0_DIR_PIN)))
|
||||
#endif
|
||||
#define E0_STEP_INIT() SET_OUTPUT(E0_STEP_PIN)
|
||||
#ifndef E0_STEP_WRITE
|
||||
#define E0_STEP_WRITE(STATE) WRITE(E0_STEP_PIN,STATE)
|
||||
#endif
|
||||
#define E0_STEP_READ() bool(READ(E0_STEP_PIN))
|
||||
#endif
|
||||
#ifndef E0_DIR_INIT
|
||||
#define E0_DIR_INIT() SET_OUTPUT(E0_DIR_PIN)
|
||||
#define E0_DIR_WRITE(STATE) WRITE(E0_DIR_PIN,INVERT_DIR(E0, STATE))
|
||||
#define E0_DIR_READ() INVERT_DIR(E0, bool(READ(E0_DIR_PIN)))
|
||||
#endif
|
||||
#define E0_STEP_INIT() SET_OUTPUT(E0_STEP_PIN)
|
||||
#ifndef E0_STEP_WRITE
|
||||
#define E0_STEP_WRITE(STATE) WRITE(E0_STEP_PIN,STATE)
|
||||
#endif
|
||||
#define E0_STEP_READ() bool(READ(E0_STEP_PIN))
|
||||
|
||||
// E1 Stepper
|
||||
#ifndef E1_ENABLE_INIT
|
||||
#define E1_ENABLE_INIT() SET_OUTPUT(E1_ENABLE_PIN)
|
||||
#define E1_ENABLE_WRITE(STATE) WRITE(E1_ENABLE_PIN,STATE)
|
||||
#define E1_ENABLE_READ() bool(READ(E1_ENABLE_PIN))
|
||||
#if E_STEPPERS > 1 || ENABLED(E_DUAL_STEPPER_DRIVERS)
|
||||
#ifndef E1_ENABLE_INIT
|
||||
#define E1_ENABLE_INIT() SET_OUTPUT(E1_ENABLE_PIN)
|
||||
#define E1_ENABLE_WRITE(STATE) WRITE(E1_ENABLE_PIN,STATE)
|
||||
#define E1_ENABLE_READ() bool(READ(E1_ENABLE_PIN))
|
||||
#endif
|
||||
#ifndef E1_DIR_INIT
|
||||
#define E1_DIR_INIT() SET_OUTPUT(E1_DIR_PIN)
|
||||
#define E1_DIR_WRITE(STATE) WRITE(E1_DIR_PIN,INVERT_DIR(E1, STATE))
|
||||
#define E1_DIR_READ() INVERT_DIR(E1, bool(READ(E1_DIR_PIN)))
|
||||
#endif
|
||||
#define E1_STEP_INIT() SET_OUTPUT(E1_STEP_PIN)
|
||||
#ifndef E1_STEP_WRITE
|
||||
#define E1_STEP_WRITE(STATE) WRITE(E1_STEP_PIN,STATE)
|
||||
#endif
|
||||
#define E1_STEP_READ() bool(READ(E1_STEP_PIN))
|
||||
#endif
|
||||
#ifndef E1_DIR_INIT
|
||||
#define E1_DIR_INIT() SET_OUTPUT(E1_DIR_PIN)
|
||||
#define E1_DIR_WRITE(STATE) WRITE(E1_DIR_PIN,INVERT_DIR(E1, STATE))
|
||||
#define E1_DIR_READ() INVERT_DIR(E1, bool(READ(E1_DIR_PIN)))
|
||||
#endif
|
||||
#define E1_STEP_INIT() SET_OUTPUT(E1_STEP_PIN)
|
||||
#ifndef E1_STEP_WRITE
|
||||
#define E1_STEP_WRITE(STATE) WRITE(E1_STEP_PIN,STATE)
|
||||
#endif
|
||||
#define E1_STEP_READ() bool(READ(E1_STEP_PIN))
|
||||
|
||||
// E2 Stepper
|
||||
#ifndef E2_ENABLE_INIT
|
||||
#define E2_ENABLE_INIT() SET_OUTPUT(E2_ENABLE_PIN)
|
||||
#define E2_ENABLE_WRITE(STATE) WRITE(E2_ENABLE_PIN,STATE)
|
||||
#define E2_ENABLE_READ() bool(READ(E2_ENABLE_PIN))
|
||||
#if E_STEPPERS > 2
|
||||
#ifndef E2_ENABLE_INIT
|
||||
#define E2_ENABLE_INIT() SET_OUTPUT(E2_ENABLE_PIN)
|
||||
#define E2_ENABLE_WRITE(STATE) WRITE(E2_ENABLE_PIN,STATE)
|
||||
#define E2_ENABLE_READ() bool(READ(E2_ENABLE_PIN))
|
||||
#endif
|
||||
#ifndef E2_DIR_INIT
|
||||
#define E2_DIR_INIT() SET_OUTPUT(E2_DIR_PIN)
|
||||
#define E2_DIR_WRITE(STATE) WRITE(E2_DIR_PIN,INVERT_DIR(E2, STATE))
|
||||
#define E2_DIR_READ() INVERT_DIR(E2, bool(READ(E2_DIR_PIN)))
|
||||
#endif
|
||||
#define E2_STEP_INIT() SET_OUTPUT(E2_STEP_PIN)
|
||||
#ifndef E2_STEP_WRITE
|
||||
#define E2_STEP_WRITE(STATE) WRITE(E2_STEP_PIN,STATE)
|
||||
#endif
|
||||
#define E2_STEP_READ() bool(READ(E2_STEP_PIN))
|
||||
#endif
|
||||
#ifndef E2_DIR_INIT
|
||||
#define E2_DIR_INIT() SET_OUTPUT(E2_DIR_PIN)
|
||||
#define E2_DIR_WRITE(STATE) WRITE(E2_DIR_PIN,INVERT_DIR(E2, STATE))
|
||||
#define E2_DIR_READ() INVERT_DIR(E2, bool(READ(E2_DIR_PIN)))
|
||||
#endif
|
||||
#define E2_STEP_INIT() SET_OUTPUT(E2_STEP_PIN)
|
||||
#ifndef E2_STEP_WRITE
|
||||
#define E2_STEP_WRITE(STATE) WRITE(E2_STEP_PIN,STATE)
|
||||
#endif
|
||||
#define E2_STEP_READ() bool(READ(E2_STEP_PIN))
|
||||
|
||||
// E3 Stepper
|
||||
#ifndef E3_ENABLE_INIT
|
||||
#define E3_ENABLE_INIT() SET_OUTPUT(E3_ENABLE_PIN)
|
||||
#define E3_ENABLE_WRITE(STATE) WRITE(E3_ENABLE_PIN,STATE)
|
||||
#define E3_ENABLE_READ() bool(READ(E3_ENABLE_PIN))
|
||||
#if E_STEPPERS > 3
|
||||
#ifndef E3_ENABLE_INIT
|
||||
#define E3_ENABLE_INIT() SET_OUTPUT(E3_ENABLE_PIN)
|
||||
#define E3_ENABLE_WRITE(STATE) WRITE(E3_ENABLE_PIN,STATE)
|
||||
#define E3_ENABLE_READ() bool(READ(E3_ENABLE_PIN))
|
||||
#endif
|
||||
#ifndef E3_DIR_INIT
|
||||
#define E3_DIR_INIT() SET_OUTPUT(E3_DIR_PIN)
|
||||
#define E3_DIR_WRITE(STATE) WRITE(E3_DIR_PIN,INVERT_DIR(E3, STATE))
|
||||
#define E3_DIR_READ() INVERT_DIR(E3, bool(READ(E3_DIR_PIN)))
|
||||
#endif
|
||||
#define E3_STEP_INIT() SET_OUTPUT(E3_STEP_PIN)
|
||||
#ifndef E3_STEP_WRITE
|
||||
#define E3_STEP_WRITE(STATE) WRITE(E3_STEP_PIN,STATE)
|
||||
#endif
|
||||
#define E3_STEP_READ() bool(READ(E3_STEP_PIN))
|
||||
#endif
|
||||
#ifndef E3_DIR_INIT
|
||||
#define E3_DIR_INIT() SET_OUTPUT(E3_DIR_PIN)
|
||||
#define E3_DIR_WRITE(STATE) WRITE(E3_DIR_PIN,INVERT_DIR(E3, STATE))
|
||||
#define E3_DIR_READ() INVERT_DIR(E3, bool(READ(E3_DIR_PIN)))
|
||||
#endif
|
||||
#define E3_STEP_INIT() SET_OUTPUT(E3_STEP_PIN)
|
||||
#ifndef E3_STEP_WRITE
|
||||
#define E3_STEP_WRITE(STATE) WRITE(E3_STEP_PIN,STATE)
|
||||
#endif
|
||||
#define E3_STEP_READ() bool(READ(E3_STEP_PIN))
|
||||
|
||||
// E4 Stepper
|
||||
#ifndef E4_ENABLE_INIT
|
||||
#define E4_ENABLE_INIT() SET_OUTPUT(E4_ENABLE_PIN)
|
||||
#define E4_ENABLE_WRITE(STATE) WRITE(E4_ENABLE_PIN,STATE)
|
||||
#define E4_ENABLE_READ() bool(READ(E4_ENABLE_PIN))
|
||||
#if E_STEPPERS > 4
|
||||
#ifndef E4_ENABLE_INIT
|
||||
#define E4_ENABLE_INIT() SET_OUTPUT(E4_ENABLE_PIN)
|
||||
#define E4_ENABLE_WRITE(STATE) WRITE(E4_ENABLE_PIN,STATE)
|
||||
#define E4_ENABLE_READ() bool(READ(E4_ENABLE_PIN))
|
||||
#endif
|
||||
#ifndef E4_DIR_INIT
|
||||
#define E4_DIR_INIT() SET_OUTPUT(E4_DIR_PIN)
|
||||
#define E4_DIR_WRITE(STATE) WRITE(E4_DIR_PIN,INVERT_DIR(E4, STATE))
|
||||
#define E4_DIR_READ() INVERT_DIR(E4, bool(READ(E4_DIR_PIN)))
|
||||
#endif
|
||||
#define E4_STEP_INIT() SET_OUTPUT(E4_STEP_PIN)
|
||||
#ifndef E4_STEP_WRITE
|
||||
#define E4_STEP_WRITE(STATE) WRITE(E4_STEP_PIN,STATE)
|
||||
#endif
|
||||
#define E4_STEP_READ() bool(READ(E4_STEP_PIN))
|
||||
#endif
|
||||
#ifndef E4_DIR_INIT
|
||||
#define E4_DIR_INIT() SET_OUTPUT(E4_DIR_PIN)
|
||||
#define E4_DIR_WRITE(STATE) WRITE(E4_DIR_PIN,INVERT_DIR(E4, STATE))
|
||||
#define E4_DIR_READ() INVERT_DIR(E4, bool(READ(E4_DIR_PIN)))
|
||||
#endif
|
||||
#define E4_STEP_INIT() SET_OUTPUT(E4_STEP_PIN)
|
||||
#ifndef E4_STEP_WRITE
|
||||
#define E4_STEP_WRITE(STATE) WRITE(E4_STEP_PIN,STATE)
|
||||
#endif
|
||||
#define E4_STEP_READ() bool(READ(E4_STEP_PIN))
|
||||
|
||||
// E5 Stepper
|
||||
#ifndef E5_ENABLE_INIT
|
||||
#define E5_ENABLE_INIT() SET_OUTPUT(E5_ENABLE_PIN)
|
||||
#define E5_ENABLE_WRITE(STATE) WRITE(E5_ENABLE_PIN,STATE)
|
||||
#define E5_ENABLE_READ() bool(READ(E5_ENABLE_PIN))
|
||||
#if E_STEPPERS > 5
|
||||
#ifndef E5_ENABLE_INIT
|
||||
#define E5_ENABLE_INIT() SET_OUTPUT(E5_ENABLE_PIN)
|
||||
#define E5_ENABLE_WRITE(STATE) WRITE(E5_ENABLE_PIN,STATE)
|
||||
#define E5_ENABLE_READ() bool(READ(E5_ENABLE_PIN))
|
||||
#endif
|
||||
#ifndef E5_DIR_INIT
|
||||
#define E5_DIR_INIT() SET_OUTPUT(E5_DIR_PIN)
|
||||
#define E5_DIR_WRITE(STATE) WRITE(E5_DIR_PIN,INVERT_DIR(E5, STATE))
|
||||
#define E5_DIR_READ() INVERT_DIR(E5, bool(READ(E5_DIR_PIN)))
|
||||
#endif
|
||||
#define E5_STEP_INIT() SET_OUTPUT(E5_STEP_PIN)
|
||||
#ifndef E5_STEP_WRITE
|
||||
#define E5_STEP_WRITE(STATE) WRITE(E5_STEP_PIN,STATE)
|
||||
#endif
|
||||
#define E5_STEP_READ() bool(READ(E5_STEP_PIN))
|
||||
#endif
|
||||
#ifndef E5_DIR_INIT
|
||||
#define E5_DIR_INIT() SET_OUTPUT(E5_DIR_PIN)
|
||||
#define E5_DIR_WRITE(STATE) WRITE(E5_DIR_PIN,INVERT_DIR(E5, STATE))
|
||||
#define E5_DIR_READ() INVERT_DIR(E5, bool(READ(E5_DIR_PIN)))
|
||||
#endif
|
||||
#define E5_STEP_INIT() SET_OUTPUT(E5_STEP_PIN)
|
||||
#ifndef E5_STEP_WRITE
|
||||
#define E5_STEP_WRITE(STATE) WRITE(E5_STEP_PIN,STATE)
|
||||
#endif
|
||||
#define E5_STEP_READ() bool(READ(E5_STEP_PIN))
|
||||
|
||||
// E6 Stepper
|
||||
#ifndef E6_ENABLE_INIT
|
||||
#define E6_ENABLE_INIT() SET_OUTPUT(E6_ENABLE_PIN)
|
||||
#define E6_ENABLE_WRITE(STATE) WRITE(E6_ENABLE_PIN,STATE)
|
||||
#define E6_ENABLE_READ() bool(READ(E6_ENABLE_PIN))
|
||||
#if E_STEPPERS > 6
|
||||
#ifndef E6_ENABLE_INIT
|
||||
#define E6_ENABLE_INIT() SET_OUTPUT(E6_ENABLE_PIN)
|
||||
#define E6_ENABLE_WRITE(STATE) WRITE(E6_ENABLE_PIN,STATE)
|
||||
#define E6_ENABLE_READ() bool(READ(E6_ENABLE_PIN))
|
||||
#endif
|
||||
#ifndef E6_DIR_INIT
|
||||
#define E6_DIR_INIT() SET_OUTPUT(E6_DIR_PIN)
|
||||
#define E6_DIR_WRITE(STATE) WRITE(E6_DIR_PIN,INVERT_DIR(E6, STATE))
|
||||
#define E6_DIR_READ() INVERT_DIR(E6, bool(READ(E6_DIR_PIN)))
|
||||
#endif
|
||||
#define E6_STEP_INIT() SET_OUTPUT(E6_STEP_PIN)
|
||||
#ifndef E6_STEP_WRITE
|
||||
#define E6_STEP_WRITE(STATE) WRITE(E6_STEP_PIN,STATE)
|
||||
#endif
|
||||
#define E6_STEP_READ() bool(READ(E6_STEP_PIN))
|
||||
#endif
|
||||
#ifndef E6_DIR_INIT
|
||||
#define E6_DIR_INIT() SET_OUTPUT(E6_DIR_PIN)
|
||||
#define E6_DIR_WRITE(STATE) WRITE(E6_DIR_PIN,INVERT_DIR(E6, STATE))
|
||||
#define E6_DIR_READ() INVERT_DIR(E6, bool(READ(E6_DIR_PIN)))
|
||||
#endif
|
||||
#define E6_STEP_INIT() SET_OUTPUT(E6_STEP_PIN)
|
||||
#ifndef E6_STEP_WRITE
|
||||
#define E6_STEP_WRITE(STATE) WRITE(E6_STEP_PIN,STATE)
|
||||
#endif
|
||||
#define E6_STEP_READ() bool(READ(E6_STEP_PIN))
|
||||
|
||||
// E7 Stepper
|
||||
#ifndef E7_ENABLE_INIT
|
||||
#define E7_ENABLE_INIT() SET_OUTPUT(E7_ENABLE_PIN)
|
||||
#define E7_ENABLE_WRITE(STATE) WRITE(E7_ENABLE_PIN,STATE)
|
||||
#define E7_ENABLE_READ() bool(READ(E7_ENABLE_PIN))
|
||||
#if E_STEPPERS > 7
|
||||
#ifndef E7_ENABLE_INIT
|
||||
#define E7_ENABLE_INIT() SET_OUTPUT(E7_ENABLE_PIN)
|
||||
#define E7_ENABLE_WRITE(STATE) WRITE(E7_ENABLE_PIN,STATE)
|
||||
#define E7_ENABLE_READ() bool(READ(E7_ENABLE_PIN))
|
||||
#endif
|
||||
#ifndef E7_DIR_INIT
|
||||
#define E7_DIR_INIT() SET_OUTPUT(E7_DIR_PIN)
|
||||
#define E7_DIR_WRITE(STATE) WRITE(E7_DIR_PIN,INVERT_DIR(E7, STATE))
|
||||
#define E7_DIR_READ() INVERT_DIR(E7, bool(READ(E7_DIR_PIN)))
|
||||
#endif
|
||||
#define E7_STEP_INIT() SET_OUTPUT(E7_STEP_PIN)
|
||||
#ifndef E7_STEP_WRITE
|
||||
#define E7_STEP_WRITE(STATE) WRITE(E7_STEP_PIN,STATE)
|
||||
#endif
|
||||
#define E7_STEP_READ() bool(READ(E7_STEP_PIN))
|
||||
#endif
|
||||
#ifndef E7_DIR_INIT
|
||||
#define E7_DIR_INIT() SET_OUTPUT(E7_DIR_PIN)
|
||||
#define E7_DIR_WRITE(STATE) WRITE(E7_DIR_PIN,INVERT_DIR(E7, STATE))
|
||||
#define E7_DIR_READ() INVERT_DIR(E7, bool(READ(E7_DIR_PIN)))
|
||||
#endif
|
||||
#define E7_STEP_INIT() SET_OUTPUT(E7_STEP_PIN)
|
||||
#ifndef E7_STEP_WRITE
|
||||
#define E7_STEP_WRITE(STATE) WRITE(E7_STEP_PIN,STATE)
|
||||
#endif
|
||||
#define E7_STEP_READ() bool(READ(E7_STEP_PIN))
|
||||
|
||||
/**
|
||||
* Extruder indirection for the single E axis
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue