Plays WAV file

Dependencies:   mbed Gamepad2

Committer:
eencae
Date:
Wed Dec 20 09:56:26 2017 +0000
Revision:
2:7d65a185f9a4
Parent:
1:39d8765b574d
Child:
3:8daf84a849e5
Updated mbed library and added printf debug

Who changed what in which revision?

UserRevisionLine numberNew contents of line
eencae 0:44597d36d45c 1 /*
eencae 0:44597d36d45c 2
eencae 0:44597d36d45c 3 2645_Ticker
eencae 0:44597d36d45c 4
eencae 2:7d65a185f9a4 5 Sample code from ELEC2645
eencae 0:44597d36d45c 6
eencae 0:44597d36d45c 7 Demonstrates how to use a ticker to generate a periodic timer interrupt
eencae 0:44597d36d45c 8
eencae 0:44597d36d45c 9 (c) Craig A. Evans, University of Leeds, Jan 2016
eencae 0:44597d36d45c 10
eencae 0:44597d36d45c 11 */
eencae 0:44597d36d45c 12
eencae 0:44597d36d45c 13 #include "mbed.h"
eencae 0:44597d36d45c 14
eencae 0:44597d36d45c 15 // Create objects for ticker and red LED
eencae 0:44597d36d45c 16 Ticker ticker;
eencae 0:44597d36d45c 17 DigitalOut red_led(LED_RED);
eencae 0:44597d36d45c 18
eencae 0:44597d36d45c 19 // flag - must be volatile as changes within ISR
eencae 1:39d8765b574d 20 // g_ prefix makes it easier to distinguish it as global
eencae 1:39d8765b574d 21 volatile int g_timer_flag = 0;
eencae 0:44597d36d45c 22
eencae 0:44597d36d45c 23 // function prototypes
eencae 0:44597d36d45c 24 void timer_isr();
eencae 0:44597d36d45c 25
eencae 0:44597d36d45c 26 int main()
eencae 0:44597d36d45c 27 {
eencae 0:44597d36d45c 28 // set-up the ticker so that the ISR it is called every 0.5 seconds
eencae 0:44597d36d45c 29 ticker.attach(&timer_isr,0.5);
eencae 0:44597d36d45c 30 // the on-board RGB LED is a common anode - writing a 1 to the pin will turn the LED OFF
eencae 0:44597d36d45c 31 red_led = 1;
eencae 0:44597d36d45c 32
eencae 0:44597d36d45c 33 while (1) {
eencae 0:44597d36d45c 34
eencae 0:44597d36d45c 35 // check if flag is set i.e. interrupt has occured
eencae 1:39d8765b574d 36 if (g_timer_flag) {
eencae 1:39d8765b574d 37 g_timer_flag = 0; // if it has, clear the flag
eencae 0:44597d36d45c 38
eencae 2:7d65a185f9a4 39 // send message over serial port - can observe in CoolTerm etc.
eencae 2:7d65a185f9a4 40 printf("Tick \n");
eencae 0:44597d36d45c 41 // DO TASK HERE
eencae 0:44597d36d45c 42
eencae 0:44597d36d45c 43 }
eencae 0:44597d36d45c 44
eencae 0:44597d36d45c 45 // put the MCU to sleep until an interrupt wakes it up
eencae 0:44597d36d45c 46 sleep();
eencae 0:44597d36d45c 47
eencae 0:44597d36d45c 48 }
eencae 0:44597d36d45c 49 }
eencae 0:44597d36d45c 50
eencae 0:44597d36d45c 51 // time-triggered interrupt
eencae 0:44597d36d45c 52 void timer_isr()
eencae 0:44597d36d45c 53 {
eencae 1:39d8765b574d 54 g_timer_flag = 1; // set flag in ISR
eencae 0:44597d36d45c 55 }