From 7878f1bafd8f5277db82d4e074e48db0029711b8 Mon Sep 17 00:00:00 2001 From: raw-designs Date: Tue, 1 Sep 2026 13:24:18 +0200 Subject: [PATCH] feat(P4): Touch-Messausgabe zum Einmessen (1.6.6) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Der Menü-Knopf oben links reagiert am Waveshare-Panel nicht. Ob der Touch die 48x36 Pixel grosse Flaeche in der 44 Pixel hohen Kopfleiste ueberhaupt trifft, liess sich bisher nicht nachsehen. WS7_TOUCH_DEBUG in pins_config.h gibt jeden Berührpunkt roh und umgerechnet über esp_rom_printf aus, also auch bei Core-Debug-Level "none". Vorgabe 0. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_018QoLDQeUh1dCQz7yYZVb4Y --- P4_Display_Firmware/Changelog.txt | 6 ++++++ P4_Display_Firmware/board_bringup.c | 4 ++++ P4_Display_Firmware/config.h | 2 +- P4_Display_Firmware/pins_config.h | 4 ++++ 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/P4_Display_Firmware/Changelog.txt b/P4_Display_Firmware/Changelog.txt index 2c9f50b..874f95f 100644 --- a/P4_Display_Firmware/Changelog.txt +++ b/P4_Display_Firmware/Changelog.txt @@ -1,3 +1,9 @@ +Version 1.6.6: +- Neuer Schalter WS7_TOUCH_DEBUG in pins_config.h: Auf 1 gesetzt, gibt jeder Berührpunkt + seine Rohwerte und die daraus errechnete Bildposition auf der seriellen Konsole aus. + Gedacht zum Einmessen des Touch, wenn Bedienelemente nicht reagieren - insbesondere am + oberen Bildrand, wo die 44 Pixel hohe Kopfleiste sitzt. + Version 1.6.5: - Zwei der drei Tempo-Maßnahmen aus 1.6.4 haben sich am Gerät als untauglich erwiesen und stehen wieder auf ihrem alten Wert. Sie bleiben als Schalter erhalten, mit Notiz, woran diff --git a/P4_Display_Firmware/board_bringup.c b/P4_Display_Firmware/board_bringup.c index d4476f1..6f486ea 100644 --- a/P4_Display_Firmware/board_bringup.c +++ b/P4_Display_Firmware/board_bringup.c @@ -211,6 +211,10 @@ static void ws7_touch_map(esp_lcd_touch_handle_t tp, uint16_t *x, uint16_t *y, // Bild wird um 180 Grad gedreht ausgegeben -> Touch muss mitdrehen. px = (uint16_t)(LCD_H_RES - 1 - px); py = (uint16_t)(LCD_V_RES - 1 - py); +#endif +#if WS7_TOUCH_DEBUG + esp_rom_printf("[Touch] roh X=%u Y=%u -> Bild X=%u Y=%u\n", + (unsigned)x[i], (unsigned)y[i], (unsigned)px, (unsigned)py); #endif x[i] = px; y[i] = py; diff --git a/P4_Display_Firmware/config.h b/P4_Display_Firmware/config.h index e8d9ef6..5123c0f 100644 --- a/P4_Display_Firmware/config.h +++ b/P4_Display_Firmware/config.h @@ -126,7 +126,7 @@ // ------------------------------------------------------------------------------------- // Firmware // ------------------------------------------------------------------------------------- -#define DISPLAY_FW_VERSION "1.6.5" // Firmware-Stand der P4-Display-Steuerung (Info-Seite) +#define DISPLAY_FW_VERSION "1.6.6" // Firmware-Stand der P4-Display-Steuerung (Info-Seite) // ------------------------------------------------------------------------------------- // Protokoll diff --git a/P4_Display_Firmware/pins_config.h b/P4_Display_Firmware/pins_config.h index 9f3dcc8..c4b84e2 100644 --- a/P4_Display_Firmware/pins_config.h +++ b/P4_Display_Firmware/pins_config.h @@ -127,6 +127,10 @@ #define WS7_TOUCH_MIRROR_RAW_X 1 #define WS7_TOUCH_MIRROR_RAW_Y 0 +// Zum Einmessen des Touch: 1 gibt jeden Beruehrpunkt roh und umgerechnet auf der +// seriellen Konsole aus. Danach wieder auf 0, sonst laeuft das Log dauernd mit. +#define WS7_TOUCH_DEBUG 0 + #elif JC_PANEL_TYPE == JC_PANEL_70 #define LCD_H_RES 1024