「App:Library:LVGL:docs:Porting:Sleep management」の版間の差分

提供: robot-jp wiki
ナビゲーションに移動検索に移動
33行目: 33行目:
  
 
= Sleep management =
 
= Sleep management =
The MCU can go to sleep when no user input happens. In this case, the main <code>while(1)</code> should look like this:
+
The MCU can go to sleep when no user input happens. In this case, the main <code>while(1)</code>
 
 
 
 
  
 +
should look like this:
 +
while(1) {
 +
  /*Normal operation (no sleep) in < 1 sec inactivity*/
 +
  if(lv_disp_get_inactive_time(NULL) < 1000) {
 +
  lv_task_handler();
 +
  }
 +
  /*Sleep after 1 sec inactivity*/
 +
  else {
 +
  timer_stop();  /*Stop the timer where lv_tick_inc() is called*/
 +
  sleep();     /*Sleep the MCU*/
 +
  }
 +
  my_delay_ms(5);
 +
 +
You should also add the following lines to your input device read function to signal a wake-up (press, touch or click etc.) has happened:
 +
lv_tick_inc(LV_DISP_DEF_REFR_PERIOD);  /*Force task execution on wake-up*/
 +
timer_start();                        /*Restart the timer where lv_tick_inc() is called*/
 +
lv_task_handler();                    /*Call `lv_task_handler()` manually to process the wake-up event*/ 
 +
In addition to <code>lv_disp_get_inactive_time()</code> you can check <code>lv_anim_count_running()</code> to see if all animations have finished.
 
----
 
----
 
[[App:Library:LVGL:docs:Porting|戻る : Previous]]
 
[[App:Library:LVGL:docs:Porting|戻る : Previous]]

2022年6月22日 (水) 14:29時点における版

https://docs.lvgl.io/8.2/porting/sleep.html

英文 自動翻訳


Sleep management

The MCU can go to sleep when no user input happens. In this case, the main while(1)

should look like this:

while(1) {
  /*Normal operation (no sleep) in < 1 sec inactivity*/
  if(lv_disp_get_inactive_time(NULL) < 1000) {
	  lv_task_handler();
  }
  /*Sleep after 1 sec inactivity*/
  else {
	  timer_stop();   /*Stop the timer where lv_tick_inc() is called*/
	  sleep();		    /*Sleep the MCU*/
  }
  my_delay_ms(5);
} 

You should also add the following lines to your input device read function to signal a wake-up (press, touch or click etc.) has happened:

lv_tick_inc(LV_DISP_DEF_REFR_PERIOD);  /*Force task execution on wake-up*/
timer_start();                         /*Restart the timer where lv_tick_inc() is called*/
lv_task_handler();                     /*Call `lv_task_handler()` manually to process the wake-up event*/ 

In addition to lv_disp_get_inactive_time() you can check lv_anim_count_running() to see if all animations have finished.


戻る : Previous