🔧 AVR/DUE Serial Port pin conflict checks (#24148)

Co-authored-by: Scott Lahteine <github@thinkyhead.com>
This commit is contained in:
ellensp 2022-05-13 16:07:27 +12:00 committed by Scott Lahteine
parent a7d40ec654
commit 7d37ae2b2b
5 changed files with 71 additions and 5 deletions

View File

@ -25,6 +25,30 @@
* Test AVR-specific configuration values for errors at compile-time. * Test AVR-specific configuration values for errors at compile-time.
*/ */
/**
* Check for common serial pin conflicts
*/
#define CHECK_SERIAL_PIN(N) ( \
X_STOP_PIN == N || Y_STOP_PIN == N || Z_STOP_PIN == N \
|| X_MIN_PIN == N || Y_MIN_PIN == N || Z_MIN_PIN == N \
|| X_MAX_PIN == N || Y_MAX_PIN == N || Z_MAX_PIN == N \
|| X_STEP_PIN == N || Y_STEP_PIN == N || Z_STEP_PIN == N \
|| X_DIR_PIN == N || Y_DIR_PIN == N || Z_DIR_PIN == N \
|| X_ENA_PIN == N || Y_ENA_PIN == N || Z_ENA_PIN == N \
)
#if CONF_SERIAL_IS(0) // D0-D1. No known conflicts.
#endif
#if CONF_SERIAL_IS(1) && (CHECK_SERIAL_PIN(18) || CHECK_SERIAL_PIN(19))
#error "Serial Port 1 pin D18 and/or D19 conflicts with another pin on the board."
#endif
#if CONF_SERIAL_IS(2) && (CHECK_SERIAL_PIN(16) || CHECK_SERIAL_PIN(17))
#error "Serial Port 2 pin D16 and/or D17 conflicts with another pin on the board."
#endif
#if CONF_SERIAL_IS(3) && (CHECK_SERIAL_PIN(14) || CHECK_SERIAL_PIN(15))
#error "Serial Port 3 pin D14 and/or D15 conflicts with another pin on the board."
#endif
#undef CHECK_SERIAL_PIN
/** /**
* Checks for FAST PWM * Checks for FAST PWM
*/ */

View File

