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 M 0.1
tyli 0:9d7b581da110 5 #define V 0.5
tyli 0:9d7b581da110 6 #define LA 0.002272727
tyli 0:9d7b581da110 7
tyli 0:9d7b581da110 8 extern PwmOut spkr;
tyli 0:9d7b581da110 9
tyli 0:9d7b581da110 10 void to()
tyli 0:9d7b581da110 11 {
tyli 0:9d7b581da110 12 spkr.period(LA);
tyli 0:9d7b581da110 13 spkr=V;
tyli 0:9d7b581da110 14 wait(M);
tyli 0:9d7b581da110 15 spkr=0.0;
tyli 0:9d7b581da110 16 wait(M);
tyli 0:9d7b581da110 17 }
tyli 0:9d7b581da110 18
tyli 0:9d7b581da110 19 void tsu()
tyli 0:9d7b581da110 20 {
tyli 0:9d7b581da110 21 spkr.period(LA);
tyli 0:9d7b581da110 22 spkr=V;
tyli 0:9d7b581da110 23 wait(3.0*M);
tyli 0:9d7b581da110 24 spkr=0.0;
tyli 0:9d7b581da110 25 wait(M);
tyli 0:9d7b581da110 26 }
tyli 0:9d7b581da110 27
tyli 0:9d7b581da110 28 void one()
tyli 0:9d7b581da110 29 {
tyli 0:9d7b581da110 30 to();
tyli 0:9d7b581da110 31 wait(2.0*M);
tyli 0:9d7b581da110 32 }
tyli 0:9d7b581da110 33
tyli 0:9d7b581da110 34 void two()
tyli 0:9d7b581da110 35 {
tyli 0:9d7b581da110 36 to();
tyli 0:9d7b581da110 37 to();
tyli 0:9d7b581da110 38 wait(2.0*M);
tyli 0:9d7b581da110 39 }
tyli 0:9d7b581da110 40
tyli 0:9d7b581da110 41 void three()
tyli 0:9d7b581da110 42 {
tyli 0:9d7b581da110 43 to();
tyli 0:9d7b581da110 44 to();
tyli 0:9d7b581da110 45 to();
tyli 0:9d7b581da110 46 wait(2.0*M);
tyli 0:9d7b581da110 47 }
tyli 0:9d7b581da110 48
tyli 0:9d7b581da110 49 void four()
tyli 0:9d7b581da110 50 {
tyli 0:9d7b581da110 51 to();
tyli 0:9d7b581da110 52 to();
tyli 0:9d7b581da110 53 to();
tyli 0:9d7b581da110 54 to();
tyli 0:9d7b581da110 55 wait(2.0*M);
tyli 0:9d7b581da110 56 }
tyli 0:9d7b581da110 57
tyli 0:9d7b581da110 58 void five()
tyli 0:9d7b581da110 59 {
tyli 0:9d7b581da110 60 to();
tyli 0:9d7b581da110 61 to();
tyli 0:9d7b581da110 62 to();
tyli 0:9d7b581da110 63 to();
tyli 0:9d7b581da110 64 to();
tyli 0:9d7b581da110 65 wait(2.0*M);
tyli 0:9d7b581da110 66 }
tyli 0:9d7b581da110 67
tyli 0:9d7b581da110 68 void six()
tyli 0:9d7b581da110 69 {
tyli 0:9d7b581da110 70 tsu();
tyli 0:9d7b581da110 71 wait(2.0*M);
tyli 0:9d7b581da110 72 }
tyli 0:9d7b581da110 73
tyli 0:9d7b581da110 74 void seven()
tyli 0:9d7b581da110 75 {
tyli 0:9d7b581da110 76 tsu();
tyli 0:9d7b581da110 77 tsu();
tyli 0:9d7b581da110 78 wait(2.0*M);
tyli 0:9d7b581da110 79 }
tyli 0:9d7b581da110 80
tyli 0:9d7b581da110 81 void eight()
tyli 0:9d7b581da110 82 {
tyli 0:9d7b581da110 83 tsu();
tyli 0:9d7b581da110 84 tsu();
tyli 0:9d7b581da110 85 tsu();
tyli 0:9d7b581da110 86 wait(2.0*M);
tyli 0:9d7b581da110 87 }
tyli 0:9d7b581da110 88
tyli 0:9d7b581da110 89 void nine()
tyli 0:9d7b581da110 90 {
tyli 0:9d7b581da110 91 tsu();
tyli 0:9d7b581da110 92 tsu();
tyli 0:9d7b581da110 93 tsu();
tyli 0:9d7b581da110 94 tsu();
tyli 0:9d7b581da110 95 wait(2.0*M);
tyli 0:9d7b581da110 96 }
tyli 0:9d7b581da110 97
tyli 0:9d7b581da110 98 void zero()
tyli 0:9d7b581da110 99 {
tyli 0:9d7b581da110 100 tsu();
tyli 0:9d7b581da110 101 tsu();
tyli 0:9d7b581da110 102 tsu();
tyli 0:9d7b581da110 103 tsu();
tyli 0:9d7b581da110 104 tsu();
tyli 0:9d7b581da110 105 wait(2.0*M);
tyli 0:9d7b581da110 106 }
tyli 0:9d7b581da110 107
tyli 0:9d7b581da110 108 void period()
tyli 0:9d7b581da110 109 {
tyli 0:9d7b581da110 110 to();
tyli 0:9d7b581da110 111 tsu();
tyli 0:9d7b581da110 112 to();
tyli 0:9d7b581da110 113 tsu();
tyli 0:9d7b581da110 114 to();
tyli 0:9d7b581da110 115 tsu();
tyli 0:9d7b581da110 116 wait(6.0*M);
tyli 0:9d7b581da110 117 }
tyli 0:9d7b581da110 118
tyli 0:9d7b581da110 119 void morse(int i)
tyli 0:9d7b581da110 120 {
tyli 0:9d7b581da110 121 if(i>=0) i=i%10;
tyli 0:9d7b581da110 122 switch(i%10)
tyli 0:9d7b581da110 123 {
tyli 0:9d7b581da110 124 case 1:
tyli 0:9d7b581da110 125 one();
tyli 0:9d7b581da110 126 break;
tyli 0:9d7b581da110 127 case 2:
tyli 0:9d7b581da110 128 two();
tyli 0:9d7b581da110 129 break;
tyli 0:9d7b581da110 130 case 3:
tyli 0:9d7b581da110 131 three();
tyli 0:9d7b581da110 132 break;
tyli 0:9d7b581da110 133 case 4:
tyli 0:9d7b581da110 134 four();
tyli 0:9d7b581da110 135 break;
tyli 0:9d7b581da110 136 case 5:
tyli 0:9d7b581da110 137 five();
tyli 0:9d7b581da110 138 break;
tyli 0:9d7b581da110 139 case 6:
tyli 0:9d7b581da110 140 six();
tyli 0:9d7b581da110 141 break;
tyli 0:9d7b581da110 142 case 7:
tyli 0:9d7b581da110 143 seven();
tyli 0:9d7b581da110 144 break;
tyli 0:9d7b581da110 145 case 8:
tyli 0:9d7b581da110 146 eight();
tyli 0:9d7b581da110 147 break;
tyli 0:9d7b581da110 148 case 9:
tyli 0:9d7b581da110 149 nine();
tyli 0:9d7b581da110 150 break;
tyli 0:9d7b581da110 151 case 0:
tyli 0:9d7b581da110 152 zero();
tyli 0:9d7b581da110 153 break;
tyli 0:9d7b581da110 154 default:
tyli 0:9d7b581da110 155 period();
tyli 0:9d7b581da110 156 break;
tyli 0:9d7b581da110 157 }
tyli 0:9d7b581da110 158 }