Craig Evans
/
1620_App_Board_DAC_Melody
Using DAC to play a melody
Fork of 1620_App_Board_UART_getc by
main.cpp@1:9840610e5ff2, 2017-03-13 (annotated)
- Committer:
- eencae
- Date:
- Mon Mar 13 19:51:01 2017 +0000
- Revision:
- 1:9840610e5ff2
- Parent:
- 0:8ccb53688328
Initial commit.;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
eencae | 0:8ccb53688328 | 1 | /* ELEC1620 Application Board Example |
eencae | 0:8ccb53688328 | 2 | |
eencae | 1:9840610e5ff2 | 3 | Example of the Tone library to interface with the DAC |
eencae | 0:8ccb53688328 | 4 | |
eencae | 1:9840610e5ff2 | 5 | (c) Dr Craig A. Evans, University of Leeds, March 2017 |
eencae | 0:8ccb53688328 | 6 | |
eencae | 0:8ccb53688328 | 7 | */ |
eencae | 0:8ccb53688328 | 8 | |
eencae | 0:8ccb53688328 | 9 | #include "mbed.h" |
eencae | 1:9840610e5ff2 | 10 | #include "Tone.h" |
eencae | 1:9840610e5ff2 | 11 | |
eencae | 1:9840610e5ff2 | 12 | Tone dac(p18); |
eencae | 1:9840610e5ff2 | 13 | |
eencae | 1:9840610e5ff2 | 14 | // Super Mario Theme Tune |
eencae | 1:9840610e5ff2 | 15 | const int note_array[] = { |
eencae | 1:9840610e5ff2 | 16 | NOTE_E7, NOTE_E7, 0, NOTE_E7, |
eencae | 1:9840610e5ff2 | 17 | 0, NOTE_C7, NOTE_E7, 0, |
eencae | 1:9840610e5ff2 | 18 | NOTE_G7, 0, 0, 0, |
eencae | 1:9840610e5ff2 | 19 | NOTE_G6, 0, 0, 0, |
eencae | 1:9840610e5ff2 | 20 | |
eencae | 1:9840610e5ff2 | 21 | NOTE_C7, 0, 0, NOTE_G6, |
eencae | 1:9840610e5ff2 | 22 | 0, 0, NOTE_E6, 0, |
eencae | 1:9840610e5ff2 | 23 | 0, NOTE_A6, 0, NOTE_B6, |
eencae | 1:9840610e5ff2 | 24 | 0, NOTE_AS6, NOTE_A6, 0, |
eencae | 1:9840610e5ff2 | 25 | |
eencae | 1:9840610e5ff2 | 26 | NOTE_G6, NOTE_E7, NOTE_G7, |
eencae | 1:9840610e5ff2 | 27 | NOTE_A7, 0, NOTE_F7, NOTE_G7, |
eencae | 1:9840610e5ff2 | 28 | 0, NOTE_E7, 0,NOTE_C7, |
eencae | 1:9840610e5ff2 | 29 | NOTE_D7, NOTE_B6, 0, 0, |
eencae | 1:9840610e5ff2 | 30 | |
eencae | 1:9840610e5ff2 | 31 | NOTE_C7, 0, 0, NOTE_G6, |
eencae | 1:9840610e5ff2 | 32 | 0, 0, NOTE_E6, 0, |
eencae | 1:9840610e5ff2 | 33 | 0, NOTE_A6, 0, NOTE_B6, |
eencae | 1:9840610e5ff2 | 34 | 0, NOTE_AS6, NOTE_A6, 0, |
eencae | 0:8ccb53688328 | 35 | |
eencae | 1:9840610e5ff2 | 36 | NOTE_G6, NOTE_E7, NOTE_G7, |
eencae | 1:9840610e5ff2 | 37 | NOTE_A7, 0, NOTE_F7, NOTE_G7, |
eencae | 1:9840610e5ff2 | 38 | 0, NOTE_E7, 0,NOTE_C7, |
eencae | 1:9840610e5ff2 | 39 | NOTE_D7, NOTE_B6, 0, 0 |
eencae | 1:9840610e5ff2 | 40 | }; |
eencae | 1:9840610e5ff2 | 41 | |
eencae | 1:9840610e5ff2 | 42 | // 8 corresponds to 1/8 |
eencae | 1:9840610e5ff2 | 43 | const int duration_array[] = { |
eencae | 1:9840610e5ff2 | 44 | 8,8,8,8, |
eencae | 1:9840610e5ff2 | 45 | 8,8,8,8, |
eencae | 1:9840610e5ff2 | 46 | 8,8,8,8, |
eencae | 1:9840610e5ff2 | 47 | 8,8,8,8, |
eencae | 1:9840610e5ff2 | 48 | |
eencae | 1:9840610e5ff2 | 49 | 8,8,8,8, |
eencae | 1:9840610e5ff2 | 50 | 8,8,8,8, |
eencae | 1:9840610e5ff2 | 51 | 8,8,8,8, |
eencae | 1:9840610e5ff2 | 52 | 8,8,8,8, |
eencae | 1:9840610e5ff2 | 53 | |
eencae | 1:9840610e5ff2 | 54 | 6,6,6, |
eencae | 1:9840610e5ff2 | 55 | 8,8,8,8, |
eencae | 1:9840610e5ff2 | 56 | 8,8,8,8, |
eencae | 1:9840610e5ff2 | 57 | 8,8,8,8, |
eencae | 1:9840610e5ff2 | 58 | |
eencae | 1:9840610e5ff2 | 59 | 8,8,8,8, |
eencae | 1:9840610e5ff2 | 60 | 8,8,8,8, |
eencae | 1:9840610e5ff2 | 61 | 8,8,8,8, |
eencae | 1:9840610e5ff2 | 62 | 8,8,8,8, |
eencae | 1:9840610e5ff2 | 63 | |
eencae | 1:9840610e5ff2 | 64 | 6,6,6, |
eencae | 1:9840610e5ff2 | 65 | 8,8,8,8, |
eencae | 1:9840610e5ff2 | 66 | 8,8,8,8, |
eencae | 1:9840610e5ff2 | 67 | 8,8,8,8, |
eencae | 1:9840610e5ff2 | 68 | }; |
eencae | 0:8ccb53688328 | 69 | |
eencae | 0:8ccb53688328 | 70 | int main() |
eencae | 0:8ccb53688328 | 71 | { |
eencae | 1:9840610e5ff2 | 72 | dac.init(); |
eencae | 1:9840610e5ff2 | 73 | |
eencae | 1:9840610e5ff2 | 74 | int n = sizeof(note_array)/sizeof(int); |
eencae | 1:9840610e5ff2 | 75 | // tell it the number of notes, arrays, BPM and whether to repeat |
eencae | 1:9840610e5ff2 | 76 | dac.play_melody(n,note_array,duration_array,120.0,true); |
eencae | 0:8ccb53688328 | 77 | |
eencae | 0:8ccb53688328 | 78 | } |