定时器处理程序¶
要处理 LVGL 的任务,您需要周期性地在以下之一中调用 lv_timer_handler():
main() 函数的 while(1) 循环
定时器中断(优先级低于
lv_tick_inc())操作系统任务中周期性调用
时间间隔并不严格,但应大约为 5 毫秒,以保持系统的响应性。
示例:
while(1) {
lv_timer_handler();
my_delay_ms(5);
}
如果您希望在超级循环中使用 lv_timer_handler(),可以使用辅助函数 lv_timer_handler_run_in_period() 来简化移植:
while(1) {
...
lv_timer_handler_run_in_period(5); /* 每 5 毫秒运行一次 lv_timer_handler() */
...
}
在操作系统环境中,可以将其与操作系统提供的 延迟 或 睡眠 一起使用,以尽可能释放 CPU:
while (1) {
lv_timer_handler_run_in_period(5); /* 每 5 毫秒运行一次 lv_timer_handler() */
my_delay_ms(5); /* 延迟 5 毫秒以避免不必要的轮询 */
}
要了解有关定时器的更多信息,请访问 定时器 部分。