fix(P4): Anlaufzeit des Displaymoduls abwarten (1.6.18)
Entscheidender Hinweis vom Gerät: "Sobald der serielle Monitor läuft, startet es fast immer einwandfrei." Dessen USB-Anmeldung verzögert den Start - und ersetzte damit unbeabsichtigt eine Wartezeit, die der Werks-Testsketch explizit hat: delay(2000) am Anfang von setup(). Unsere Firmware sprach Bridge und Panel sofort nach dem Einschalten an. Das Displaymodul ist dann noch nicht bereit: Die Bridge nimmt ihre Register nicht an oder das Panel zeigt trotz korrekt gesendeter DSI-Daten nichts - beides ohne Fehlermeldung, weil aus Sicht des P4 jeder Schritt geklappt hat. Daher das sprunghafte Verhalten und der Fehlstart beim ersten Anstecken. jc_board_bringup() wartet für WS_PANEL_7H jetzt WS7_PANEL_WARMUP_MS (Vorgabe 2000 ms), bevor es beginnt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01P7JsiDJ1QbNFLDz5chf8Jt
This commit is contained in:
co-authored by
Claude Opus 5
parent
750a6fb78c
commit
ee74c700bf
@@ -388,6 +388,20 @@ static void jc_touch_scale(esp_lcd_touch_handle_t tp, uint16_t *x, uint16_t *y,
|
||||
// benutzen, sonst folgt ein zweiter Absturz, der die eigentliche Ursache ueberdeckt.
|
||||
bool jc_board_bringup(void)
|
||||
{
|
||||
#if JC_PANEL_TYPE == WS_PANEL_7H
|
||||
// Anlaufzeit abwarten, BEVOR Bridge und Panel angesprochen werden.
|
||||
//
|
||||
// Das Displaymodul braucht nach dem Anlegen der Versorgung einen Moment, bis Bridge
|
||||
// und Panel bereit sind. Faengt der P4 sofort an, laeuft der Hochlauf ins Leere: Die
|
||||
// Bridge nimmt ihre Register nicht an oder das Panel zeigt trotz korrekt gesendeter
|
||||
// DSI-Daten nichts - beides ohne Fehlermeldung, weil aus Sicht des P4 alles geklappt
|
||||
// hat. Das Ergebnis war ein Display, das mal ansprang und mal nicht.
|
||||
//
|
||||
// Der Werks-Testsketch wartet aus demselben Grund 2 Sekunden am Anfang von setup().
|
||||
// Dass es mit geoeffnetem seriellen Monitor fast immer klappte, hatte dieselbe
|
||||
// Ursache: Dessen USB-Anmeldung verzoegert den Start und ersetzte damit die Wartezeit.
|
||||
vTaskDelay(pdMS_TO_TICKS(WS7_PANEL_WARMUP_MS));
|
||||
#endif
|
||||
jc_backlight_init();
|
||||
|
||||
#if JC_PANEL_TYPE == WS_PANEL_7H
|
||||
|
||||
Reference in New Issue
Block a user