perf/direkt-in-bildspeicher-zeichnen
Die Messung aus 1.8.8 hat es gezeigt: Jeder Bildaufbau kostete 240-300 ms, dauerhaft, auch im Leerlauf. Die fünf Sekunden für den Aufweckdialog waren rund zwanzig solcher Durchgänge - meine bisherigen Erklärungen (Fades, Scrims) waren Symptome, nicht die Ursache. Grund: zwei Durchgänge durch je 2,7 MB PSRAM pro Bild. LVGL rendert in einen eigenen Draw-Buffer, esp_lcd_panel_draw_bitmap kopiert ihn danach komplett in den Framebuffer. WS7_DIRECT_FB holt den Framebuffer über esp_lcd_dpi_panel_get_frame_buffer und übergibt ihn als LVGL-Draw-Buffer. Der IDF-Treiber erkennt das (draw_buffer im Framebuffer-Bereich) und macht nur noch Cache-Writeback statt Kopie; dazu LV_DISPLAY_RENDER_MODE_DIRECT, sodass nur geänderte Bereiche neu gezeichnet werden. Außerdem: - Shot-Timer und Waage behalten während eines Bezugs die normale Schrift; der Wechsel auf den fetten 96er ist entfernt. - Größe der Standby-Uhr einstellbar (120/180/240 px, Info-Seite, NVS ui/uhrgr). Wirkt sofort - sie hängt an einem einzigen Label. - Die Knöpfe des Aufweckdialogs skalieren mit der Schriftgröße. Beide Panel-Varianten mit arduino-cli gegengebaut. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Description
Dual-PID / Siebträgermaschinen-Steuerung, entworfen für die QuickMill Silvano
654 MiB
Languages
C
85.6%
C++
14.2%
Python
0.1%