From 1561e61df78a47fbe7a1b1b095a890c0ddeba77e Mon Sep 17 00:00:00 2001
From: Scott Lahteine <github@thinkyhead.com>
Date: Tue, 14 Aug 2018 18:41:37 -0500
Subject: [PATCH] New TMC2208 constructor
Co-Authored-By: teemuatlut <teemu.mantykallio@live.fi>
---
Marlin/src/module/stepper_indirection.cpp | 69 ++++++++++++++++++-----
1 file changed, 56 insertions(+), 13 deletions(-)
diff --git a/Marlin/src/module/stepper_indirection.cpp b/Marlin/src/module/stepper_indirection.cpp
index 8858d22fdb..e0aeae0168 100644
--- a/Marlin/src/module/stepper_indirection.cpp
+++ b/Marlin/src/module/stepper_indirection.cpp
@@ -292,8 +292,7 @@
#endif
#define _TMC2208_DEFINE_HARDWARE(ST) TMC2208Stepper stepper##ST(&ST##_HARDWARE_SERIAL)
- #define _TMC2208_DEFINE_SOFTWARE(ST) SoftwareSerial ST##_HARDWARE_SERIAL = SoftwareSerial(ST##_SERIAL_RX_PIN, ST##_SERIAL_TX_PIN); \
- TMC2208Stepper stepper##ST(&ST##_HARDWARE_SERIAL, ST##_SERIAL_RX_PIN > -1)
+ #define _TMC2208_DEFINE_SOFTWARE(ST) TMC2208Stepper stepper##ST(ST##_SERIAL_RX_PIN, ST##_SERIAL_TX_PIN, ST##_SERIAL_RX_PIN > -1)
// Stepper objects of TMC2208 steppers used
#if AXIS_DRIVER_TYPE(X, TMC2208)
@@ -376,37 +375,81 @@
void tmc2208_serial_begin() {
#if AXIS_DRIVER_TYPE(X, TMC2208)
- X_HARDWARE_SERIAL.begin(115200);
+ #ifdef X_HARDWARE_SERIAL
+ X_HARDWARE_SERIAL.begin(115200);
+ #else
+ stepperX.beginSerial(115200);
+ #endif
#endif
#if AXIS_DRIVER_TYPE(X2, TMC2208)
- X2_HARDWARE_SERIAL.begin(115200);
+ #ifdef X2_HARDWARE_SERIAL
+ X2_HARDWARE_SERIAL.begin(115200);
+ #else
+ stepperX2.beginSerial(115200);
+ #endif
#endif
#if AXIS_DRIVER_TYPE(Y, TMC2208)
- Y_HARDWARE_SERIAL.begin(115200);
+ #ifdef Y_HARDWARE_SERIAL
+ Y_HARDWARE_SERIAL.begin(115200);
+ #else
+ stepperY.beginSerial(115200);
+ #endif
#endif
#if AXIS_DRIVER_TYPE(Y2, TMC2208)
- Y2_HARDWARE_SERIAL.begin(115200);
+ #ifdef Y2_HARDWARE_SERIAL
+ Y2_HARDWARE_SERIAL.begin(115200);
+ #else
+ stepperY2.beginSerial(115200);
+ #endif
#endif
#if AXIS_DRIVER_TYPE(Z, TMC2208)
- Z_HARDWARE_SERIAL.begin(115200);
+ #ifdef Z_HARDWARE_SERIAL
+ Z_HARDWARE_SERIAL.begin(115200);
+ #else
+ stepperZ.beginSerial(115200);
+ #endif
#endif
#if AXIS_DRIVER_TYPE(Z2, TMC2208)
- Z2_HARDWARE_SERIAL.begin(115200);
+ #ifdef Z2_HARDWARE_SERIAL
+ Z2_HARDWARE_SERIAL.begin(115200);
+ #else
+ stepperZ2.beginSerial(115200);
+ #endif
#endif
#if AXIS_DRIVER_TYPE(E0, TMC2208)
- E0_HARDWARE_SERIAL.begin(115200);
+ #ifdef E0_HARDWARE_SERIAL
+ E0_HARDWARE_SERIAL.begin(115200);
+ #else
+ stepperE0.beginSerial(115200);
+ #endif
#endif
#if AXIS_DRIVER_TYPE(E1, TMC2208)
- E1_HARDWARE_SERIAL.begin(115200);
+ #ifdef E1_HARDWARE_SERIAL
+ E1_HARDWARE_SERIAL.begin(115200);
+ #else
+ stepperE1.beginSerial(115200);
+ #endif
#endif
#if AXIS_DRIVER_TYPE(E2, TMC2208)
- E2_HARDWARE_SERIAL.begin(115200);
+ #ifdef E2_HARDWARE_SERIAL
+ E2_HARDWARE_SERIAL.begin(115200);
+ #else
+ stepperE2.beginSerial(115200);
+ #endif
#endif
#if AXIS_DRIVER_TYPE(E3, TMC2208)
- E3_HARDWARE_SERIAL.begin(115200);
+ #ifdef E3_HARDWARE_SERIAL
+ E3_HARDWARE_SERIAL.begin(115200);
+ #else
+ stepperE3.beginSerial(115200);
+ #endif
#endif
#if AXIS_DRIVER_TYPE(E4, TMC2208)
- E4_HARDWARE_SERIAL.begin(115200);
+ #ifdef E4_HARDWARE_SERIAL
+ E4_HARDWARE_SERIAL.begin(115200);
+ #else
+ stepperE4.beginSerial(115200);
+ #endif
#endif
}
--
GitLab