a small song

Dependencies:   C12832 LM75B MMA7660 mbed

Committer:
tyli
Date:
Mon Feb 16 09:11:32 2015 +0000
Revision:
0:9d7b581da110
20150213Friday

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tyli 0:9d7b581da110 1 #include "main.h"
tyli 0:9d7b581da110 2 #include "morse.h"
tyli 0:9d7b581da110 3
tyli 0:9d7b581da110 4 #define DO 0.003822258
tyli 0:9d7b581da110 5 #define RE 0.003405245
tyli 0:9d7b581da110 6 #define MI 0.003033728
tyli 0:9d7b581da110 7 #define FA 0.002863458
tyli 0:9d7b581da110 8 #define SO 0.002551050
tyli 0:9d7b581da110 9 #define LA 0.002272727
tyli 0:9d7b581da110 10
tyli 0:9d7b581da110 11 #define UT 0.2
tyli 0:9d7b581da110 12 #define BREATH 0.02
tyli 0:9d7b581da110 13 #define V 0.5
tyli 0:9d7b581da110 14
tyli 0:9d7b581da110 15 BusIn joy(p15,p12,p13,p16);
tyli 0:9d7b581da110 16 C12832 lcd(p5,p7,p6,p8,p11);
tyli 0:9d7b581da110 17 MMA7660 MMA(p28,p27);
tyli 0:9d7b581da110 18 LM75B sensor(p28,p27);
tyli 0:9d7b581da110 19 PwmOut spkr(p26);
tyli 0:9d7b581da110 20
tyli 0:9d7b581da110 21 void MSSRSMDR()
tyli 0:9d7b581da110 22 {
tyli 0:9d7b581da110 23 spkr.period(DO); spkr=V; wait(0.5*UT-BREATH);
tyli 0:9d7b581da110 24 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 25 spkr.period(RE); spkr=V; wait(0.5*UT-BREATH);
tyli 0:9d7b581da110 26 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 27 spkr.period(MI); spkr=V; wait(UT-BREATH);
tyli 0:9d7b581da110 28 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 29 spkr.period(SO); spkr=V; wait(UT-BREATH);
tyli 0:9d7b581da110 30 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 31 spkr.period(SO); spkr=V; wait(1.5*UT-BREATH);
tyli 0:9d7b581da110 32 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 33 spkr.period(LA); spkr=V; wait(0.5*UT-BREATH);
tyli 0:9d7b581da110 34 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 35 spkr.period(SO); spkr=V; wait(UT-BREATH);
tyli 0:9d7b581da110 36 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 37 spkr.period(MI); spkr=V; wait(UT-BREATH);
tyli 0:9d7b581da110 38 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 39 spkr.period(DO); spkr=V; wait(1.5*UT-BREATH);
tyli 0:9d7b581da110 40 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 41 spkr.period(RE); spkr=V; wait(0.5*UT-BREATH);
tyli 0:9d7b581da110 42 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 43 spkr=0.0;
tyli 0:9d7b581da110 44 }
tyli 0:9d7b581da110 45
tyli 0:9d7b581da110 46 void MMRDR()
tyli 0:9d7b581da110 47 {
tyli 0:9d7b581da110 48 spkr.period(MI); spkr=V; wait(UT-BREATH);
tyli 0:9d7b581da110 49 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 50 spkr.period(MI); spkr=V; wait(UT-BREATH);
tyli 0:9d7b581da110 51 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 52 spkr.period(RE); spkr=V; wait(UT-BREATH);
tyli 0:9d7b581da110 53 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 54 spkr.period(DO); spkr=V; wait(UT-BREATH);
tyli 0:9d7b581da110 55 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 56 spkr.period(RE); spkr=V; wait(3.0*UT-BREATH);
tyli 0:9d7b581da110 57 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 58 spkr=0.0;
tyli 0:9d7b581da110 59 }
tyli 0:9d7b581da110 60
tyli 0:9d7b581da110 61 void MMRRD()
tyli 0:9d7b581da110 62 {
tyli 0:9d7b581da110 63 spkr.period(MI); spkr=V; wait(UT-BREATH);
tyli 0:9d7b581da110 64 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 65 spkr.period(MI); spkr=V; wait(UT-BREATH);
tyli 0:9d7b581da110 66 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 67 spkr.period(RE); spkr=V; wait(UT-BREATH);
tyli 0:9d7b581da110 68 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 69 spkr.period(RE); spkr=V; wait(UT-BREATH);
tyli 0:9d7b581da110 70 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 71 spkr.period(DO); spkr=V; wait(4.0*UT-BREATH);
tyli 0:9d7b581da110 72 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 73 spkr=0.0;
tyli 0:9d7b581da110 74 }
tyli 0:9d7b581da110 75
tyli 0:9d7b581da110 76 void FFLLSMDR()
tyli 0:9d7b581da110 77 {
tyli 0:9d7b581da110 78 spkr.period(FA); spkr=V; wait(2.0*UT-BREATH);
tyli 0:9d7b581da110 79 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 80 spkr.period(FA); spkr=V; wait(2.0*UT-BREATH);
tyli 0:9d7b581da110 81 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 82 spkr.period(LA); spkr=V; wait(UT-BREATH);
tyli 0:9d7b581da110 83 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 84 spkr.period(LA); spkr=V; wait(3.0*UT-BREATH);
tyli 0:9d7b581da110 85 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 86 spkr.period(SO); spkr=V; wait(2.0*UT-BREATH);
tyli 0:9d7b581da110 87 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 88 spkr.period(MI); spkr=V; wait(UT-BREATH);
tyli 0:9d7b581da110 89 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 90 spkr.period(DO); spkr=V; wait(UT-BREATH);
tyli 0:9d7b581da110 91 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 92 spkr.period(RE); spkr=V; wait(3.0*UT-BREATH);
tyli 0:9d7b581da110 93 spkr=0.0; wait(BREATH);
tyli 0:9d7b581da110 94 spkr=0.0;
tyli 0:9d7b581da110 95 }
tyli 0:9d7b581da110 96
tyli 0:9d7b581da110 97 void sing()
tyli 0:9d7b581da110 98 {
tyli 0:9d7b581da110 99 MSSRSMDR();
tyli 0:9d7b581da110 100 MMRDR();
tyli 0:9d7b581da110 101 MSSRSMDR();
tyli 0:9d7b581da110 102 MMRRD();
tyli 0:9d7b581da110 103 FFLLSMDR();
tyli 0:9d7b581da110 104 MSSRSMDR();
tyli 0:9d7b581da110 105 MMRRD();
tyli 0:9d7b581da110 106 }
tyli 0:9d7b581da110 107
tyli 0:9d7b581da110 108 void temp(int i)
tyli 0:9d7b581da110 109 {
tyli 0:9d7b581da110 110 if(i>=0)
tyli 0:9d7b581da110 111 {
tyli 0:9d7b581da110 112 i=i%100;
tyli 0:9d7b581da110 113 morse(i/10);
tyli 0:9d7b581da110 114 morse(i%10);
tyli 0:9d7b581da110 115 }
tyli 0:9d7b581da110 116 }
tyli 0:9d7b581da110 117
tyli 0:9d7b581da110 118 int main()
tyli 0:9d7b581da110 119 {
tyli 0:9d7b581da110 120 float x,y,z;
tyli 0:9d7b581da110 121 while(1)
tyli 0:9d7b581da110 122 {
tyli 0:9d7b581da110 123 x=MMA.x();
tyli 0:9d7b581da110 124 y=MMA.y();
tyli 0:9d7b581da110 125 z=MMA.z();
tyli 0:9d7b581da110 126 if(x*x+y*y+z*z>3.5) temp((int)sensor);
tyli 0:9d7b581da110 127 lcd.cls();
tyli 0:9d7b581da110 128 lcd.locate(0,0);
tyli 0:9d7b581da110 129 lcd.printf("Temp = %d\n",(int)sensor);
tyli 0:9d7b581da110 130 if(joy) sing();
tyli 0:9d7b581da110 131 wait(0.02);
tyli 0:9d7b581da110 132 }
tyli 0:9d7b581da110 133 }