Craig Evans / Mbed 2 deprecated ELEC2645_InterruptIn

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
eencae
Date:
Fri Jan 24 12:07:07 2020 +0000
Parent:
5:d5bdf787ae1a
Commit message:
Updated for Gamepad2;

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Wed Dec 20 09:54:28 2017 +0000
+++ b/main.cpp	Fri Jan 24 12:07:07 2020 +0000
@@ -7,43 +7,45 @@
 Demonstrates how to use InterruptIn to generate an event-triggered interrupt
 
 (c) Craig A. Evans, University of Leeds, Jan 2016
+Updated January 2020
 
 */ 
 
 #include "mbed.h"
 
-// Create objects for SW2 (right switch) and red LED
-InterruptIn sw2(SW2);
-DigitalOut red_led(LED_RED);
+// Create objects for button and LED
+InterruptIn buttonA(PTC7);
+DigitalOut led1(PTA2);
 
 // flag - must be volatile as changes within ISR
 // g_ prefix makes it easier to distinguish it as global
-volatile int g_sw2_flag = 0;
+volatile int g_buttonA_flag = 0;
 
 // function prototypes
-void sw2_isr();
+void buttonA_isr();
 
 int main()
 {
-    // SW2 has a pull-up resistor, so the pin will be at 3.3 V by default
-    // and fall to 0 V when pressed. We therefore need to look for a falling edge
-    // on the pin to fire the interrupt
-    sw2.fall(&sw2_isr);
-    // since SW2 has an external pull-up, we should disable to internal pull-down
-    // resistor that is enabled by default using InterruptIn
-    sw2.mode(PullNone);
-    // the on-board RGB LED is a common anode - writing a 1 to the pin will turn the LED OFF
-    red_led = 1;
+    buttonA.mode(PullUp); // turn on internal pull-up resistor
+    // pin will be 1 (3.3 V) when not pressed and 0 (0 V) when pressed
+    
+    // We therefore need to look for a falling edge on the pin to fire the interrupt
+    // when the button is pressed
+    buttonA.fall(&buttonA_isr);
+ 
+    // the LED is a common anode - writing a 1 to the pin will turn the LED OFF
+    led1 = 1;
 
     while (1) {
 
         // check if flag i.e. interrupt has occured
-        if (g_sw2_flag) {
-            g_sw2_flag = 0;  // if it has, clear the flag
+        if (g_buttonA_flag) {
+            g_buttonA_flag = 0;  // if it has, clear the flag
 
             // send message over serial port - can observe in CoolTerm etc.
             printf("Execute task \n");
-            // DO TASK HERE
+
+            led1 = !led1; // toggle LED
         }
 
         // put the MCU to sleep until an interrupt wakes it up
@@ -52,8 +54,8 @@
     }
 }
 
-// SW2 event-triggered interrupt
-void sw2_isr()
+// Button A event-triggered interrupt
+void buttonA_isr()
 {
-    g_sw2_flag = 1;   // set flag in ISR
+    g_buttonA_flag = 1;   // set flag in ISR
 }
--- a/mbed.bld	Wed Dec 20 09:54:28 2017 +0000
+++ b/mbed.bld	Fri Jan 24 12:07:07 2020 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/mbed_official/code/mbed/builds/e7ca05fa8600
\ No newline at end of file
+https://os.mbed.com/users/mbed_official/code/mbed/builds/3a7713b1edbc
\ No newline at end of file