Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6c783c55de | ||
|
|
f38ea3045b | ||
|
|
0a6c6ed869 | ||
|
|
e8308a9182 | ||
|
|
edb1e333f0 | ||
|
|
528c8d5500 | ||
|
|
117715dc3b |
@@ -1,3 +1,24 @@
|
||||
Version 1.6.12:
|
||||
- Die Abschaltfolge für die Bridge aus 1.6.11 ist zurückgenommen. Sie hat den Fehler nicht
|
||||
behoben, sondern verschlimmert: Nach dem Nullsetzen von C0/C2/AC kam das Panel auch
|
||||
direkt nach dem Flashen nicht mehr hoch, die normale Einschaltfolge holt es aus diesem
|
||||
Zustand nicht zurück. Der Start entspricht damit wieder 1.6.10.
|
||||
- Stattdessen zwei Diagnosen, um die Ursache des schwarzen Bildes nach einem Reset
|
||||
einzugrenzen: Der Startgrund wird beim Hochlauf ausgegeben (1 = Kaltstart, alles andere
|
||||
Warmstart), und das Anfordern der Stromversorgung für die MIPI-Strecke wird jetzt auf
|
||||
Fehler geprüft - bislang lief dieser Schritt als einziger ungeprüft durch.
|
||||
|
||||
Version 1.6.10:
|
||||
- WS7_PARTIAL_REFRESH ist jetzt auch im Auslieferungsstand 1. Am Gerät geprüft: kein
|
||||
Flackern, und der Gewinn ist der größte der drei Tempo-Maßnahmen - vor allem während
|
||||
eines Bezugs, wo die Zeitanzeige zehnmal je Sekunde weiterläuft.
|
||||
- Der Hintergrund der Seiten ist deckend statt durchsichtig. Sichtbar ändert sich nichts,
|
||||
die Ebenen darunter haben dieselbe Farbe; LVGL muss sie beim Scrollen aber nicht mehr
|
||||
mitzeichnen und durchmischen.
|
||||
- Neuer Schalter WS7_PERF_MONITOR in pins_config.h: blendet unten rechts Bilder je Sekunde
|
||||
und Prozessorlast ein. Damit lässt sich beantworten, ob weitere Mühe beim Zeichnen
|
||||
überhaupt noch etwas bringt, statt ins Blaue zu optimieren.
|
||||
|
||||
Version 1.6.9:
|
||||
- Fehlerbehebung: Ein Tipp auf einen Knopf löste oft mehrfach aus. Der GT9271 lässt
|
||||
gelegentlich einen Messzyklus aus oder liefert ein unplausibles Paket; der
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
#include "esp_heap_caps.h"
|
||||
#include "esp_rom_sys.h"
|
||||
#include "esp_timer.h"
|
||||
#include "esp_system.h"
|
||||
#include "esp_ldo_regulator.h"
|
||||
#include "esp_lcd_panel_io.h"
|
||||
#include "esp_lcd_panel_ops.h"
|
||||
@@ -320,12 +321,17 @@ bool jc_board_bringup(void)
|
||||
ws7_bridge_pre_init();
|
||||
#endif
|
||||
|
||||
// Reset-Grund mitschreiben: 1 = Kaltstart (Strom weg), alles andere ist ein Warmstart.
|
||||
// Nur beim Warmstart behalten die Bausteine ihren alten Zustand - genau dann traten
|
||||
// die schwarzen Bilder auf.
|
||||
esp_rom_printf("[Panel] Startgrund: %d (1 = Kaltstart)\n", (int)esp_reset_reason());
|
||||
|
||||
static esp_ldo_channel_handle_t phy_pwr_chan = NULL;
|
||||
esp_ldo_channel_config_t ldo_cfg = {
|
||||
.chan_id = BSP_MIPI_DSI_PHY_PWR_LDO_CHAN,
|
||||
.voltage_mv = BSP_MIPI_DSI_PHY_PWR_LDO_VOLTAGE_MV,
|
||||
};
|
||||
esp_ldo_acquire_channel(&ldo_cfg, &phy_pwr_chan);
|
||||
BSP_STEP(esp_ldo_acquire_channel(&ldo_cfg, &phy_pwr_chan), "Stromversorgung MIPI-D-PHY");
|
||||
|
||||
esp_lcd_dsi_bus_handle_t mipi_dsi_bus;
|
||||
esp_lcd_panel_io_handle_t io = NULL;
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
// -------------------------------------------------------------------------------------
|
||||
// Firmware
|
||||
// -------------------------------------------------------------------------------------
|
||||
#define DISPLAY_FW_VERSION "1.6.9" // Firmware-Stand der P4-Display-Steuerung (Info-Seite)
|
||||
#define DISPLAY_FW_VERSION "1.6.10" // Firmware-Stand der P4-Display-Steuerung (Info-Seite)
|
||||
|
||||
// -------------------------------------------------------------------------------------
|
||||
// Protokoll
|
||||
|
||||
@@ -915,14 +915,19 @@
|
||||
#define LV_USE_SNAPSHOT 0
|
||||
|
||||
/*1: Enable system monitor component*/
|
||||
/* Nur fuer die Messeinblendung des Waveshare-Panels, siehe WS7_PERF_MONITOR. */
|
||||
#if (JC_PANEL_TYPE == WS_PANEL_7H) && WS7_PERF_MONITOR
|
||||
#define LV_USE_SYSMON 1
|
||||
#else
|
||||
#define LV_USE_SYSMON 0
|
||||
#endif
|
||||
#if LV_USE_SYSMON
|
||||
/*Get the idle percentage. E.g. uint32_t my_get_idle(void);*/
|
||||
#define LV_SYSMON_GET_IDLE lv_timer_get_idle
|
||||
|
||||
/*1: Show CPU usage and FPS count
|
||||
* Requires `LV_USE_SYSMON = 1`*/
|
||||
#define LV_USE_PERF_MONITOR 0
|
||||
#define LV_USE_PERF_MONITOR 1
|
||||
#if LV_USE_PERF_MONITOR
|
||||
#define LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_RIGHT
|
||||
|
||||
|
||||
@@ -20,14 +20,13 @@
|
||||
// an - mit 16 kommt kein brauchbares Bild. Einstellbar bleibt es
|
||||
// nur, weil andere Waveshare-Panels an derselben Firmware
|
||||
// haengen koennten.
|
||||
// WS7_PARTIAL_REFRESH 0 = Vollbild neu zeichnen. GEPRUEFT: Mit 1 (nur geaenderte
|
||||
// Bereiche, zwei wechselnde Bildpuffer) laesst sich der
|
||||
// Menue-Vorhang nicht mehr oeffnen. Er ist halbtransparent und
|
||||
// wird in den gerade aktiven Puffer eingemischt; die naechste
|
||||
// Zustandsmeldung der S3 zeichnet in den anderen, der ihn nie
|
||||
// bekommen hat. Am 4,3-Zoll-Panel hatte derselbe Modus
|
||||
// geflackert. Nutzbar erst, wenn der LVGL-Port die geaenderten
|
||||
// Bereiche zwischen beiden Puffern abgleicht.
|
||||
// WS7_PARTIAL_REFRESH 1 = nur geaenderte Bildbereiche neu zeichnen statt jedes Mal des
|
||||
// gesamten Bildes (LVGL-Direct-Mode, zwei wechselnde Puffer).
|
||||
// Groesster Tempogewinn, besonders waehrend eines Bezugs: Die
|
||||
// Zeitanzeige laeuft zehnmal je Sekunde weiter, und mit 0 wuerde
|
||||
// dafuer jedes Mal das ganze Bild neu gezeichnet. Am Geraet
|
||||
// geprueft, kein Flackern - am 4,3-Zoll-Panel hatte derselbe
|
||||
// Modus dagegen geflackert.
|
||||
// WS7_PARALLEL_RENDER 1 = LVGL zeichnet mit zwei Threads auf beiden Prozessorkernen.
|
||||
// Kostet zwei zusaetzliche Task-Stacks im knappen internen RAM;
|
||||
// startet der P4 nicht mehr, hier zuerst auf 0 stellen.
|
||||
@@ -127,6 +126,10 @@
|
||||
#define WS7_TOUCH_MIRROR_RAW_X 1
|
||||
#define WS7_TOUCH_MIRROR_RAW_Y 0
|
||||
|
||||
// Zeigt unten rechts Bilder je Sekunde und Prozessorlast ein. Nur zum Messen gedacht:
|
||||
// Der Wert sagt, ob sich weitere Muehe beim Zeichnen ueberhaupt lohnt.
|
||||
#define WS7_PERF_MONITOR 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
|
||||
@@ -145,7 +148,7 @@
|
||||
#define LCD_RST 27
|
||||
#define LCD_LED 23
|
||||
|
||||
#else
|
||||
#elsealle
|
||||
|
||||
#define LCD_H_RES 480
|
||||
#define LCD_V_RES 800
|
||||
|
||||
@@ -453,7 +453,11 @@ static lv_obj_t* make_page(lv_obj_t* parent) {
|
||||
lv_obj_t* p = lv_obj_create(parent);
|
||||
lv_obj_set_size(p, LV_PCT(100), LV_PCT(100));
|
||||
lv_obj_set_pos(p, 0, 0);
|
||||
lv_obj_set_style_bg_opa(p, LV_OPA_TRANSP, 0);
|
||||
// Deckend in der Hintergrundfarbe statt durchsichtig. Sieht identisch aus - die Ebenen
|
||||
// darunter haben dieselbe Farbe -, erspart LVGL beim Scrollen aber, sie mitzuzeichnen
|
||||
// und durchzumischen.
|
||||
lv_obj_set_style_bg_color(p, COL_BG, 0);
|
||||
lv_obj_set_style_bg_opa(p, LV_OPA_COVER, 0);
|
||||
lv_obj_set_style_border_width(p, 0, 0);
|
||||
lv_obj_set_style_pad_all(p, 8, 0);
|
||||
lv_obj_set_style_pad_row(p, 6, 0);
|
||||
|
||||
Reference in New Issue
Block a user