![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Extra credits 2,3,4,5
Dependencies: mbed
main.cpp@0:332d2465356a, 2015-02-09 (annotated)
- Committer:
- psahay
- Date:
- Mon Feb 09 20:39:33 2015 +0000
- Revision:
- 0:332d2465356a
2345
Who changed what in which revision?
User | Revision | Line number | New 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 | } |