diff --git a/Marlin/src/HAL/HAL_AVR/SanityCheck_AVR_8_bit.h b/Marlin/src/HAL/HAL_AVR/SanityCheck_AVR_8_bit.h index f2b8233efa..c237773337 100644 --- a/Marlin/src/HAL/HAL_AVR/SanityCheck_AVR_8_bit.h +++ b/Marlin/src/HAL/HAL_AVR/SanityCheck_AVR_8_bit.h @@ -96,4 +96,22 @@ #endif #endif // SPINDLE_LASER_ENABLE +/** + * TMC2208 software UART and ENDSTOP_INTERRUPTS both use pin change interrupts (PCI) + */ +#if ENABLED(HAVE_TMC2208) && ENABLED(ENDSTOP_INTERRUPTS_FEATURE) && !( \ + ENABLED( X_HARDWARE_SERIAL ) \ + || ENABLED( X2_HARDWARE_SERIAL ) \ + || ENABLED( Y_HARDWARE_SERIAL ) \ + || ENABLED( Y2_HARDWARE_SERIAL ) \ + || ENABLED( Z_HARDWARE_SERIAL ) \ + || ENABLED( Z2_HARDWARE_SERIAL ) \ + || ENABLED( E0_HARDWARE_SERIAL ) \ + || ENABLED( E1_HARDWARE_SERIAL ) \ + || ENABLED( E2_HARDWARE_SERIAL ) \ + || ENABLED( E3_HARDWARE_SERIAL ) \ + || ENABLED( E4_HARDWARE_SERIAL ) ) + #error "select hardware UART for TMC2208 to use both TMC2208 and ENDSTOP_INTERRUPTS_FEATURE." +#endif + #endif // _SANITYCHECK_AVR_8_BIT_H_