perf(P4): Darstellung am Waveshare-Panel beschleunigen (1.6.4)
1280x720 sind 2,4-mal so viele Pixel wie beim 4,3-Zöller, und bis 1.6.3 wurde bei jeder Änderung das komplette Bild in 24 Bit neu gezeichnet. Drei Schalter in pins_config.h, einzeln zurückstellbar: - WS7_COLOR_BITS = 16: RGB565 statt RGB888, halbe Datenmenge je Bild. lv_conf.h liest den Wert aus pins_config.h, damit Sketch und LVGL-Bibliothek dieselbe Farbtiefe benutzen; display_hal.cpp sichert das per static_assert. - WS7_PARTIAL_REFRESH = 1: Avoid-Tear-Mode 3 (Direct-Mode, zwei Puffer) statt Vollbild-Neuzeichnen. - WS7_PARALLEL_RENDER = 1: LV_USE_OS = FREERTOS und zwei Zeichen-Threads. Framebuffer-Bedarf sinkt dadurch von rund 8,3 MB auf 3,7 MB PSRAM. Die JC-Panels sind von allen drei Schaltern nicht betroffen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018QoLDQeUh1dCQz7yYZVb4Y
This commit is contained in:
co-authored by
Claude Opus 5
parent
ee5888ed97
commit
a8ae034911
@@ -10,12 +10,14 @@
|
||||
#include "display_hal.h"
|
||||
#include "ui.h"
|
||||
#include "config.h"
|
||||
#include "pins_config.h"
|
||||
|
||||
// LVGL muss mit derselben Farbtiefe uebersetzt sein wie das Panel erwartet. Zieht der
|
||||
// Build versehentlich eine fremde lv_conf.h (z.B. eine alte Datei neben dem lvgl-Ordner),
|
||||
// faellt das hier auf - sonst erst am schwarzen oder farbverfaelschten Bild.
|
||||
#if JC_PANEL_TYPE == WS_PANEL_7H
|
||||
static_assert(LV_COLOR_DEPTH == 24, "Waveshare 7\" (H) braucht RGB888 - falsche lv_conf.h?");
|
||||
static_assert(LV_COLOR_DEPTH == WS7_COLOR_BITS,
|
||||
"Farbtiefe passt nicht zu WS7_COLOR_BITS - falsche lv_conf.h?");
|
||||
#else
|
||||
static_assert(LV_COLOR_DEPTH == 16, "JC-Panels brauchen RGB565 - falsche lv_conf.h?");
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user