Exemple d'utilisation MArio thème

Dependencies:   mbed

Fork of app-shield-speaker by Chris Styles

Committer:
rtk
Date:
Fri Oct 16 11:38:42 2015 +0000
Revision:
5:d9670e532659
Parent:
3:3bb3e6051175
TP6 mario;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
chris 0:f86c572491c3 1 #include "mbed.h"
rtk 5:d9670e532659 2 #include "pitchs.h"
chris 3:3bb3e6051175 3 DigitalIn fire(D4);
chris 3:3bb3e6051175 4 PwmOut spkr(D6);
chris 0:f86c572491c3 5
rtk 5:d9670e532659 6 int melody[] = {
rtk 5:d9670e532659 7 NOTE_E7, NOTE_E7, 0, NOTE_E7,
rtk 5:d9670e532659 8 0, NOTE_C7, NOTE_E7, 0,
rtk 5:d9670e532659 9 NOTE_G7, 0, 0, 0,
rtk 5:d9670e532659 10 NOTE_G6, 0, 0, 0,
rtk 5:d9670e532659 11
rtk 5:d9670e532659 12 NOTE_C7, 0, 0, NOTE_G6,
rtk 5:d9670e532659 13 0, 0, NOTE_E6, 0,
rtk 5:d9670e532659 14 0, NOTE_A6, 0, NOTE_B6,
rtk 5:d9670e532659 15 0, NOTE_AS6, NOTE_A6, 0,
rtk 5:d9670e532659 16
rtk 5:d9670e532659 17 NOTE_G6, NOTE_E7, NOTE_G7,
rtk 5:d9670e532659 18 NOTE_A7, 0, NOTE_F7, NOTE_G7,
rtk 5:d9670e532659 19 0, NOTE_E7, 0,NOTE_C7,
rtk 5:d9670e532659 20 NOTE_D7, NOTE_B6, 0, 0,
rtk 5:d9670e532659 21
rtk 5:d9670e532659 22 NOTE_C7, 0, 0, NOTE_G6,
rtk 5:d9670e532659 23 0, 0, NOTE_E6, 0,
rtk 5:d9670e532659 24 0, NOTE_A6, 0, NOTE_B6,
rtk 5:d9670e532659 25 0, NOTE_AS6, NOTE_A6, 0,
rtk 5:d9670e532659 26
rtk 5:d9670e532659 27 NOTE_G6, NOTE_E7, NOTE_G7,
rtk 5:d9670e532659 28 NOTE_A7, 0, NOTE_F7, NOTE_G7,
rtk 5:d9670e532659 29 0, NOTE_E7, 0,NOTE_C7,
rtk 5:d9670e532659 30 NOTE_D7, NOTE_B6, 0, 0
rtk 5:d9670e532659 31 };
rtk 5:d9670e532659 32 //Mario main them tempo
rtk 5:d9670e532659 33 // note durations: 4 = quarter note, 8 = eighth note, etc.:
rtk 5:d9670e532659 34 int noteDurations[] = {
rtk 5:d9670e532659 35 12, 12, 12, 12,
rtk 5:d9670e532659 36 12, 12, 12, 12,
rtk 5:d9670e532659 37 12, 12, 12, 12,
rtk 5:d9670e532659 38 12, 12, 12, 12,
rtk 5:d9670e532659 39 12, 12, 12, 12,
rtk 5:d9670e532659 40 12, 12, 12, 12,
rtk 5:d9670e532659 41 12, 12, 12, 12,
rtk 5:d9670e532659 42 12, 12, 12, 12,
rtk 5:d9670e532659 43 9, 9, 9,
rtk 5:d9670e532659 44 12, 12, 12, 12,
rtk 5:d9670e532659 45 12, 12, 12, 12,
rtk 5:d9670e532659 46 12, 12, 12, 12,
rtk 5:d9670e532659 47 12, 12, 12, 12,
rtk 5:d9670e532659 48 12, 12, 12, 12,
rtk 5:d9670e532659 49 12, 12, 12, 12,
rtk 5:d9670e532659 50 12, 12, 12, 12,
rtk 5:d9670e532659 51 9, 9, 9,
rtk 5:d9670e532659 52 12, 12, 12, 12,
rtk 5:d9670e532659 53 12, 12, 12, 12,
rtk 5:d9670e532659 54 12, 12, 12, 12,
rtk 5:d9670e532659 55 };
rtk 5:d9670e532659 56
rtk 5:d9670e532659 57
rtk 5:d9670e532659 58
rtk 5:d9670e532659 59
chris 0:f86c572491c3 60 int main()
chris 0:f86c572491c3 61 {
rtk 5:d9670e532659 62 int size = sizeof(melody) / sizeof(int);
chris 2:cfd337edff08 63 while (1) {
rtk 5:d9670e532659 64 for (int thisNote = 0; thisNote < 52; thisNote++) {
rtk 5:d9670e532659 65 // to calculate the note duration, take one second
rtk 5:d9670e532659 66 // divided by the note type.
rtk 5:d9670e532659 67 //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
rtk 5:d9670e532659 68 int noteDuration = noteDurations[thisNote];
rtk 5:d9670e532659 69 //tone(8, melody[thisNote],noteDuration);
rtk 5:d9670e532659 70 spkr.period(1.0/melody[thisNote]);
rtk 5:d9670e532659 71 spkr=0.25;
rtk 5:d9670e532659 72 wait(1.0/noteDuration);
rtk 5:d9670e532659 73 //wait(1);
rtk 5:d9670e532659 74 // to distinguish the notes, set a minimum time between them.
rtk 5:d9670e532659 75 // the note's duration + 30% seems to work well:
rtk 5:d9670e532659 76 int pauseBetweenNotes = noteDuration * 1.30;
rtk 5:d9670e532659 77 //wait(pauseBetweenNotes/1000);
rtk 5:d9670e532659 78 wait(1.0/pauseBetweenNotes);
rtk 5:d9670e532659 79 // stop the tone playing:
rtk 5:d9670e532659 80 //noTone(8);
rtk 5:d9670e532659 81 spkr=0;
rtk 5:d9670e532659 82
rtk 5:d9670e532659 83
chris 2:cfd337edff08 84 }
rtk 5:d9670e532659 85 while(!fire) {wait(0.1);}
rtk 5:d9670e532659 86 }
chris 0:f86c572491c3 87 }