Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of digitalInInterrupt_sample by
Diff: main.cpp
- Revision:
- 3:05b6a1431a6b
- Parent:
- 2:071f22412cdc
- Child:
- 4:f140d7032fea
diff -r 071f22412cdc -r 05b6a1431a6b main.cpp
--- a/main.cpp Tue Jan 24 18:31:35 2017 +0000
+++ b/main.cpp Tue Jan 16 18:14:21 2018 +0000
@@ -1,5 +1,4 @@
#include "mbed.h"
-#include "rtos.h"
// Labs 2: Example program for using an interrupt (or callback)
// -----------------------------------------------------------
@@ -8,32 +7,30 @@
// The callback uses a shared variable to signal another thread
InterruptIn button(PTD0);
-DigitalOut led(LED_RED);
+DigitalOut led(LED_GREEN);
-Thread flashT ;
volatile int pressEvent = 0 ;
-// Signal when the button is pressed
+// This function is invoked when then interrupt occurs
+// Signal that the button has been pressed
// Note: bounce may occur
void buttonCallback(){
pressEvent = 1 ;
}
-// Toggle the LED every time the button is pressed
-// Note: the LED could be toggled in the callback
-void flash() {
+/* ---- Main function (default thread) ----
+ Note that if this thread completes, nothing else works
+ */
+int main() {
+ button.mode(PullUp); // Ensure button i/p has pull up
+ button.fall(&buttonCallback) ; // Attach function to falling edge
+
while(true) {
+ // Toggle the LED every time the button is pressed
if (pressEvent) {
led = !led ;
pressEvent = 0 ; // Clear the event variable
}
Thread::wait(100) ;
}
-}
-
-int main() {
- button.mode(PullUp); // Ensure button i/p has pull up
- button.fall(&buttonCallback) ; // Attach function to falling edge
-
- flashT.start(&flash) ; // Start the flashing thread running
}
\ No newline at end of file
