Using DAC to play a melody

Dependencies:   Tone mbed

Fork of 1620_App_Board_UART_getc by Craig Evans

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?

UserRevisionLine numberNew 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 }