mirror of
https://github.com/lvgl/lvgl.git
synced 2025-01-28 07:03:00 +08:00
Suspend the refresh task if a refresh is not necessary
This commit is contained in:
parent
d20c4bb26a
commit
4cb5ab4a03
@ -131,6 +131,8 @@ void lv_inv_area(lv_disp_t * disp, const lv_area_t * area_p)
|
||||
lv_area_copy(&disp->inv_areas[disp->inv_p], &scr_area);
|
||||
}
|
||||
disp->inv_p++;
|
||||
lv_task_set_prio(disp->refr_task, LV_REFR_TASK_PRIO);
|
||||
dprintf("refr task enabled\n");
|
||||
}
|
||||
}
|
||||
|
||||
@ -164,6 +166,12 @@ void lv_disp_refr_task(lv_task_t * task)
|
||||
|
||||
uint32_t start = lv_tick_get();
|
||||
|
||||
/* Ensure the task does not run again automatically.
|
||||
* This is done before refreshing in case refreshing invalidates something else.
|
||||
*/
|
||||
lv_task_set_prio(task, LV_TASK_PRIO_OFF);
|
||||
dprintf("refr task disabled\n");
|
||||
|
||||
disp_refr = task->user_data;
|
||||
|
||||
lv_refr_join_area();
|
||||
|
@ -20,6 +20,8 @@ extern "C" {
|
||||
* DEFINES
|
||||
*********************/
|
||||
|
||||
#define LV_REFR_TASK_PRIO LV_TASK_PRIO_MID
|
||||
|
||||
/**********************
|
||||
* TYPEDEFS
|
||||
**********************/
|
||||
|
@ -147,7 +147,7 @@ lv_disp_t * lv_disp_drv_register(lv_disp_drv_t * driver)
|
||||
disp_def = disp_def_tmp; /*Revert the default display*/
|
||||
|
||||
/*Create a refresh task*/
|
||||
disp->refr_task = lv_task_create(lv_disp_refr_task, LV_DISP_DEF_REFR_PERIOD, LV_TASK_PRIO_MID, disp);
|
||||
disp->refr_task = lv_task_create(lv_disp_refr_task, LV_DISP_DEF_REFR_PERIOD, LV_REFR_TASK_PRIO, disp);
|
||||
LV_ASSERT_MEM(disp->refr_task);
|
||||
if(disp->refr_task == NULL) return NULL;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user