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.
main.cpp
- Committer:
- WilliamMarshQMUL
- Date:
- 2020-01-30
- Revision:
- 5:86742cfaf4e4
- Parent:
- 4:728667196916
- Child:
- 6:f475e8557afb
File content as of revision 5:86742cfaf4e4:
#include "mbed.h"
// Labs 2: Example program for using an interrupt (or callback)
// -----------------------------------------------------------
// A callback function (corresponding to an ISR) is called when a button
// is pressed
// The callback uses a shared variable to signal another thread
InterruptIn button(PTD0); // Pin must be on ports A or D
DigitalOut led(LED_GREEN);
volatile int pressEvent = 0 ;
// This function is invoked when then interrupt occurs
// Signal that the button has been pressed
// Note: bounce may occur
void buttonCallback(){
pressEvent = 1 ;
}
/* ---- 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
}
ThisThread::sleep_for(100) ; // delay for 100ms
}
}