App:Library:LVGL:docs:Porting:Sleep management

提供: robot-jp wiki
2022年6月22日 (水) 14:31時点におけるTakashi (トーク | 投稿記録)による版 (→‎Sleep management)
ナビゲーションに移動検索に移動

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