Add TMC driver HW serial defines (#17909)
This commit is contained in:
		| @@ -131,6 +131,7 @@ | ||||
|  | ||||
| #define AXIS_HAS_RXTX AXIS_HAS_UART | ||||
|  | ||||
| #define AXIS_HAS_HW_SERIAL(A) ( AXIS_HAS_UART(A) &&  defined(A##_HARDWARE_SERIAL) ) | ||||
| #define AXIS_HAS_SW_SERIAL(A) ( AXIS_HAS_UART(A) && !defined(A##_HARDWARE_SERIAL) ) | ||||
|  | ||||
| #define AXIS_HAS_STALLGUARD(A)   (    AXIS_DRIVER_TYPE(A,TMC2130) || AXIS_DRIVER_TYPE(A,TMC2160) \ | ||||
|   | ||||
| @@ -1549,6 +1549,9 @@ | ||||
|   #define HAS_E_STEPPER_ENABLE 1 | ||||
| #endif | ||||
|  | ||||
| #if ANY_AXIS_HAS(HW_SERIAL) | ||||
|   #define HAS_TMC_HW_SERIAL 1 | ||||
| #endif | ||||
| #if ANY_AXIS_HAS(SW_SERIAL) | ||||
|   #define HAS_TMC_SW_SERIAL 1 | ||||
| #endif | ||||
|   | ||||
| @@ -318,15 +318,19 @@ enum StealthIndex : uint8_t { STEALTH_AXIS_XY, STEALTH_AXIS_Z, STEALTH_AXIS_E }; | ||||
|   enum TMCAxis : uint8_t { X, Y, Z, X2, Y2, Z2, Z3, Z4, E0, E1, E2, E3, E4, E5, E6, E7, TOTAL }; | ||||
|  | ||||
|   void tmc_serial_begin() { | ||||
|     struct { | ||||
|       const void *ptr[TMCAxis::TOTAL]; | ||||
|       bool began(const TMCAxis a, const void * const p) { | ||||
|         LOOP_L_N(i, a) if (p == ptr[i]) return true; | ||||
|         ptr[a] = p; return false; | ||||
|       }; | ||||
|     } sp_helper; | ||||
|     #define HW_SERIAL_BEGIN(A) do{ if (!sp_helper.began(TMCAxis::A, &A##_HARDWARE_SERIAL)) \ | ||||
|                                          A##_HARDWARE_SERIAL.begin(TMC_BAUD_RATE); }while(0) | ||||
|     #if HAS_TMC_HW_SERIAL | ||||
|       struct { | ||||
|         const void *ptr[TMCAxis::TOTAL]; | ||||
|         bool began(const TMCAxis a, const void * const p) { | ||||
|           LOOP_L_N(i, a) if (p == ptr[i]) return true; | ||||
|           ptr[a] = p; return false; | ||||
|         }; | ||||
|       } sp_helper; | ||||
|  | ||||
|       #define HW_SERIAL_BEGIN(A) do{ if (!sp_helper.began(TMCAxis::A, &A##_HARDWARE_SERIAL)) \ | ||||
|                                           A##_HARDWARE_SERIAL.begin(TMC_BAUD_RATE); }while(0) | ||||
|     #endif | ||||
|  | ||||
|     #if AXIS_HAS_UART(X) | ||||
|       #ifdef X_HARDWARE_SERIAL | ||||
|         HW_SERIAL_BEGIN(X); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user