Yes, lv_timer_handler()
is definitely being called. But thanks to your information, I discovered that my LVGL initialization only called lv_init()
but did not set a tick source.
I now also call lv_tick_set_cb([]() -> uint32_t { return (uint32_t) millis(); })
during initialization.
As a result, my image/JPEG is now drawn correctly even without calling lv_refr_now(NULL)
.
In the vendor demo, I couldn't find where the tick is set, but I suspect it's done via lv_conf.h
.
I also had another issue: I had initialized the display with the wrong frequency (18MHz), which I had taken from another GitHub (espidf) example.
But in the official vendor demo, I saw that 14MHz is used instead.
Now, with the correct frequency, my display and slideshow run smoothly and without flickering. Great. Thanks!