Project for playing a song on 2 meeds sending notes over I2C

Dependencies:   C12832 mbed

Committer:
jad19925
Date:
Wed Feb 12 17:44:26 2014 +0000
Revision:
0:db7b3841b98f
Child:
1:feca2dfd8753
Initial Project

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jad19925 0:db7b3841b98f 1 #include "mbed.h"
jad19925 0:db7b3841b98f 2 #include "C12832.h"
jad19925 0:db7b3841b98f 3 #include "music.h"
jad19925 0:db7b3841b98f 4
jad19925 0:db7b3841b98f 5 BusIn joy(p15,p12,p13,p16);
jad19925 0:db7b3841b98f 6 DigitalIn fire(p14);
jad19925 0:db7b3841b98f 7 PwmOut spkr(p26);
jad19925 0:db7b3841b98f 8 PwmOut red (p23);
jad19925 0:db7b3841b98f 9 PwmOut green (p24);
jad19925 0:db7b3841b98f 10 PwmOut blue (p25);
jad19925 0:db7b3841b98f 11 C12832 lcd(p5, p7, p6, p8, p11);
jad19925 0:db7b3841b98f 12 AnalogIn pot1(p19);
jad19925 0:db7b3841b98f 13 AnalogIn pot2(p20);
jad19925 0:db7b3841b98f 14 DigitalIn up(p15);
jad19925 0:db7b3841b98f 15 DigitalIn down(p12);
jad19925 0:db7b3841b98f 16
jad19925 0:db7b3841b98f 17 BusOut leds(LED1,LED2,LED3,LED4);
jad19925 0:db7b3841b98f 18
jad19925 0:db7b3841b98f 19 int main()
jad19925 0:db7b3841b98f 20 {
jad19925 0:db7b3841b98f 21 float p1Voltage = 0;
jad19925 0:db7b3841b98f 22 float p2Voltage = 0;
jad19925 0:db7b3841b98f 23 float blueDC = 1;
jad19925 0:db7b3841b98f 24 red.period(0.001);
jad19925 0:db7b3841b98f 25 green.period(0.001);
jad19925 0:db7b3841b98f 26 blue.period(0.001);
jad19925 0:db7b3841b98f 27 red=1;
jad19925 0:db7b3841b98f 28 green=1;
jad19925 0:db7b3841b98f 29 blue=1;
jad19925 0:db7b3841b98f 30
jad19925 0:db7b3841b98f 31 lcd.cls();
jad19925 0:db7b3841b98f 32 lcd.printf("hello world");
jad19925 0:db7b3841b98f 33
jad19925 0:db7b3841b98f 34 while(1) {
jad19925 0:db7b3841b98f 35 if (fire) {
jad19925 0:db7b3841b98f 36 leds=0xf;
jad19925 0:db7b3841b98f 37 //start speaker code
jad19925 0:db7b3841b98f 38 // for (float i=2000.0; i<10000.0; i+=100) {
jad19925 0:db7b3841b98f 39 // spkr.period(1.0/i);
jad19925 0:db7b3841b98f 40 // spkr=0.5;
jad19925 0:db7b3841b98f 41 // wait(0.1);
jad19925 0:db7b3841b98f 42 // }
jad19925 0:db7b3841b98f 43 // spkr=0.0;
jad19925 0:db7b3841b98f 44 for(int i=0;i<(sizeof(marioNotes)/sizeof(NoteName));i++){
jad19925 0:db7b3841b98f 45 if(marioNotes[i] == R) {
jad19925 0:db7b3841b98f 46 spkr=0.0;
jad19925 0:db7b3841b98f 47 wait(.7*marioBeats[i]);
jad19925 0:db7b3841b98f 48 }
jad19925 0:db7b3841b98f 49 else{
jad19925 0:db7b3841b98f 50 spkr.period(1/(2*notes[marioNotes[i]]));
jad19925 0:db7b3841b98f 51 spkr=.5;
jad19925 0:db7b3841b98f 52 wait(.7*marioBeats[i]);
jad19925 0:db7b3841b98f 53 spkr=0.0;
jad19925 0:db7b3841b98f 54 }
jad19925 0:db7b3841b98f 55 }
jad19925 0:db7b3841b98f 56 spkr=0.0;
jad19925 0:db7b3841b98f 57 //end speaker code
jad19925 0:db7b3841b98f 58 } else {
jad19925 0:db7b3841b98f 59 leds=joy;
jad19925 0:db7b3841b98f 60 }
jad19925 0:db7b3841b98f 61
jad19925 0:db7b3841b98f 62 //read potentiometers
jad19925 0:db7b3841b98f 63 p1Voltage = pot1.read();
jad19925 0:db7b3841b98f 64 p2Voltage = pot2.read();
jad19925 0:db7b3841b98f 65 //set LEDs based on pots and switch
jad19925 0:db7b3841b98f 66 red = 1-p1Voltage;
jad19925 0:db7b3841b98f 67 green = 1-p2Voltage;
jad19925 0:db7b3841b98f 68 if(up & blueDC >= .05)
jad19925 0:db7b3841b98f 69 {blueDC -= .05;}
jad19925 0:db7b3841b98f 70 if(down & blueDC <= .95)
jad19925 0:db7b3841b98f 71 {blueDC += .05;}
jad19925 0:db7b3841b98f 72 blue = blueDC;
jad19925 0:db7b3841b98f 73 //print pot values and blueDC
jad19925 0:db7b3841b98f 74 lcd.cls();
jad19925 0:db7b3841b98f 75 lcd.locate(0,0);
jad19925 0:db7b3841b98f 76 lcd.printf("Pot1 = %f\nPot2 = %f\nBlueDC = %f",p1Voltage, p2Voltage, blueDC);
jad19925 0:db7b3841b98f 77
jad19925 0:db7b3841b98f 78 wait(0.1);
jad19925 0:db7b3841b98f 79 }
jad19925 0:db7b3841b98f 80 }