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);
|
lv_area_copy(&disp->inv_areas[disp->inv_p], &scr_area);
|
||||||
}
|
}
|
||||||
disp->inv_p++;
|
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();
|
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;
|
disp_refr = task->user_data;
|
||||||
|
|
||||||
lv_refr_join_area();
|
lv_refr_join_area();
|
||||||
|
@ -20,6 +20,8 @@ extern "C" {
|
|||||||
* DEFINES
|
* DEFINES
|
||||||
*********************/
|
*********************/
|
||||||
|
|
||||||
|
#define LV_REFR_TASK_PRIO LV_TASK_PRIO_MID
|
||||||
|
|
||||||
/**********************
|
/**********************
|
||||||
* TYPEDEFS
|
* 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*/
|
disp_def = disp_def_tmp; /*Revert the default display*/
|
||||||
|
|
||||||
/*Create a refresh task*/
|
/*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);
|
LV_ASSERT_MEM(disp->refr_task);
|
||||||
if(disp->refr_task == NULL) return NULL;
|
if(disp->refr_task == NULL) return NULL;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user