Craig Evans
/
ELEC2645_Ticker_WAV
Plays WAV file
Diff: main.cpp
- Revision:
- 0:44597d36d45c
- Child:
- 1:39d8765b574d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Jan 05 17:16:36 2016 +0000 @@ -0,0 +1,52 @@ +/* + +2645_Ticker + +Sample code from ELEC2645 Week 15 Lab + +Demonstrates how to use a ticker to generate a periodic timer interrupt + +(c) Craig A. Evans, University of Leeds, Jan 2016 + +*/ + +#include "mbed.h" + +// Create objects for ticker and red LED +Ticker ticker; +DigitalOut red_led(LED_RED); + +// flag - must be volatile as changes within ISR +volatile int timer_flag = 0; + +// function prototypes +void timer_isr(); + +int main() +{ + // set-up the ticker so that the ISR it is called every 0.5 seconds + ticker.attach(&timer_isr,0.5); + // the on-board RGB LED is a common anode - writing a 1 to the pin will turn the LED OFF + red_led = 1; + + while (1) { + + // check if flag is set i.e. interrupt has occured + if (timer_flag) { + timer_flag = 0; // if it has, clear the flag + + // DO TASK HERE + + } + + // put the MCU to sleep until an interrupt wakes it up + sleep(); + + } +} + +// time-triggered interrupt +void timer_isr() +{ + timer_flag = 1; // set flag in ISR +}