Extra credits 2,3,4,5

Dependencies:   mbed

Committer:
psahay
Date:
Mon Feb 09 20:39:33 2015 +0000
Revision:
0:332d2465356a
2345

Who changed what in which revision?

UserRevisionLine numberNew contents of line
psahay 0:332d2465356a 1 #include "mbed.h"
psahay 0:332d2465356a 2 #include <map>
psahay 0:332d2465356a 3 #include <string>
psahay 0:332d2465356a 4
psahay 0:332d2465356a 5 InterruptIn pound(p25);
psahay 0:332d2465356a 6 InterruptIn ldr(p16);
psahay 0:332d2465356a 7
psahay 0:332d2465356a 8 DigitalOut myled(LED1);
psahay 0:332d2465356a 9 DigitalOut dot(p20);
psahay 0:332d2465356a 10 DigitalOut dash(p19);
psahay 0:332d2465356a 11 DigitalOut buzz(p18);
psahay 0:332d2465356a 12 DigitalOut newled(p15);
psahay 0:332d2465356a 13
psahay 0:332d2465356a 14 Timer t1;
psahay 0:332d2465356a 15 Timer t2;
psahay 0:332d2465356a 16 Timer t3;
psahay 0:332d2465356a 17
psahay 0:332d2465356a 18 std::map<std::string, char> asciiMap;
psahay 0:332d2465356a 19
psahay 0:332d2465356a 20 Serial pc(USBTX, USBRX);
psahay 0:332d2465356a 21 std::string curStr;
psahay 0:332d2465356a 22
psahay 0:332d2465356a 23 int state = 0;
psahay 0:332d2465356a 24 int spacestate =0;
psahay 0:332d2465356a 25
psahay 0:332d2465356a 26 void init(){
psahay 0:332d2465356a 27 asciiMap[".-"]='a';
psahay 0:332d2465356a 28 asciiMap["-..."]='b';
psahay 0:332d2465356a 29 asciiMap["-.-."]='c';
psahay 0:332d2465356a 30 asciiMap["-.."]='d';
psahay 0:332d2465356a 31 asciiMap["."]='e';
psahay 0:332d2465356a 32 asciiMap["..-."]='f';
psahay 0:332d2465356a 33 asciiMap["--."]='g';
psahay 0:332d2465356a 34 asciiMap["...."]='h';
psahay 0:332d2465356a 35 asciiMap[".."]='i';
psahay 0:332d2465356a 36 asciiMap[".---"]='j';
psahay 0:332d2465356a 37 asciiMap["-.-"]='k';
psahay 0:332d2465356a 38 asciiMap[".-.."]='l';
psahay 0:332d2465356a 39 asciiMap["--"]='m';
psahay 0:332d2465356a 40 asciiMap["-."]='n';
psahay 0:332d2465356a 41 asciiMap["---"]='o';
psahay 0:332d2465356a 42 asciiMap[".--."]='p';
psahay 0:332d2465356a 43 asciiMap["--.-"]='q';
psahay 0:332d2465356a 44 asciiMap[".-."]='r';
psahay 0:332d2465356a 45 asciiMap["..."]='s';
psahay 0:332d2465356a 46 asciiMap["-"]='t';
psahay 0:332d2465356a 47 asciiMap["..-"]='u';
psahay 0:332d2465356a 48 asciiMap["...-"]='v';
psahay 0:332d2465356a 49 asciiMap[".--"]='w';
psahay 0:332d2465356a 50 asciiMap["-..-"]='x';
psahay 0:332d2465356a 51 asciiMap["-.--"]='y';
psahay 0:332d2465356a 52 asciiMap["--.."]='z';
psahay 0:332d2465356a 53 asciiMap[".----"]='1';
psahay 0:332d2465356a 54 asciiMap["..---"]='2';
psahay 0:332d2465356a 55 asciiMap["...--"]='3';
psahay 0:332d2465356a 56 asciiMap["....-"]='4';
psahay 0:332d2465356a 57 asciiMap["....."]='5';
psahay 0:332d2465356a 58 asciiMap["-...."]='6';
psahay 0:332d2465356a 59 asciiMap["--..."]='7';
psahay 0:332d2465356a 60 asciiMap["---.."]='8';
psahay 0:332d2465356a 61 asciiMap["----."]='9';
psahay 0:332d2465356a 62 asciiMap["-----"]='0';
psahay 0:332d2465356a 63 }
psahay 0:332d2465356a 64
psahay 0:332d2465356a 65 void ldrON() {
psahay 0:332d2465356a 66 t2.stop();
psahay 0:332d2465356a 67
psahay 0:332d2465356a 68 t3.start();
psahay 0:332d2465356a 69 //pc.printf(" ldr on ");
psahay 0:332d2465356a 70
psahay 0:332d2465356a 71 }
psahay 0:332d2465356a 72
psahay 0:332d2465356a 73 void ldrOFF() {
psahay 0:332d2465356a 74 t3.stop();
psahay 0:332d2465356a 75 buzz = 1;
psahay 0:332d2465356a 76 wait(t3.read());
psahay 0:332d2465356a 77 buzz = 0;
psahay 0:332d2465356a 78 if(t3.read_ms() > 30 && t3.read_ms() <= 200){
psahay 0:332d2465356a 79 dot = 0;
psahay 0:332d2465356a 80 //buzz =0;
psahay 0:332d2465356a 81 curStr = curStr + ".";
psahay 0:332d2465356a 82 //pc.printf(".");
psahay 0:332d2465356a 83 }
psahay 0:332d2465356a 84 else if (t3.read_ms() > 200) {
psahay 0:332d2465356a 85 //dash= 0;
psahay 0:332d2465356a 86 //buzz = 0;
psahay 0:332d2465356a 87 curStr = curStr + "-";
psahay 0:332d2465356a 88 //pc.printf("-");
psahay 0:332d2465356a 89 }
psahay 0:332d2465356a 90 wait(0.1);
psahay 0:332d2465356a 91
psahay 0:332d2465356a 92 dot =1;
psahay 0:332d2465356a 93
psahay 0:332d2465356a 94 t3.reset();
psahay 0:332d2465356a 95 t2.reset();
psahay 0:332d2465356a 96
psahay 0:332d2465356a 97 t2.start();
psahay 0:332d2465356a 98 }
psahay 0:332d2465356a 99
psahay 0:332d2465356a 100 void pPress () {
psahay 0:332d2465356a 101 //t2.stop();
psahay 0:332d2465356a 102
psahay 0:332d2465356a 103 t1.start();
psahay 0:332d2465356a 104 myled = 1;
psahay 0:332d2465356a 105 newled = 0;
psahay 0:332d2465356a 106 //buzz = 1;
psahay 0:332d2465356a 107
psahay 0:332d2465356a 108 }
psahay 0:332d2465356a 109 void pRelease() {
psahay 0:332d2465356a 110 t1.stop();
psahay 0:332d2465356a 111 /*if(t1.read_ms() > 30 && t1.read_ms() <= 200){
psahay 0:332d2465356a 112 dot = 0;
psahay 0:332d2465356a 113 //buzz =0;
psahay 0:332d2465356a 114 curStr = curStr + ".";
psahay 0:332d2465356a 115 //pc.printf(".");
psahay 0:332d2465356a 116 }
psahay 0:332d2465356a 117 else if (t1.read_ms() > 200) {
psahay 0:332d2465356a 118 //dash= 0;
psahay 0:332d2465356a 119 //buzz = 0;
psahay 0:332d2465356a 120 curStr = curStr + "-";
psahay 0:332d2465356a 121 //pc.printf("-");
psahay 0:332d2465356a 122 }
psahay 0:332d2465356a 123 wait(0.1);
psahay 0:332d2465356a 124 */
psahay 0:332d2465356a 125 t1.reset();
psahay 0:332d2465356a 126 //t2.reset();
psahay 0:332d2465356a 127 state = 1;
psahay 0:332d2465356a 128
psahay 0:332d2465356a 129 //dot = 1;
psahay 0:332d2465356a 130 //buzz = 0;
psahay 0:332d2465356a 131 //dash = 1;
psahay 0:332d2465356a 132 myled = 0;
psahay 0:332d2465356a 133 newled = 1;
psahay 0:332d2465356a 134
psahay 0:332d2465356a 135 //t2.start();
psahay 0:332d2465356a 136 }
psahay 0:332d2465356a 137 int main() {
psahay 0:332d2465356a 138 init();
psahay 0:332d2465356a 139
psahay 0:332d2465356a 140 dot=1;
psahay 0:332d2465356a 141 dash=1;
psahay 0:332d2465356a 142 buzz = 0;
psahay 0:332d2465356a 143 myled = 0;
psahay 0:332d2465356a 144 newled = 1;
psahay 0:332d2465356a 145
psahay 0:332d2465356a 146 pound.rise(&pPress);
psahay 0:332d2465356a 147 pound.fall(&pRelease);
psahay 0:332d2465356a 148
psahay 0:332d2465356a 149 ldr.rise(&ldrON);
psahay 0:332d2465356a 150 ldr.fall(&ldrOFF);
psahay 0:332d2465356a 151
psahay 0:332d2465356a 152 t2.start();
psahay 0:332d2465356a 153 while(1) {
psahay 0:332d2465356a 154 if(t3.read_ms()> 200) {
psahay 0:332d2465356a 155 dash = 0;
psahay 0:332d2465356a 156 //buzz = 0;
psahay 0:332d2465356a 157 wait(0.1);
psahay 0:332d2465356a 158 dash = 1;
psahay 0:332d2465356a 159 //buzz =1;
psahay 0:332d2465356a 160 }
psahay 0:332d2465356a 161 char c;
psahay 0:332d2465356a 162 if(t2.read_ms() > 400 && state ==1) {
psahay 0:332d2465356a 163 dot = 1;
psahay 0:332d2465356a 164 dash= 1;
psahay 0:332d2465356a 165 spacestate = 1;
psahay 0:332d2465356a 166 //buzz = 1;
psahay 0:332d2465356a 167 c = asciiMap[curStr];
psahay 0:332d2465356a 168 pc.printf("%c",c);
psahay 0:332d2465356a 169 curStr.clear();
psahay 0:332d2465356a 170 //pc.printf(" ");
psahay 0:332d2465356a 171 state =0;
psahay 0:332d2465356a 172 //pc.printf("%s",curStr);
psahay 0:332d2465356a 173 }
psahay 0:332d2465356a 174 if(spacestate == 1 && t2.read_ms() > 5000){
psahay 0:332d2465356a 175 pc.printf(" ");
psahay 0:332d2465356a 176 spacestate =0;
psahay 0:332d2465356a 177 }
psahay 0:332d2465356a 178 }
psahay 0:332d2465356a 179 }