M569 to change stepping mode. Add new TMC section to LCD. (#12884)

This commit is contained in:
teemuatlut
2019-01-17 21:17:16 +02:00
committed by Scott Lahteine
parent d08f27e27b
commit e6805582a6
84 changed files with 1542 additions and 80 deletions

View File

@@ -66,6 +66,14 @@
#define _TMC_CLASS(MODEL, L) __TMC_CLASS(MODEL, L)
#define TMC_CLASS(ST) _TMC_CLASS(ST##_DRIVER_TYPE, TMC_##ST##_LABEL)
typedef struct {
uint8_t toff;
int8_t hstrt;
uint8_t hend;
} chopper_timing_t;
static constexpr chopper_timing_t chopper_timing = CHOPPER_TIMING;
#if HAS_DRIVER(TMC2208)
void tmc2208_serial_begin();
#endif
@@ -99,9 +107,9 @@ void reset_stepper_drivers(); // Called by settings.load / settings.reset
#define X_ENABLE_INIT NOOP
#define X_ENABLE_WRITE(STATE) stepperX.setEnabled(STATE)
#define X_ENABLE_READ stepperX.isEnabled()
#elif AXIS_DRIVER_TYPE(X, TMC2660)
#elif ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(X)
#define X_ENABLE_INIT NOOP
#define X_ENABLE_WRITE(STATE) stepperX.toff((STATE)==X_ENABLE_ON ? stepperX.savedToff() : 0)
#define X_ENABLE_WRITE(STATE) stepperX.toff((STATE)==X_ENABLE_ON ? chopper_timing.toff : 0)
#define X_ENABLE_READ stepperX.isEnabled()
#else
#define X_ENABLE_INIT SET_OUTPUT(X_ENABLE_PIN)
@@ -134,9 +142,9 @@ void reset_stepper_drivers(); // Called by settings.load / settings.reset
#define Y_ENABLE_INIT NOOP
#define Y_ENABLE_WRITE(STATE) stepperY.setEnabled(STATE)
#define Y_ENABLE_READ stepperY.isEnabled()
#elif AXIS_DRIVER_TYPE(Y, TMC2660)
#elif ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(Y)
#define Y_ENABLE_INIT NOOP
#define Y_ENABLE_WRITE(STATE) stepperY.toff((STATE)==Y_ENABLE_ON ? stepperY.savedToff() : 0)
#define Y_ENABLE_WRITE(STATE) stepperY.toff((STATE)==Y_ENABLE_ON ? chopper_timing.toff : 0)
#define Y_ENABLE_READ stepperY.isEnabled()
#else
#define Y_ENABLE_INIT SET_OUTPUT(Y_ENABLE_PIN)
@@ -169,9 +177,9 @@ void reset_stepper_drivers(); // Called by settings.load / settings.reset
#define Z_ENABLE_INIT NOOP
#define Z_ENABLE_WRITE(STATE) stepperZ.setEnabled(STATE)
#define Z_ENABLE_READ stepperZ.isEnabled()
#elif AXIS_DRIVER_TYPE(Z, TMC2660)
#elif ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(Z)
#define Z_ENABLE_INIT NOOP
#define Z_ENABLE_WRITE(STATE) stepperZ.toff((STATE)==Z_ENABLE_ON ? stepperZ.savedToff() : 0)
#define Z_ENABLE_WRITE(STATE) stepperZ.toff((STATE)==Z_ENABLE_ON ? chopper_timing.toff : 0)
#define Z_ENABLE_READ stepperZ.isEnabled()
#else
#define Z_ENABLE_INIT SET_OUTPUT(Z_ENABLE_PIN)
@@ -205,9 +213,9 @@ void reset_stepper_drivers(); // Called by settings.load / settings.reset
#define X2_ENABLE_INIT NOOP
#define X2_ENABLE_WRITE(STATE) stepperX2.setEnabled(STATE)
#define X2_ENABLE_READ stepperX2.isEnabled()
#elif AXIS_DRIVER_TYPE(X2, TMC2660)
#elif ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(X2)
#define X2_ENABLE_INIT NOOP
#define X2_ENABLE_WRITE(STATE) stepperX2.toff((STATE)==X_ENABLE_ON ? stepperX2.savedToff() : 0)
#define X2_ENABLE_WRITE(STATE) stepperX2.toff((STATE)==X_ENABLE_ON ? chopper_timing.toff : 0)
#define X2_ENABLE_READ stepperX2.isEnabled()
#else
#define X2_ENABLE_INIT SET_OUTPUT(X2_ENABLE_PIN)
@@ -242,9 +250,9 @@ void reset_stepper_drivers(); // Called by settings.load / settings.reset
#define Y2_ENABLE_INIT NOOP
#define Y2_ENABLE_WRITE(STATE) stepperY2.setEnabled(STATE)
#define Y2_ENABLE_READ stepperY2.isEnabled()
#elif AXIS_DRIVER_TYPE(Y2, TMC2660)
#elif ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(Y2)
#define Y2_ENABLE_INIT NOOP
#define Y2_ENABLE_WRITE(STATE) stepperY2.toff((STATE)==Y_ENABLE_ON ? stepperY2.savedToff() : 0)
#define Y2_ENABLE_WRITE(STATE) stepperY2.toff((STATE)==Y_ENABLE_ON ? chopper_timing.toff : 0)
#define Y2_ENABLE_READ stepperY2.isEnabled()
#else
#define Y2_ENABLE_INIT SET_OUTPUT(Y2_ENABLE_PIN)
@@ -279,9 +287,9 @@ void reset_stepper_drivers(); // Called by settings.load / settings.reset
#define Z2_ENABLE_INIT NOOP
#define Z2_ENABLE_WRITE(STATE) stepperZ2.setEnabled(STATE)
#define Z2_ENABLE_READ stepperZ2.isEnabled()
#elif AXIS_DRIVER_TYPE(Z2, TMC2660)
#elif ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(Z2)
#define Z2_ENABLE_INIT NOOP
#define Z2_ENABLE_WRITE(STATE) stepperZ2.toff((STATE)==Z_ENABLE_ON ? stepperZ2.savedToff() : 0)
#define Z2_ENABLE_WRITE(STATE) stepperZ2.toff((STATE)==Z_ENABLE_ON ? chopper_timing.toff : 0)
#define Z2_ENABLE_READ stepperZ2.isEnabled()
#else
#define Z2_ENABLE_INIT SET_OUTPUT(Z2_ENABLE_PIN)
@@ -316,9 +324,9 @@ void reset_stepper_drivers(); // Called by settings.load / settings.reset
#define Z3_ENABLE_INIT NOOP
#define Z3_ENABLE_WRITE(STATE) stepperZ3.setEnabled(STATE)
#define Z3_ENABLE_READ stepperZ3.isEnabled()
#elif AXIS_DRIVER_TYPE(Z3, TMC2660)
#elif ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(Z3)
#define Z3_ENABLE_INIT NOOP
#define Z3_ENABLE_WRITE(STATE) stepperZ3.toff((STATE)==Z_ENABLE_ON ? stepperZ3.savedToff() : 0)
#define Z3_ENABLE_WRITE(STATE) stepperZ3.toff((STATE)==Z_ENABLE_ON ? chopper_timing.toff : 0)
#define Z3_ENABLE_READ stepperZ3.isEnabled()
#else
#define Z3_ENABLE_INIT SET_OUTPUT(Z3_ENABLE_PIN)
@@ -352,9 +360,9 @@ void reset_stepper_drivers(); // Called by settings.load / settings.reset
#define E0_ENABLE_INIT NOOP
#define E0_ENABLE_WRITE(STATE) stepperE0.setEnabled(STATE)
#define E0_ENABLE_READ stepperE0.isEnabled()
#elif AXIS_DRIVER_TYPE(E0, TMC2660)
#elif ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(E0)
#define E0_ENABLE_INIT NOOP
#define E0_ENABLE_WRITE(STATE) stepperE0.toff((STATE)==E_ENABLE_ON ? stepperE0.savedToff() : 0)
#define E0_ENABLE_WRITE(STATE) stepperE0.toff((STATE)==E_ENABLE_ON ? chopper_timing.toff : 0)
#define E0_ENABLE_READ stepperE0.isEnabled()
#else
#define E0_ENABLE_INIT SET_OUTPUT(E0_ENABLE_PIN)
@@ -387,9 +395,9 @@ void reset_stepper_drivers(); // Called by settings.load / settings.reset
#define E1_ENABLE_INIT NOOP
#define E1_ENABLE_WRITE(STATE) stepperE1.setEnabled(STATE)
#define E1_ENABLE_READ stepperE1.isEnabled()
#elif AXIS_DRIVER_TYPE(E1, TMC2660)
#elif ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(E1)
#define E1_ENABLE_INIT NOOP
#define E1_ENABLE_WRITE(STATE) stepperE1.toff((STATE)==E_ENABLE_ON ? stepperE1.savedToff() : 0)
#define E1_ENABLE_WRITE(STATE) stepperE1.toff((STATE)==E_ENABLE_ON ? chopper_timing.toff : 0)
#define E1_ENABLE_READ stepperE1.isEnabled()
#else
#define E1_ENABLE_INIT SET_OUTPUT(E1_ENABLE_PIN)
@@ -422,9 +430,9 @@ void reset_stepper_drivers(); // Called by settings.load / settings.reset
#define E2_ENABLE_INIT NOOP
#define E2_ENABLE_WRITE(STATE) stepperE2.setEnabled(STATE)
#define E2_ENABLE_READ stepperE2.isEnabled()
#elif AXIS_DRIVER_TYPE(E2, TMC2660)
#elif ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(E2)
#define E2_ENABLE_INIT NOOP
#define E2_ENABLE_WRITE(STATE) stepperE2.toff((STATE)==E_ENABLE_ON ? stepperE2.savedToff() : 0)
#define E2_ENABLE_WRITE(STATE) stepperE2.toff((STATE)==E_ENABLE_ON ? chopper_timing.toff : 0)
#define E2_ENABLE_READ stepperE2.isEnabled()
#else
#define E2_ENABLE_INIT SET_OUTPUT(E2_ENABLE_PIN)
@@ -457,9 +465,9 @@ void reset_stepper_drivers(); // Called by settings.load / settings.reset
#define E3_ENABLE_INIT NOOP
#define E3_ENABLE_WRITE(STATE) stepperE3.setEnabled(STATE)
#define E3_ENABLE_READ stepperE3.isEnabled()
#elif AXIS_DRIVER_TYPE(E3, TMC2660)
#elif ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(E3)
#define E3_ENABLE_INIT NOOP
#define E3_ENABLE_WRITE(STATE) stepperE3.toff((STATE)==E_ENABLE_ON ? stepperE3.savedToff() : 0)
#define E3_ENABLE_WRITE(STATE) stepperE3.toff((STATE)==E_ENABLE_ON ? chopper_timing.toff : 0)
#define E3_ENABLE_READ stepperE3.isEnabled()
#else
#define E3_ENABLE_INIT SET_OUTPUT(E3_ENABLE_PIN)
@@ -492,9 +500,9 @@ void reset_stepper_drivers(); // Called by settings.load / settings.reset
#define E4_ENABLE_INIT NOOP
#define E4_ENABLE_WRITE(STATE) stepperE4.setEnabled(STATE)
#define E4_ENABLE_READ stepperE4.isEnabled()
#elif AXIS_DRIVER_TYPE(E4, TMC2660)
#elif ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(E4)
#define E4_ENABLE_INIT NOOP
#define E4_ENABLE_WRITE(STATE) stepperE4.toff((STATE)==E_ENABLE_ON ? stepperE4.savedToff() : 0)
#define E4_ENABLE_WRITE(STATE) stepperE4.toff((STATE)==E_ENABLE_ON ? chopper_timing.toff : 0)
#define E4_ENABLE_READ stepperE4.isEnabled()
#else
#define E4_ENABLE_INIT SET_OUTPUT(E4_ENABLE_PIN)
@@ -527,9 +535,9 @@ void reset_stepper_drivers(); // Called by settings.load / settings.reset
#define E5_ENABLE_INIT NOOP
#define E5_ENABLE_WRITE(STATE) stepperE5.setEnabled(STATE)
#define E5_ENABLE_READ stepperE5.isEnabled()
#elif AXIS_DRIVER_TYPE(E5, TMC2660)
#elif ENABLED(SOFTWARE_DRIVER_ENABLE) && AXIS_IS_TMC(E5)
#define E5_ENABLE_INIT NOOP
#define E5_ENABLE_WRITE(STATE) stepperE5.toff((STATE)==E_ENABLE_ON ? stepperE5.savedToff() : 0)
#define E5_ENABLE_WRITE(STATE) stepperE5.toff((STATE)==E_ENABLE_ON ? chopper_timing.toff : 0)
#define E5_ENABLE_READ stepperE5.isEnabled()
#else
#define E5_ENABLE_INIT SET_OUTPUT(E5_ENABLE_PIN)