Hey, so in the timer handler documentation the following is mentioned:
To handle the tasks of LVGL you need to call
lv_timer_handler()
periodically in one of the following:
- while(1) of main() function
- timer interrupt periodically (lower priority than
lv_tick_inc()
)- an OS task periodically
I was wondering what exactly the
lower priority than
lv_tick_inc()
part means. Could somebody explain this?
I’m using an ESP32, and at the moment I handle my ticks like this:
const esp_timer_create_args_t lvgl_tick_timer_args = {
.callback = [](void *arg)
{lv_tick_inc(LVGL_TICK_PERIOD_MS); },
.name = "lvgl_tick"};
esp_timer_handle_t lvgl_tick_timer = nullptr;
ESP_ERROR_CHECK(esp_timer_create(&lvgl_tick_timer_args, &lvgl_tick_timer));
ESP_ERROR_CHECK(esp_timer_start_periodic(lvgl_tick_timer, LVGL_TICK_PERIOD_MS * 1000));
Is there anything wrong with placing the call to lv_timer_handler()
in there as well? Like this:
const esp_timer_create_args_t lvgl_tick_timer_args = {
.callback = [](void *arg)
{lv_tick_inc(LVGL_TICK_PERIOD_MS);
lv_timer_handler(); },
.name = "lvgl_tick"};
esp_timer_handle_t lvgl_tick_timer = nullptr;
ESP_ERROR_CHECK(esp_timer_create(&lvgl_tick_timer_args, &lvgl_tick_timer));
ESP_ERROR_CHECK(esp_timer_start_periodic(lvgl_tick_timer, LVGL_TICK_PERIOD_MS * 1000));