Kevin Abraham
/
4180Lab2-14
ECE 4180 Lab 2 Part 14
Fork of song_demo_PWM by
main.cpp@2:c9e8133ff0b0, 2018-10-09 (annotated)
- Committer:
- abraha2d
- Date:
- Tue Oct 09 00:52:27 2018 +0000
- Revision:
- 2:c9e8133ff0b0
- Parent:
- 1:2e6ea42675c7
Save point
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
4180_1 | 0:b2fdf3770282 | 1 | #include "mbed.h" |
4180_1 | 1:2e6ea42675c7 | 2 | #include "SongPlayer.h" |
4180_1 | 0:b2fdf3770282 | 3 | |
4180_1 | 1:2e6ea42675c7 | 4 | // Song test program - plays a song using PWM and timer interrupts |
4180_1 | 0:b2fdf3770282 | 5 | // for documentation see http://mbed.org/users/4180_1/notebook/using-a-speaker-for-audio-output/ |
4180_1 | 1:2e6ea42675c7 | 6 | // can be used to play a song, if you have the notes and durations |
4180_1 | 0:b2fdf3770282 | 7 | // for musical note frequencies see http://en.wikipedia.org/wiki/Piano_key_frequencies |
4180_1 | 0:b2fdf3770282 | 8 | |
4180_1 | 1:2e6ea42675c7 | 9 | //Set up notes and durations for sample song to play |
4180_1 | 1:2e6ea42675c7 | 10 | // A 0.0 duration note at end terminates song play |
4180_1 | 1:2e6ea42675c7 | 11 | float note[18]= {1568.0,1396.9,1244.5,1244.5,1396.9,1568.0,1568.0,1568.0,1396.9, |
4180_1 | 1:2e6ea42675c7 | 12 | 1244.5,1396.9,1568.0,1396.9,1244.5,1174.7,1244.5,1244.5, 0.0 |
4180_1 | 1:2e6ea42675c7 | 13 | }; |
4180_1 | 1:2e6ea42675c7 | 14 | float duration[18]= {0.48,0.24,0.72,0.48,0.24,0.48,0.24,0.24,0.24, |
4180_1 | 1:2e6ea42675c7 | 15 | 0.24,0.24,0.24,0.24,0.48,0.24,0.48,0.48, 0.0 |
4180_1 | 1:2e6ea42675c7 | 16 | }; |
4180_1 | 1:2e6ea42675c7 | 17 | |
4180_1 | 1:2e6ea42675c7 | 18 | DigitalOut led1(LED1); |
4180_1 | 0:b2fdf3770282 | 19 | int main() |
4180_1 | 0:b2fdf3770282 | 20 | { |
4180_1 | 1:2e6ea42675c7 | 21 | // setup instance of new SongPlayer class, mySpeaker using pin 26 |
4180_1 | 0:b2fdf3770282 | 22 | // the pin must be a PWM output pin |
4180_1 | 1:2e6ea42675c7 | 23 | SongPlayer mySpeaker(p26); |
4180_1 | 1:2e6ea42675c7 | 24 | // Start song and return once playing starts |
4180_1 | 1:2e6ea42675c7 | 25 | mySpeaker.PlaySong(note,duration); |
4180_1 | 1:2e6ea42675c7 | 26 | // loops forever while song continues to play to end using interrupts |
4180_1 | 0:b2fdf3770282 | 27 | while(1) { |
4180_1 | 1:2e6ea42675c7 | 28 | led1 = !led1; |
4180_1 | 1:2e6ea42675c7 | 29 | wait(.1); |
4180_1 | 0:b2fdf3770282 | 30 | } |
4180_1 | 0:b2fdf3770282 | 31 | } |
4180_1 | 1:2e6ea42675c7 | 32 |