ST / Mbed 2 deprecated DISCO_L476VG_leds_buttons

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 
00003 #define USE_PRINTF (1)
00004 
00005 // Joystick button
00006 InterruptIn center(JOYSTICK_CENTER);
00007 InterruptIn left(JOYSTICK_LEFT);
00008 InterruptIn right(JOYSTICK_RIGHT);
00009 InterruptIn up(JOYSTICK_UP);
00010 InterruptIn down(JOYSTICK_DOWN);
00011 
00012 // LEDs
00013 DigitalOut led_green(LED1);
00014 DigitalOut led_red(LED2);
00015 
00016 void center_released() {
00017     led_green = 0;
00018 #if USE_PRINTF == 1
00019     printf("center button released\n");
00020 #endif  
00021 }
00022 
00023 void center_pressed() {
00024     led_green = 1;
00025 #if USE_PRINTF == 1  
00026     printf("center button pressed\n");
00027 #endif  
00028 }
00029 
00030 void left_released() {
00031     led_green = 0;
00032 #if USE_PRINTF == 1
00033     printf("left button released\n");
00034 #endif  
00035 }
00036 
00037 void left_pressed() {
00038     led_green = 1;
00039 #if USE_PRINTF == 1  
00040     printf("left button pressed\n");
00041 #endif  
00042 }
00043 
00044 void right_released() {
00045     led_green = 0;
00046 #if USE_PRINTF == 1
00047     printf("right button released\n");
00048 #endif  
00049 }
00050 
00051 void right_pressed() {
00052     led_green = 1;
00053 #if USE_PRINTF == 1  
00054     printf("right button pressed\n");
00055 #endif  
00056 }
00057 
00058 void up_released() {
00059     led_green = 0;
00060 #if USE_PRINTF == 1
00061     printf("up button released\n");
00062 #endif  
00063 }
00064 
00065 void up_pressed() {
00066     led_green = 1;
00067 #if USE_PRINTF == 1  
00068     printf("up button pressed\n");
00069 #endif  
00070 }
00071 
00072 void down_released() {
00073     led_green = 0;
00074 #if USE_PRINTF == 1
00075     printf("down button released\n");
00076 #endif  
00077 }
00078 
00079 void down_pressed() {
00080     led_green = 1;
00081 #if USE_PRINTF == 1  
00082     printf("down button pressed\n");
00083 #endif  
00084 }
00085 
00086 int main() {
00087 
00088 #if USE_PRINTF == 1  
00089     int i = 0;
00090     printf("\nStart!\n");
00091 #endif
00092   
00093     // Both rise and fall edges generate an interrupt
00094     center.fall(&center_released);
00095     center.rise(&center_pressed);
00096     left.fall(&left_released);
00097     left.rise(&left_pressed);
00098     right.fall(&right_released);
00099     right.rise(&right_pressed);
00100     up.fall(&up_released);
00101     up.rise(&up_pressed);
00102     down.fall(&down_released);
00103     down.rise(&down_pressed);
00104 
00105     // Add pull-down on these pins
00106     // Warning: must be done AFTER edges setting
00107     left.mode(PullDown);
00108     right.mode(PullDown);
00109     up.mode(PullDown);
00110     down.mode(PullDown);
00111     
00112     while (1) {
00113         led_red = !led_red;
00114         wait(1.0);
00115 #if USE_PRINTF == 1      
00116         printf("main %d\n", i++);
00117 #endif      
00118     }
00119 }