1# Sleep management
2
3The MCU can go to sleep when no user input happens. In this case, the main `while(1)` should look like this:
4
5```c
6while(1) {
7  /*Normal operation (no sleep) in < 1 sec inactivity*/
8  if(lv_disp_get_inactive_time(NULL) < 1000) {
9	  lv_task_handler();
10  }
11  /*Sleep after 1 sec inactivity*/
12  else {
13	  timer_stop();   /*Stop the timer where lv_tick_inc() is called*/
14	  sleep();		    /*Sleep the MCU*/
15  }
16  my_delay_ms(5);
17}
18```
19
20You should also add the following lines to your input device read function to signal a wake-up (press, touch or click etc.) has happened:
21```c
22lv_tick_inc(LV_DISP_DEF_REFR_PERIOD);  /*Force task execution on wake-up*/
23timer_start();                         /*Restart the timer where lv_tick_inc() is called*/
24lv_task_handler();                     /*Call `lv_task_handler()` manually to process the wake-up event*/
25```
26
27In addition to `lv_disp_get_inactive_time()` you can check `lv_anim_count_running()` to see if all animations have finished.
28