Basic example showing how to use the sleep/deepsleep modes on the DISCO_L476VG board.
Dependencies: BSP_DISCO_L476VG LCD_DISCO_L476VG mbed
main.cpp
00001 #include "mbed.h" 00002 #include "LCD_DISCO_L476VG.h" 00003 00004 LCD_DISCO_L476VG lcd; 00005 00006 DigitalOut led_green(LED1); 00007 DigitalOut led_red(LED2); 00008 00009 InterruptIn joy_down(JOYSTICK_DOWN); 00010 InterruptIn joy_up(JOYSTICK_UP); 00011 InterruptIn joy_center(JOYSTICK_CENTER); 00012 00013 #define MODE_WAKEUP 0 // IDD=19mA 00014 #define MODE_SLEEP 1 // IDD=10mA 00015 #define MODE_DEEP_SLEEP 2 // IDD= 1mA 00016 00017 static int deepsleep_mode = MODE_WAKEUP; 00018 00019 // Used to enter in wake up mode 00020 void wakeup_tasks() 00021 { 00022 led_green = 1; 00023 led_red = 1; 00024 lcd.Clear(); 00025 printf("WAKEUP\n"); 00026 lcd.DisplayString((uint8_t *)"WAKEUP"); 00027 deepsleep_mode = MODE_WAKEUP; 00028 } 00029 00030 // Used to enter in deepsleep mode 00031 void joy_down_pressed() 00032 { 00033 deepsleep_mode = MODE_DEEP_SLEEP; 00034 } 00035 00036 // Used to enter in sleep mode 00037 void joy_up_pressed() 00038 { 00039 deepsleep_mode = MODE_SLEEP; 00040 } 00041 00042 int main() 00043 { 00044 led_green = 1; 00045 led_red = 1; 00046 lcd.Clear(); 00047 printf("HELLO\n"); 00048 lcd.DisplayString((uint8_t *)"HELLO"); 00049 00050 // Configure the buttons 00051 joy_down.rise(&joy_down_pressed); 00052 joy_down.mode(PullDown); 00053 joy_up.rise(&joy_up_pressed); 00054 joy_up.mode(PullDown); 00055 joy_center.rise(&wakeup_tasks); 00056 joy_center.mode(PullDown); 00057 00058 while(1) { 00059 00060 if (deepsleep_mode == MODE_SLEEP) { 00061 lcd.Clear(); 00062 printf("SLEEP\n"); 00063 lcd.DisplayString((uint8_t *)"SLEEP"); 00064 led_red = 0; 00065 wait(1); 00066 sleep(); 00067 wakeup_tasks(); 00068 } 00069 if (deepsleep_mode == MODE_DEEP_SLEEP) { 00070 lcd.Clear(); 00071 printf("DEEP_SLEEP\n"); 00072 lcd.DisplayString((uint8_t *)"DEEP"); 00073 led_green = 0; 00074 wait(.1); 00075 deepsleep(); 00076 wakeup_tasks(); 00077 } 00078 } 00079 }
Generated on Mon Jul 18 2022 12:46:50 by 1.7.2