Arthur Semjonov
/
Serial_Communication_Slave_pub
Slave serial com
Fork of Serial_Communication_Slave by
TARDIS_ARCHIVE.h@2:b7eee254a06e, 2014-02-19 (annotated)
- Committer:
- ArthurSemjonov
- Date:
- Wed Feb 19 16:16:12 2014 +0000
- Revision:
- 2:b7eee254a06e
- Parent:
- 1:a1067f80d074
Companion code
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ArthurSemjonov | 0:3457fac208b7 | 1 | |
ArthurSemjonov | 0:3457fac208b7 | 2 | /* |
ArthurSemjonov | 0:3457fac208b7 | 3 | * music.h |
ArthurSemjonov | 0:3457fac208b7 | 4 | * |
ArthurSemjonov | 0:3457fac208b7 | 5 | * Created on: Feb "some day", 2014 |
ArthurSemjonov | 1:a1067f80d074 | 6 | * Authors: Arthur Semjonov && Jonathan Pucceti |
ArthurSemjonov | 0:3457fac208b7 | 7 | */ |
ArthurSemjonov | 0:3457fac208b7 | 8 | |
ArthurSemjonov | 0:3457fac208b7 | 9 | #ifndef TARDIS_H_ |
ArthurSemjonov | 0:3457fac208b7 | 10 | #define TARDIS_H_ |
ArthurSemjonov | 0:3457fac208b7 | 11 | /*=====================NOTES=============================*/ |
ArthurSemjonov | 0:3457fac208b7 | 12 | |
ArthurSemjonov | 0:3457fac208b7 | 13 | enum NoteName {C0=0,Cs0,D0,Eb0,E0,F0,Fs0,G0,Gs0,A0,Bb0,B0, |
ArthurSemjonov | 0:3457fac208b7 | 14 | C1,Cs1,D1,Eb1,E1,F1,Fs1,G1,Gs1,A1,Bb1,B1, |
ArthurSemjonov | 0:3457fac208b7 | 15 | C2,Cs2,D2,Eb2,E2,F2,Fs2,G2,Gs2,A2,Bb2,B2, |
ArthurSemjonov | 0:3457fac208b7 | 16 | C3,Cs3,D3,Eb3,E3,F3,Fs3,G3,Gs3,A3,Bb3,B3, |
ArthurSemjonov | 0:3457fac208b7 | 17 | C4,Cs4,D4,Eb4,E4,F4,Fs4,G4,Gs4,A4,Bb4,B4, |
ArthurSemjonov | 0:3457fac208b7 | 18 | C5,Cs5,D5,Eb5,E5,F5,Fs5,G5,Gs5,A5,Bb5,B5, |
ArthurSemjonov | 0:3457fac208b7 | 19 | C6,Cs6,D6,Eb6,E6,F6,Fs6,G6,Gs6,A6,Bb6,B6, |
ArthurSemjonov | 0:3457fac208b7 | 20 | C7,Cs7,D7,Eb7,E7,F7,Fs7,G7,Gs7,A7,Bb7,B7, |
ArthurSemjonov | 0:3457fac208b7 | 21 | C8,Cs8,D8,Eb8,E8,F8,Fs8,G8,Gs8,A8,Bb8,B8,R}; |
ArthurSemjonov | 0:3457fac208b7 | 22 | /*=======================================================*/ |
ArthurSemjonov | 0:3457fac208b7 | 23 | |
ArthurSemjonov | 0:3457fac208b7 | 24 | |
ArthurSemjonov | 0:3457fac208b7 | 25 | /*=====================FREQUENCIES=======================*/ |
ArthurSemjonov | 0:3457fac208b7 | 26 | float notes[]={16.35,17.32,18.35,19.45,20.60,21.83,23.12,24.50,25.96,27.50,29.14,30.87, |
ArthurSemjonov | 0:3457fac208b7 | 27 | 32.70,34.65,36.71,38.89,41.20,43.65,46.25,49.00,51.91,55.00,58.27,61.74, |
ArthurSemjonov | 0:3457fac208b7 | 28 | 65.41,69.30,73.42,77.78,82.41,87.31,92.50,98.00,103.8,110.0,116.5,123.5, |
ArthurSemjonov | 0:3457fac208b7 | 29 | 130.8,138.6,146.8,155.6,164.8,174.6,185.0,196.0,207.7,220.0,233.1,246.9, |
ArthurSemjonov | 0:3457fac208b7 | 30 | 261.6,277.2,293.7,311.1,329.6,349.2,370.0,392.0,415.3,440.0,466.2,493.9, |
ArthurSemjonov | 0:3457fac208b7 | 31 | 523.3,554.4,587.3,622.3,659.3,698.5,740.0,784.0,830.6,880.0,932.3,987.8, |
ArthurSemjonov | 0:3457fac208b7 | 32 | 1047,1109,1175,1245,1319,1397,1480,1568,1661,1760,1865,1976, |
ArthurSemjonov | 0:3457fac208b7 | 33 | 2093,2217,2349,2489,2637,2794,2960,3136,3322,3520,3729,3951, |
ArthurSemjonov | 0:3457fac208b7 | 34 | 4186,4435,4699,4978,5274,5588,5920,6272,6645,7040,7459,7902}; |
ArthurSemjonov | 0:3457fac208b7 | 35 | |
ArthurSemjonov | 0:3457fac208b7 | 36 | |
ArthurSemjonov | 0:3457fac208b7 | 37 | |
ArthurSemjonov | 0:3457fac208b7 | 38 | |
ArthurSemjonov | 0:3457fac208b7 | 39 | /*=============================Prototypes===============*/ |
ArthurSemjonov | 0:3457fac208b7 | 40 | /*Demo song*/ |
ArthurSemjonov | 0:3457fac208b7 | 41 | void songOfMyPeople(float frequency[], float beat[]); |
ArthurSemjonov | 0:3457fac208b7 | 42 | |
ArthurSemjonov | 0:3457fac208b7 | 43 | |
ArthurSemjonov | 0:3457fac208b7 | 44 | /** ___________________Used for demo___________________ |
ArthurSemjonov | 0:3457fac208b7 | 45 | * Look up the frequency of the note from music.h file |
ArthurSemjonov | 0:3457fac208b7 | 46 | * @param frq[], array of the song |
ArthurSemjonov | 0:3457fac208b7 | 47 | * @param k, location of the note in the array |
ArthurSemjonov | 0:3457fac208b7 | 48 | * _____________________________________________________ |
ArthurSemjonov | 0:3457fac208b7 | 49 | */ |
ArthurSemjonov | 0:3457fac208b7 | 50 | float lookupNoteFrq(float frq[], int k); |
ArthurSemjonov | 0:3457fac208b7 | 51 | |
ArthurSemjonov | 0:3457fac208b7 | 52 | |
ArthurSemjonov | 0:3457fac208b7 | 53 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=// |
ArthurSemjonov | 0:3457fac208b7 | 54 | |
ArthurSemjonov | 0:3457fac208b7 | 55 | /* _________________________________________ |
ArthurSemjonov | 0:3457fac208b7 | 56 | * Parses the note recevied by the I2C slave. |
ArthurSemjonov | 1:a1067f80d074 | 57 | * Helper function of playTheNote. Which takes and integer value and references the frequency |
ArthurSemjonov | 0:3457fac208b7 | 58 | * related to that note. After frequency is found, function plays the note. |
ArthurSemjonov | 0:3457fac208b7 | 59 | * @param k, music note |
ArthurSemjonov | 0:3457fac208b7 | 60 | * _________________________________________ */ |
ArthurSemjonov | 1:a1067f80d074 | 61 | void playTheNote(int k); |
ArthurSemjonov | 0:3457fac208b7 | 62 | |
ArthurSemjonov | 0:3457fac208b7 | 63 | /* _________________________________________________________________________ |
ArthurSemjonov | 0:3457fac208b7 | 64 | * I2C data link (Master) which sends notes of the song to linked slave mbed |
ArthurSemjonov | 0:3457fac208b7 | 65 | * while simultaniously playing the same note on it's own mbed |
ArthurSemjonov | 0:3457fac208b7 | 66 | * Features: |
ArthurSemjonov | 0:3457fac208b7 | 67 | 1) Hold mid joystick to stop both master and slave |
ArthurSemjonov | 0:3457fac208b7 | 68 | 2) When Slave button is pressed (joyDown), it will stop playing slave song and |
ArthurSemjonov | 0:3457fac208b7 | 69 | ________________________________________________________________________________________*/ |
ArthurSemjonov | 0:3457fac208b7 | 70 | void playTheDoctor(void); |
ArthurSemjonov | 0:3457fac208b7 | 71 | |
ArthurSemjonov | 0:3457fac208b7 | 72 | /* _____________________________________________________________________ |
ArthurSemjonov | 0:3457fac208b7 | 73 | * I2C data link (Master) which reads notes of the song from a companion |
ArthurSemjonov | 0:3457fac208b7 | 74 | * (slave) and plays the song of their people |
ArthurSemjonov | 0:3457fac208b7 | 75 | * Features: |
ArthurSemjonov | 0:3457fac208b7 | 76 | 1) Hold mid joystick to stop both master and slave |
ArthurSemjonov | 0:3457fac208b7 | 77 | 2) When Master button is pressed (joyUp), it will stop playing slave song and |
ArthurSemjonov | 0:3457fac208b7 | 78 | _________________________________________________________________________________________*/ |
ArthurSemjonov | 2:b7eee254a06e | 79 | void playTheCompanion(void); |
ArthurSemjonov | 0:3457fac208b7 | 80 | |
ArthurSemjonov | 0:3457fac208b7 | 81 | #endif /* TARDIS_H_ */ |