power rangers
/
I2C_Master
master
Revision 0:3951c8490b9e, committed 2014-02-19
- Comitter:
- TylerMuch
- Date:
- Wed Feb 19 01:00:59 2014 +0000
- Commit message:
- done
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed Feb 19 01:00:59 2014 +0000 @@ -0,0 +1,160 @@ +#include "mbed.h" +#include "music.h" + +float fu = 2; +float ha = fu/2; +float qu = ha/2; +float tq = fu*3/4; +float ei = fu/8; +float si = fu/16; + +char nyanNotes[] = { Eb5,E5,Fs5,Bb5,E5,Eb5,E5,Fs5,B5,Eb6,E6,Eb6,Bb5,B5,Fs5,Eb5,E5,Fs5,B5,Cs6,Bb5,B5,Cs6,E6,Eb6,E6,Cs6, + Fs5,Gs5,D5,Eb5,Cs5,Eb5,Cs5,B4,B4,Cs5,D5,D5,Cs5,B4,Cs5,Eb5,Fs5,Gs5,Eb5,Fs5,Cs5,Eb5,B4,Cs5,B4, + Eb5,Fs5,Gs5,Eb5,Fs5,Cs5,Eb5,B4,D5,Eb5,D5,Cs5,B4,Cs5,Eb5,B4,Cs5,Eb5,Fs5,Cs5,D5,Cs5,D5,Cs5,B4,Cs5,Fs5,Gs5,D5,Eb5,Cs5,Eb5,Cs5,B4,B4,Cs5, + D5,D5,Cs5,B4,Cs5,Eb5,Fs5,Gs5,Eb5,Fs5,Cs5,Eb5,B4,Cs5,B4,Eb5,Fs5,Gs5,Eb5,Gs5,Cs5,Eb5,B4,D5,E5,D5,Cs5,B4,Cs5, + Eb5,B4,Cs5,Eb5,Fs5,Cs5,D5,Cs5,D5,Cs5,B4,B4,B4,Fs4,Gs4,B4,Fs4,Gs4,B4,Cs5,Eb5,Cs5,E5,Eb5,E5,Fs5, + B4,B4,Fs4,Gs4,B4,Fs4,E5,Eb5,Cs5,B4,E4,Eb4,E4,Fs4,B4,Fs4,Gs4,B4,Fs4,Gs4,B4,B4,Cs5,Eb5,B4,Fs4,Gs4,Fs4, + B4,B4,Bb4,B4,Fs4,Gs4,B4,E5,Eb5,E5,Fs5,Eb5,Cs5,B4,Fs4,Gs4,B4,Fs4,Gs4,B4,Cs5,Eb5,Cs5,E5,Eb5,E5,Fs5, + B4,B4,Fs4,Gs4,B4,Fs4,E5,Eb5,Cs5,B4,E4,Eb4,E4,Fs4,B4,Fs4,Gs4,B4,Fs4,Gs4,B4,B4,Cs5,Eb5,B4,Fs4,Gs4,Fs4, + B4,B4,Bb4,B4,Fs4,Gs4,B4,E5,Eb5,E5,Fs5,B4,B4 + }; +float nyanBeat[]= { si,si,ei,si,si,si,si,si,si,si,si,si,si,ei,ei,si,si,ei,si,si,si,si,si,si,si,si,ei, + ei,ei,si,ei,si,si,si,ei,ei,ei,ei,si,si,si,si,si,si,si,si,si,si,si,si,si,si, + ei,ei,si,si,si,si,si,si,si,si,si,si,si,si,ei,si,si,si,si,si,si,si,si,ei,ei,ei,ei,ei,si,ei,si,si,si,ei,ei,ei, + ei,si,si,si,si,si,si,si,si,si,si,si,si,si,si,ei,ei,si,si,si,si,si,si,si,si,si,si,si,si, + ei,si,si,si,si,si,si,si,si,ei,ei,ei,ei,si,si,ei,si,si,si,si,si,si,si,si,si,si, + ei,ei,si,si,si,si,si,si,si,si,si,si,si,si,ei,si,si,ei,si,si,si,si,si,si,si,si,si,si, + ei,si,si,si,si,si,si,si,si,si,si,ei,ei,ei,si,si,ei,si,si,si,si,si,si,si,si,si,si, + ei,ei,si,si,si,si,si,si,si,si,si,si,si,si,ei,si,si,ei,si,si,si,si,si,si,si,si,si,si, + ei,si,si,si,si,si,si,si,si,si,si,si,si + };//beat array + + +//float song[]; +//float beat[]; + +//float alive_1[]; +//float alive_2[]; + +PwmOut spkr(p26); +DigitalIn fire(p14); +DigitalIn up(p15); +DigitalIn down(p12); +DigitalIn left(p13); +I2C i2c(p9, p10); + +const unsigned char addr = 0x42; +const unsigned char read = 0x01; + + +int main() { + i2c.frequency(1000); // 1kHz + while(1) + { + /* + if(up) + { + // both play master's song + + unsigned char freq; + float note; + + for(int i = 0; i < sizeof(song) / sizeof(float); i++) + { + freq = song[i]; + note = notes[freq]; + + i2c.start(); + i2c.write(addr); + i2c.write(freq); + i2c.stop(); + + spkr.period(1/note); + spkr = 0.5f; + wait(beat[i]); + } + + i2c.start(); + i2c.write(addr); + i2c.write(0xFF); // end song code + i2c.stop(); + + spkr = 0; + + } + + if(down) + { + // both play slave's song + int prev = -1; + freq = 0; + + i2c.start(); + i2c.write(addr | read); + + while(freq != 0xFF) + { + freq = i2c.read(addr); + if(freq != prev) { + note = notes[freq]; + spkr.period(1/note); + spkr = 0.5f; + } + prev = freg; + } + + i2c.stop(); + spkr = 0; + } + + if(fire) + { + // secret special sauce + unsigned char freq; + float note; + + for(int i = 0; i < sizeof(...); i++) + { + // play + freq = alive_1[i]; + note = notes[freq]; + + spkr.period(1/freq); + spkr = 0.5f; + + // send + freq = alive_2[i]; + note = notes[freq]; + + i2c.start(); + i2c.write(addr); + i2c.write(freq); + i2c.stop(); + + wait(beat[i]); + } + + i2c.start(); + i2c.write(addr); + i2c.write(0xFF); + i2c.stop(); + + spkr = 0; + }*/ + + if(left) + { + char freq; + float note; + for(int i = 0; i < sizeof(nyanNotes) / sizeof(nyanNotes[0]); i++) + { + freq = nyanNotes[i]; + note = notes[freq]; + spkr.period( 1 / note); + spkr = .5; + wait(nyanBeat[i]); + } + spkr = 0; + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Wed Feb 19 01:00:59 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/a9913a65894f \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/music.lib Wed Feb 19 01:00:59 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/TylerMuch/code/music/#57ff1b17134b