@ -25,6 +25,30 @@
* Test Arduino Due specific configuration values for errors at compile-time. * Test Arduino Due specific configuration values for errors at compile-time.
*/ */
/**
* Check for common serial pin conflicts
*/
#define CHECK_SERIAL_PIN(N) ( \
X_STOP_PIN == N || Y_STOP_PIN == N || Z_STOP_PIN == N \
|| X_MIN_PIN == N || Y_MIN_PIN == N || Z_MIN_PIN == N \
|| X_MAX_PIN == N || Y_MAX_PIN == N || Z_MAX_PIN == N \
|| X_STEP_PIN == N || Y_STEP_PIN == N || Z_STEP_PIN == N \
|| X_DIR_PIN == N || Y_DIR_PIN == N || Z_DIR_PIN == N \
|| X_ENA_PIN == N || Y_ENA_PIN == N || Z_ENA_PIN == N \
)
#if CONF_SERIAL_IS(0) // D0-D1. No known conflicts.
#endif
#if CONF_SERIAL_IS(1) && (CHECK_SERIAL_PIN(18) || CHECK_SERIAL_PIN(19))
#error "Serial Port 1 pin D18 and/or D19 conflicts with another pin on the board."
#endif
#if CONF_SERIAL_IS(2) && (CHECK_SERIAL_PIN(16) || CHECK_SERIAL_PIN(17))
#error "Serial Port 2 pin D16 and/or D17 conflicts with another pin on the board."
#endif
#if CONF_SERIAL_IS(3) && (CHECK_SERIAL_PIN(14) || CHECK_SERIAL_PIN(15))
#error "Serial Port 3 pin D14 and/or D15 conflicts with another pin on the board."
#endif
#undef CHECK_SERIAL_PIN
/** /**
* HARDWARE VS. SOFTWARE SPI COMPATIBILITY * HARDWARE VS. SOFTWARE SPI COMPATIBILITY
* *

View File

@ -27,9 +27,9 @@
#define BOARD_INFO_NAME "GT2560 V3.0 (MC2)" #define BOARD_INFO_NAME "GT2560 V3.0 (MC2)"
#define X_MIN_PIN 22 #define X_MIN_PIN 22
#define X_MAX_PIN 24 #define X_MAX_PIN 24
#define Y_MIN_PIN 26 #define Y_MIN_PIN 26
#define Y_MAX_PIN 28 #define Y_MAX_PIN 28
#include "pins_GT2560_V3.h" #include "pins_GT2560_V3.h"

View File

@ -1319,6 +1319,9 @@
#undef X_MAX_PIN #undef X_MAX_PIN
#define X_MAX_PIN -1 #define X_MAX_PIN -1
#endif #endif
#if NONE(USE_XMIN_PLUG, USE_XMAX_PLUG)
#undef X_STOP_PIN
#endif
#if DISABLED(USE_YMIN_PLUG) #if DISABLED(USE_YMIN_PLUG)
#undef Y_MIN_PIN #undef Y_MIN_PIN
#define Y_MIN_PIN -1 #define Y_MIN_PIN -1
@ -1327,6 +1330,9 @@
#undef Y_MAX_PIN #undef Y_MAX_PIN
#define Y_MAX_PIN -1 #define Y_MAX_PIN -1
#endif #endif
#if NONE(USE_YMIN_PLUG, USE_YMAX_PLUG)
#undef Y_STOP_PIN
#endif
#if DISABLED(USE_ZMIN_PLUG) #if DISABLED(USE_ZMIN_PLUG)
#undef Z_MIN_PIN #undef Z_MIN_PIN
#define Z_MIN_PIN -1 #define Z_MIN_PIN -1
@ -1335,6 +1341,9 @@
#undef Z_MAX_PIN #undef Z_MAX_PIN
#define Z_MAX_PIN -1 #define Z_MAX_PIN -1
#endif #endif
#if NONE(USE_ZMIN_PLUG, USE_ZMAX_PLUG)
#undef Z_STOP_PIN
#endif
#if DISABLED(USE_IMIN_PLUG) #if DISABLED(USE_IMIN_PLUG)
#undef I_MIN_PIN #undef I_MIN_PIN
#define I_MIN_PIN -1 #define I_MIN_PIN -1
@ -1343,6 +1352,9 @@
#undef I_MAX_PIN #undef I_MAX_PIN
#define I_MAX_PIN -1 #define I_MAX_PIN -1
#endif #endif
#if NONE(USE_IMIN_PLUG, USE_IMAX_PLUG)
#undef I_STOP_PIN
#endif
#if DISABLED(USE_JMIN_PLUG) #if DISABLED(USE_JMIN_PLUG)
#undef J_MIN_PIN #undef J_MIN_PIN
#define J_MIN_PIN -1 #define J_MIN_PIN -1
@ -1351,6 +1363,9 @@
#undef J_MAX_PIN #undef J_MAX_PIN
#define J_MAX_PIN -1 #define J_MAX_PIN -1
#endif #endif
#if NONE(USE_JMIN_PLUG, USE_JMAX_PLUG)
#undef J_STOP_PIN
#endif
#if DISABLED(USE_KMIN_PLUG) #if DISABLED(USE_KMIN_PLUG)
#undef K_MIN_PIN #undef K_MIN_PIN
#define K_MIN_PIN -1 #define K_MIN_PIN -1
@ -1359,6 +1374,9 @@
#undef K_MAX_PIN #undef K_MAX_PIN
#define K_MAX_PIN -1 #define K_MAX_PIN -1
#endif #endif
#if NONE(USE_KMIN_PLUG, USE_KMAX_PLUG)
#undef K_STOP_PIN
#endif
#if DISABLED(X_DUAL_ENDSTOPS) || X_HOME_TO_MAX #if DISABLED(X_DUAL_ENDSTOPS) || X_HOME_TO_MAX
#undef X2_MIN_PIN #undef X2_MIN_PIN

View File

@ -10,7 +10,7 @@ set -e
# Build with the default configurations # Build with the default configurations
# #
restore_configs restore_configs
opt_set MOTHERBOARD BOARD_FYSETC_F6_13 opt_set MOTHERBOARD BOARD_FYSETC_F6_13 LCD_SERIAL_PORT 1
opt_enable DGUS_LCD_UI_FYSETC opt_enable DGUS_LCD_UI_FYSETC
exec_test $1 $2 "FYSETC F6 1.3 with DGUS" "$3" exec_test $1 $2 "FYSETC F6 1.3 with DGUS" "$3"