Hi !
- here is things:
- user double full-sized buffer
- user soft rotate (90° or 270°)
- code:
/* disp register */
disp_drv.rounder_cb = disp_rounder;
disp_drv.render_start_cb = disp_render_start;
disp_drv.monitor_cb = disp_monitor;
disp_drv.full_refresh = 0;
disp_drv.direct_mode = 0;
void disp_render_start(struct _lv_disp_drv_t * disp_drv)
{
printf("start render %d.\n", get_cur_ms());
wait_te_sinal();
}
static void disp_flush(lv_disp_drv_t * disp_drv, const lv_area_t * area, lv_color_t * color_p)
{
...
printf("start flush %d %d.\n", get_cur_ms(), x * y);
/* use hard spi flush data */
...
}
void disp_monitor(struct _lv_disp_drv_t * disp_drv, uint32_t time, uint32_t px)
{
printf("time = %u, px = %u.\n", time, px);
}
-
print info:
start render 47632
start flush 47643 9400
start flush 47645 9400
start flush 47648 9400
start flush 47650 9400
start flush 47653 9400
start flush 47655 9400
start flush 47658 9400
start flush 47660 4700
time = 29, px = 70500 -
question:
- it costed 11 ms betwin start render and first flush
- flush costed 3ms, but total 8 times
- the period of TE signal is 28ms
so how to avoid tear effect when scroll screen?
Thanks.