Jacob Dahleen
/
I2CSong
Project for playing a song on 2 meeds sending notes over I2C
main.cpp@0:db7b3841b98f, 2014-02-12 (annotated)
- 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?
User | Revision | Line number | New 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 | } |