Slave serial com

Dependencies:   mbed

Fork of Serial_Communication_Slave by Arthur Semjonov

Committer:
ArthurSemjonov
Date:
Wed Feb 26 15:59:47 2014 +0000
Revision:
3:7e34b54bde5a
Parent:
2:b7eee254a06e
companion;

Who changed what in which revision?

UserRevisionLine numberNew 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_ */