Hi guys,
In my platform run lvgl printer demo, When the switch is switched, garbage can be seen at the edge during the animation。You can find the video in https://github.com/lvgl/lvgl/files/4961156/VID_20200723_001040.zip。
In addition to switch, other widgets can also see this garbage when performing animation effects, such as dorp list and button。These garbage will only appear in the horizontal direction. For example, when you click a button, the button will become bigger, you will only see garbage in the horizontal direction, but not in the vertical direction.
Below link uses the lvgl dial, you can clearly see garbage appearing in the horizontal direction during the movement of the pointer
https://github.com/lvgl/lvgl/files/4967208/VID_20200723_232520.zip
I am not sure if this is the lvgl problem or the LCD screen problem. Does anyone have a similar problem? If you can get your guidance, I would be very grateful.
My platform is rt1052 , I config the elcd control of rt1052 to 16bit RGB interface and hardware refresh rate is 60fps, The resolution is 800*480.
lvgl is configured as double buffer, refresh time LV_DISP_DEF_REFR_PERIOD = 25. Execute handle task every 10ms.
while(1){
s64_t start = k_uptime_get();
lv_task_handler();
start = k_uptime_get() - start;
if(start > 0)
printk("flush %lld\n", start);
lv_tick_inc(10);
k_sleep(K_MSEC(10));
}
Use the lvgl frame buffer directly as the buffer output of the lcd controller, and flush the cache before updating the lcd buffer each time
RGBLCDUpdate(void *buf, u32_t size){
DCACHE_CleanByRange((uint32_t) buf, size);
k_sem_take(&rgblcd_data.sem, K_FOREVER);
ELCDIF_SetNextBufferAddr(rgblcd_data.elcdinfo.base, buf);
return 0;
}
static void lvgl_flush_cb(struct _disp_drv_t *disp_drv,
const lv_area_t *area, lv_color_t *color_p)
{
RGBLCDUpdate((void *) color_p, fb_size);
lv_disp_flush_ready(disp_drv);
}