Support for TFT & Touch Screens (#18130)
This commit is contained in:
committed by
GitHub
parent
bba157e5bd
commit
117df87d19
@ -255,7 +255,7 @@
|
||||
#define IS_ULTIPANEL
|
||||
#endif
|
||||
|
||||
// LVGL UI, SPI or FSMC
|
||||
// FSMC/SPI TFT Panels (LVGL)
|
||||
#if EITHER(TFT_LVGL_UI_SPI, TFT_LVGL_UI_FSMC)
|
||||
#define HAS_TFT_LVGL_UI 1
|
||||
#endif
|
||||
@ -273,6 +273,27 @@
|
||||
#define DELAYED_BACKLIGHT_INIT
|
||||
#endif
|
||||
|
||||
// FSMC/SPI TFT Panels (HAL STM32)
|
||||
#if EITHER(TFT_320x240, TFT_480x320)
|
||||
#define HAS_FSMC_TFT 1
|
||||
#elif EITHER(TFT_320x240_SPI, TFT_480x320_SPI)
|
||||
#define HAS_SPI_TFT 1
|
||||
#endif
|
||||
|
||||
#if HAS_FSMC_TFT || HAS_SPI_TFT
|
||||
#define HAS_GRAPHICAL_TFT 1
|
||||
#define IS_ULTIPANEL
|
||||
#endif
|
||||
|
||||
// Fewer lines with touch buttons on-screen
|
||||
#if EITHER(TFT_320x240, TFT_320x240_SPI)
|
||||
#define HAS_UI_320x240 1
|
||||
#define LCD_HEIGHT TERN(TOUCH_SCREEN, 6, 7)
|
||||
#elif EITHER(TFT_480x320, TFT_480x320_SPI)
|
||||
#define HAS_UI_480x320 1
|
||||
#define LCD_HEIGHT TERN(TOUCH_SCREEN, 6, 7)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* I2C Panels
|
||||
*/
|
||||
@ -329,7 +350,7 @@
|
||||
#endif
|
||||
|
||||
#ifndef STD_ENCODER_PULSES_PER_STEP
|
||||
#if ENABLED(TOUCH_BUTTONS)
|
||||
#if ENABLED(TOUCH_SCREEN)
|
||||
#define STD_ENCODER_PULSES_PER_STEP 2
|
||||
#else
|
||||
#define STD_ENCODER_PULSES_PER_STEP 5
|
||||
@ -398,13 +419,14 @@
|
||||
// Aliases for LCD features
|
||||
#if EITHER(ULTRA_LCD, EXTENSIBLE_UI)
|
||||
#define HAS_DISPLAY 1
|
||||
#if ENABLED(ULTRA_LCD)
|
||||
#define HAS_SPI_LCD 1
|
||||
#if ENABLED(DOGLCD)
|
||||
#define HAS_GRAPHICAL_LCD 1
|
||||
#else
|
||||
#define HAS_CHARACTER_LCD 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if ENABLED(ULTRA_LCD)
|
||||
#define HAS_SPI_LCD 1
|
||||
#if ENABLED(DOGLCD)
|
||||
#define HAS_GRAPHICAL_LCD 1
|
||||
#elif DISABLED(HAS_GRAPHICAL_TFT)
|
||||
#define HAS_CHARACTER_LCD 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
@ -251,6 +251,17 @@
|
||||
#define EARLY_WATCHDOG 1
|
||||
#endif
|
||||
|
||||
// Full Touch Screen needs 'tft/xpt2046'
|
||||
#if ENABLED(TOUCH_SCREEN)
|
||||
#define HAS_TFT_XPT2046 1
|
||||
#endif
|
||||
|
||||
// Touch Screen or "Touch Buttons" need XPT2046 pins
|
||||
// but they use different components
|
||||
#if EITHER(HAS_TFT_XPT2046, HAS_TOUCH_XPT2046)
|
||||
#define NEED_TOUCH_PINS 1
|
||||
#endif
|
||||
|
||||
// Extensible UI pin mapping for RepRapDiscount
|
||||
#if ENABLED(TOUCH_UI_FTDI_EVE) && ANY(AO_EXP1_PINMAP, AO_EXP2_PINMAP, CR10_TFT_PINMAP)
|
||||
#define TOUCH_UI_ULTIPANEL 1
|
||||
|
@ -373,7 +373,7 @@
|
||||
|
||||
#endif
|
||||
|
||||
#if ANY(LCD_USE_DMA_FSMC, FSMC_GRAPHICAL_TFT, SPI_GRAPHICAL_TFT) || !PIN_EXISTS(SD_DETECT)
|
||||
#if ANY(HAS_GRAPHICAL_TFT, LCD_USE_DMA_FSMC, FSMC_GRAPHICAL_TFT, SPI_GRAPHICAL_TFT) || !PIN_EXISTS(SD_DETECT)
|
||||
#define NO_LCD_REINIT 1 // Suppress LCD re-initialization
|
||||
#endif
|
||||
|
||||
|
@ -513,6 +513,8 @@
|
||||
#error "[XYZ]_HOME_BUMP_MM is now HOMING_BUMP_MM. Please update Configuration_adv.h."
|
||||
#elif defined(DIGIPOT_I2C)
|
||||
#error "DIGIPOT_I2C is now DIGIPOT_MCP4451 (or DIGIPOT_MCP4018). Please update Configuration_adv.h."
|
||||
#elif defined(TOUCH_BUTTONS)
|
||||
#error "TOUCH_BUTTONS is now TOUCH_SCREEN. Please update your Configuration.h."
|
||||
#endif
|
||||
|
||||
#ifdef FIL_RUNOUT_INVERTING
|
||||
@ -687,8 +689,8 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
#elif PROGRESS_MSG_EXPIRE < 0
|
||||
#error "PROGRESS_MSG_EXPIRE must be greater than or equal to 0."
|
||||
#endif
|
||||
#elif ENABLED(LCD_SET_PROGRESS_MANUALLY) && NONE(HAS_GRAPHICAL_LCD, EXTENSIBLE_UI)
|
||||
#error "LCD_SET_PROGRESS_MANUALLY requires LCD_PROGRESS_BAR, Graphical LCD, or EXTENSIBLE_UI."
|
||||
#elif ENABLED(LCD_SET_PROGRESS_MANUALLY) && NONE(HAS_GRAPHICAL_LCD, HAS_GRAPHICAL_TFT, EXTENSIBLE_UI)
|
||||
#error "LCD_SET_PROGRESS_MANUALLY requires LCD_PROGRESS_BAR, Graphical LCD, TFT, or EXTENSIBLE_UI."
|
||||
#endif
|
||||
|
||||
#if !HAS_LCD_MENU && ENABLED(SD_REPRINT_LAST_SELECTED_FILE)
|
||||
@ -2224,6 +2226,8 @@ static_assert(hbm[Z_AXIS] >= 0, "HOMING_BUMP_MM.Z must be greater than or equal
|
||||
+ ENABLED(DGUS_LCD_UI_HIPRECY) \
|
||||
+ ENABLED(MALYAN_LCD) \
|
||||
+ ENABLED(TOUCH_UI_FTDI_EVE) \
|
||||
+ ENABLED(TFT_320x240) \
|
||||
+ ENABLED(TFT_320x240_SPI) \
|
||||
+ ENABLED(FSMC_GRAPHICAL_TFT) \
|
||||
+ ENABLED(TFT_LVGL_UI_FSMC) \
|
||||
+ ENABLED(TFT_LVGL_UI_SPI)
|
||||
@ -3043,18 +3047,18 @@ static_assert( _ARR_TEST(3,0) && _ARR_TEST(3,1) && _ARR_TEST(3,2)
|
||||
/**
|
||||
* Touch Buttons
|
||||
*/
|
||||
#if ENABLED(TOUCH_BUTTONS)
|
||||
#if ENABLED(TOUCH_SCREEN)
|
||||
#ifndef XPT2046_X_CALIBRATION
|
||||
#error "XPT2046_X_CALIBRATION must be defined with TOUCH_BUTTONS."
|
||||
#error "XPT2046_X_CALIBRATION must be defined with TOUCH_SCREEN."
|
||||
#endif
|
||||
#ifndef XPT2046_Y_CALIBRATION
|
||||
#error "XPT2046_Y_CALIBRATION must be defined with TOUCH_BUTTONS."
|
||||
#error "XPT2046_Y_CALIBRATION must be defined with TOUCH_SCREEN."
|
||||
#endif
|
||||
#ifndef XPT2046_X_OFFSET
|
||||
#error "XPT2046_X_OFFSET must be defined with TOUCH_BUTTONS."
|
||||
#error "XPT2046_X_OFFSET must be defined with TOUCH_SCREEN."
|
||||
#endif
|
||||
#ifndef XPT2046_Y_OFFSET
|
||||
#error "XPT2046_Y_OFFSET must be defined with TOUCH_BUTTONS."
|
||||
#error "XPT2046_Y_OFFSET must be defined with TOUCH_SCREEN."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
Reference in New Issue
Block a user