Plays the Tetris theme on a buzzer

Dependencies:   beepLib mbed

Fork of popcorn by David Styles

Committer:
wsjoukes
Date:
Fri Nov 09 16:34:20 2012 +0000
Revision:
1:5d7ecf6a9525
Commit message

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wsjoukes 1:5d7ecf6a9525 1 #include "mbed.h"
wsjoukes 1:5d7ecf6a9525 2 #include "beep.h"
wsjoukes 1:5d7ecf6a9525 3 Beep buzzer(p23);
wsjoukes 1:5d7ecf6a9525 4
wsjoukes 1:5d7ecf6a9525 5 DigitalOut myled(LED1);
wsjoukes 1:5d7ecf6a9525 6
wsjoukes 1:5d7ecf6a9525 7 void play(char* note, char* length);
wsjoukes 1:5d7ecf6a9525 8
wsjoukes 1:5d7ecf6a9525 9 void tetris() {
wsjoukes 1:5d7ecf6a9525 10
wsjoukes 1:5d7ecf6a9525 11
wsjoukes 1:5d7ecf6a9525 12 play("g", "Q");
wsjoukes 1:5d7ecf6a9525 13 play("d", "E");
wsjoukes 1:5d7ecf6a9525 14 play("eb", "E");
wsjoukes 1:5d7ecf6a9525 15 play("f", "Q");
wsjoukes 1:5d7ecf6a9525 16 play("eb", "E");
wsjoukes 1:5d7ecf6a9525 17 play("d", "E");
wsjoukes 1:5d7ecf6a9525 18 play("c", "Q");
wsjoukes 1:5d7ecf6a9525 19 play("c", "E");
wsjoukes 1:5d7ecf6a9525 20 play("eb", "E");
wsjoukes 1:5d7ecf6a9525 21 play("g", "Q");
wsjoukes 1:5d7ecf6a9525 22 play("f", "E");
wsjoukes 1:5d7ecf6a9525 23 play("eb", "E");
wsjoukes 1:5d7ecf6a9525 24 play("d", "T");
wsjoukes 1:5d7ecf6a9525 25 play("eb", "E");
wsjoukes 1:5d7ecf6a9525 26 play("f", "Q");
wsjoukes 1:5d7ecf6a9525 27 play("g", "Q");
wsjoukes 1:5d7ecf6a9525 28 play("eb", "S");
wsjoukes 1:5d7ecf6a9525 29 play("c", "S");
wsjoukes 1:5d7ecf6a9525 30 play("c", "S");
wsjoukes 1:5d7ecf6a9525 31 play("r", "Q");
wsjoukes 1:5d7ecf6a9525 32 play("r", "E");
wsjoukes 1:5d7ecf6a9525 33 play("f", "T");
wsjoukes 1:5d7ecf6a9525 34 play("abh", "E");
wsjoukes 1:5d7ecf6a9525 35 play("ch", "Q");
wsjoukes 1:5d7ecf6a9525 36 play("bbh", "E");
wsjoukes 1:5d7ecf6a9525 37 play("abh", "E");
wsjoukes 1:5d7ecf6a9525 38 play("g", "T");
wsjoukes 1:5d7ecf6a9525 39 play("eb", "E");
wsjoukes 1:5d7ecf6a9525 40 play("g", "Q");
wsjoukes 1:5d7ecf6a9525 41 play("f", "E");
wsjoukes 1:5d7ecf6a9525 42 play("eb", "E");
wsjoukes 1:5d7ecf6a9525 43 play("d", "Q");
wsjoukes 1:5d7ecf6a9525 44 play("d", "E");
wsjoukes 1:5d7ecf6a9525 45 play("eb", "E");
wsjoukes 1:5d7ecf6a9525 46 play("f", "Q");
wsjoukes 1:5d7ecf6a9525 47 play("g", "Q");
wsjoukes 1:5d7ecf6a9525 48 play("eb", "Q");
wsjoukes 1:5d7ecf6a9525 49 play("c", "S");
wsjoukes 1:5d7ecf6a9525 50 play("c", "S");
wsjoukes 1:5d7ecf6a9525 51 play("r", "Q");
wsjoukes 1:5d7ecf6a9525 52
wsjoukes 1:5d7ecf6a9525 53 }
wsjoukes 1:5d7ecf6a9525 54
wsjoukes 1:5d7ecf6a9525 55
wsjoukes 1:5d7ecf6a9525 56 void play(char* note, char* length) {
wsjoukes 1:5d7ecf6a9525 57
wsjoukes 1:5d7ecf6a9525 58 if (note=="ab") {
wsjoukes 1:5d7ecf6a9525 59 buzzer.beepFreq(830);
wsjoukes 1:5d7ecf6a9525 60 }
wsjoukes 1:5d7ecf6a9525 61 if (note=="abh"){
wsjoukes 1:5d7ecf6a9525 62 buzzer.beepFreq(1661);
wsjoukes 1:5d7ecf6a9525 63 }
wsjoukes 1:5d7ecf6a9525 64 if (note=="bb") {
wsjoukes 1:5d7ecf6a9525 65 buzzer.beepFreq(932);
wsjoukes 1:5d7ecf6a9525 66 }
wsjoukes 1:5d7ecf6a9525 67 if (note=="bbh") {
wsjoukes 1:5d7ecf6a9525 68 buzzer.beepFreq(1865);
wsjoukes 1:5d7ecf6a9525 69 }
wsjoukes 1:5d7ecf6a9525 70 if (note=="c") {
wsjoukes 1:5d7ecf6a9525 71 buzzer.beepFreq(1046);
wsjoukes 1:5d7ecf6a9525 72 }
wsjoukes 1:5d7ecf6a9525 73 if (note=="ch") {
wsjoukes 1:5d7ecf6a9525 74 buzzer.beepFreq(2093);
wsjoukes 1:5d7ecf6a9525 75 }
wsjoukes 1:5d7ecf6a9525 76 if (note=="d") {
wsjoukes 1:5d7ecf6a9525 77 buzzer.beepFreq(1175);
wsjoukes 1:5d7ecf6a9525 78 }
wsjoukes 1:5d7ecf6a9525 79 if (note=="eb") {
wsjoukes 1:5d7ecf6a9525 80 buzzer.beepFreq(1245);
wsjoukes 1:5d7ecf6a9525 81 }
wsjoukes 1:5d7ecf6a9525 82 if (note=="f") {
wsjoukes 1:5d7ecf6a9525 83 buzzer.beepFreq(1397);
wsjoukes 1:5d7ecf6a9525 84 }
wsjoukes 1:5d7ecf6a9525 85 if (note=="g") {
wsjoukes 1:5d7ecf6a9525 86 buzzer.beepFreq(1568);
wsjoukes 1:5d7ecf6a9525 87 }
wsjoukes 1:5d7ecf6a9525 88 if (note=="r") {
wsjoukes 1:5d7ecf6a9525 89 buzzer.beepFreq(0);
wsjoukes 1:5d7ecf6a9525 90 }
wsjoukes 1:5d7ecf6a9525 91
wsjoukes 1:5d7ecf6a9525 92 if (length=="Q"){ //quarter note
wsjoukes 1:5d7ecf6a9525 93 buzzer.beepTime(0.5);
wsjoukes 1:5d7ecf6a9525 94 wait (0.5);
wsjoukes 1:5d7ecf6a9525 95 }
wsjoukes 1:5d7ecf6a9525 96 if (length=="E"){ // eighth note
wsjoukes 1:5d7ecf6a9525 97 buzzer.beepTime(0.25);
wsjoukes 1:5d7ecf6a9525 98 wait(0.25);
wsjoukes 1:5d7ecf6a9525 99 }
wsjoukes 1:5d7ecf6a9525 100 if (length=="T"){ //quarter+eigthh note
wsjoukes 1:5d7ecf6a9525 101 buzzer.beepTime(0.75);
wsjoukes 1:5d7ecf6a9525 102 wait(0.75);
wsjoukes 1:5d7ecf6a9525 103 }
wsjoukes 1:5d7ecf6a9525 104 if (length=="S"){ //staccato note
wsjoukes 1:5d7ecf6a9525 105 buzzer.beepTime(0.25);
wsjoukes 1:5d7ecf6a9525 106 wait(0.5);
wsjoukes 1:5d7ecf6a9525 107 }
wsjoukes 1:5d7ecf6a9525 108
wsjoukes 1:5d7ecf6a9525 109 }
wsjoukes 1:5d7ecf6a9525 110
wsjoukes 1:5d7ecf6a9525 111
wsjoukes 1:5d7ecf6a9525 112 int main() {
wsjoukes 1:5d7ecf6a9525 113 tetris();
wsjoukes 1:5d7ecf6a9525 114 }