Used Version: current version of lv_port_esp32 using the display drivers for ILI9341 and the monochrome driver for SSD1306 and SH1107.
I’m going to update a label regularly. When doing this, on the monochrome displays (using the drvier for SSD1306 and SH1107 I uploaded) I’ve a odd result. When using the ILI9341 everything is fine.
The label with an increasing numer is shown correctly, but in every second refresh content from the very first initialization is shown.
I expect to see “Hello!” in the first line, and an increasing number in the bottom line. Later is increased and refreshed every second.
The results are shown in a sequence of 4 screenshots:
In the bottom line you can see the overlaying “empty” from the Initialization.
The code I’m using follows is an modified version of the monochrome and is available here, with the changes made in main.c:
label2 = lv_label_create(scr, NULL);
/Modify the Label’s text/
lv_label_set_text(label1, “Hello!”);
lv_label_set_text(label2, “empty”);/* Align the Label to the center
* NULL means align on parent (which is the screen now)
* 0, 0 at the end means an x, y offset after alignment*/
lv_obj_align(label1, NULL, LV_ALIGN_IN_TOP_MID, 0, 0);
lv_obj_align(label2, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, 0);
display_done = true;
lv_task_create((lv_task_cb_t)display_update_func, 1000, LV_TASK_PRIO_LOW, NULL);
and
void display_update_func(void* p)
{
static int64_t ticker = 0;
lv_label_set_text_fmt(label2, “%ld”, ticker);
ticker++;
}
It looks like the buf1 and buf2 copying is not done correctly.
Do I use the functions corretly or do I have to take care on the buffer management or other preparation tasks?
Regards
Andreas