summaryrefslogtreecommitdiff
path: root/app/src/display/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/display/main.c')
-rw-r--r--app/src/display/main.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/app/src/display/main.c b/app/src/display/main.c
index 001061f..d64fb2a 100644
--- a/app/src/display/main.c
+++ b/app/src/display/main.c
@@ -24,6 +24,17 @@ static lv_obj_t *screen;
__attribute__((weak)) lv_obj_t *zmk_display_status_screen() { return NULL; }
+void display_tick_cb(struct k_work *work) {
+ lv_tick_inc(10);
+ lv_task_handler();
+}
+
+K_WORK_DEFINE(display_tick_work, display_tick_cb);
+
+void display_timer_cb() { k_work_submit(&display_tick_work); }
+
+K_TIMER_DEFINE(display_timer, display_timer_cb, NULL);
+
int zmk_display_init() {
LOG_DBG("");
@@ -45,12 +56,8 @@ int zmk_display_init() {
lv_task_handler();
display_blanking_off(display);
+ k_timer_start(&display_timer, K_MSEC(10), K_MSEC(10));
+
LOG_DBG("");
return 0;
-}
-
-void zmk_display_task_handler() {
- lv_tick_inc(10);
- lv_task_handler();
- k_sleep(K_MSEC(10));
-}
+} \ No newline at end of file