From dd27c3530432ea0b09f01e604bf577f31d8ef841 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Thu, 1 Jun 2023 15:41:47 +1000 Subject: convert lvgl from submodule to a plain old directory --- lib/lvgl | 1 - lib/lvgl/docs/porting/timer-handler.md | 38 ++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) delete mode 160000 lib/lvgl create mode 100644 lib/lvgl/docs/porting/timer-handler.md (limited to 'lib/lvgl/docs/porting/timer-handler.md') diff --git a/lib/lvgl b/lib/lvgl deleted file mode 160000 index 0732400e..00000000 --- a/lib/lvgl +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 0732400e7b564dd0e7dc4a924619d8e19c5b23a0 diff --git a/lib/lvgl/docs/porting/timer-handler.md b/lib/lvgl/docs/porting/timer-handler.md new file mode 100644 index 00000000..2f086b59 --- /dev/null +++ b/lib/lvgl/docs/porting/timer-handler.md @@ -0,0 +1,38 @@ +# Timer Handler + +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 + +The timing is not critical but it should be about 5 milliseconds to keep the system responsive. + +Example: +```c +while(1) { + lv_timer_handler(); + my_delay_ms(5); +} +``` + +If you want to use `lv_timer_handler()` in a super-loop, a helper function`lv_timer_handler_run_in_period()` is provided to simplify the porting: + +```c +while(1) { + ... + lv_timer_handler_run_in_period(5); /* run lv_timer_handler() every 5ms */ + ... +} +``` + + In an OS environment, you can use it together with the **delay** or **sleep** provided by OS to release CPU whenever possible: + +```c +while (1) { + lv_timer_handler_run_in_period(5); /* run lv_timer_handler() every 5ms */ + my_delay_ms(5); /* delay 5ms to avoid unnecessary polling */ +} +``` + +To learn more about timers visit the [Timer](/overview/timer) section. + -- cgit v1.2.3