EET 3735 Rachid, Tyler, Ryan

Dependencies:   BSP_DISCO_L476VG LCD_DISCO_L476VG mbed

Fork of DISCO_L476VG_leds_buttons by ST

Revision:
0:267836e77e0c
Child:
2:1b6162cd96d4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Aug 28 12:28:03 2015 +0000
@@ -0,0 +1,119 @@
+#include "mbed.h"
+
+#define USE_PRINTF (1)
+
+// Joystick button
+InterruptIn center(JOYSTICK_CENTER);
+InterruptIn left(JOYSTICK_LEFT);
+InterruptIn right(JOYSTICK_RIGHT);
+InterruptIn up(JOYSTICK_UP);
+InterruptIn down(JOYSTICK_DOWN);
+
+// LEDs
+DigitalOut led_green(LED1);
+DigitalOut led_red(LED2);
+
+void center_released() {
+    led_green = 0;
+#if USE_PRINTF == 1
+    printf("center button released\n");
+#endif  
+}
+
+void center_pressed() {
+    led_green = 1;
+#if USE_PRINTF == 1  
+    printf("center button pressed\n");
+#endif  
+}
+
+void left_released() {
+    led_green = 0;
+#if USE_PRINTF == 1
+    printf("left button released\n");
+#endif  
+}
+
+void left_pressed() {
+    led_green = 1;
+#if USE_PRINTF == 1  
+    printf("left button pressed\n");
+#endif  
+}
+
+void right_released() {
+    led_green = 0;
+#if USE_PRINTF == 1
+    printf("right button released\n");
+#endif  
+}
+
+void right_pressed() {
+    led_green = 1;
+#if USE_PRINTF == 1  
+    printf("right button pressed\n");
+#endif  
+}
+
+void up_released() {
+    led_green = 0;
+#if USE_PRINTF == 1
+    printf("up button released\n");
+#endif  
+}
+
+void up_pressed() {
+    led_green = 1;
+#if USE_PRINTF == 1  
+    printf("up button pressed\n");
+#endif  
+}
+
+void down_released() {
+    led_green = 0;
+#if USE_PRINTF == 1
+    printf("down button released\n");
+#endif  
+}
+
+void down_pressed() {
+    led_green = 1;
+#if USE_PRINTF == 1  
+    printf("down button pressed\n");
+#endif  
+}
+
+int main() {
+
+#if USE_PRINTF == 1  
+    int i = 0;
+    printf("\nStart!\n");
+#endif
+  
+    // Both rise and fall edges generate an interrupt
+    center.fall(&center_released);
+    center.rise(&center_pressed);
+    left.fall(&left_released);
+    left.rise(&left_pressed);
+    right.fall(&right_released);
+    right.rise(&right_pressed);
+    up.fall(&up_released);
+    up.rise(&up_pressed);
+    down.fall(&down_released);
+    down.rise(&down_pressed);
+
+    // Add pull-down on these pins
+    // Warning: must be done AFTER edges setting
+    left.mode(PullDown);
+    right.mode(PullDown);
+    up.mode(PullDown);
+    down.mode(PullDown);
+    
+    while (1) {
+        led_red = !led_red;
+        wait(1.0);
+#if USE_PRINTF == 1      
+        printf("main %d\n", i++);
+#endif      
+    }
+}