done
Dependencies: mbed
main.cpp@0:d8278eb58283, 2015-02-08 (annotated)
- Committer:
- jaredwil
- Date:
- Sun Feb 08 15:08:28 2015 +0000
- Revision:
- 0:d8278eb58283
Extra Credit 1 done;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jaredwil | 0:d8278eb58283 | 1 | #include "mbed.h" |
jaredwil | 0:d8278eb58283 | 2 | #include <map> |
jaredwil | 0:d8278eb58283 | 3 | #include <string> |
jaredwil | 0:d8278eb58283 | 4 | |
jaredwil | 0:d8278eb58283 | 5 | InterruptIn pound(p25); |
jaredwil | 0:d8278eb58283 | 6 | DigitalOut myled(LED1); |
jaredwil | 0:d8278eb58283 | 7 | DigitalOut dot(p20); |
jaredwil | 0:d8278eb58283 | 8 | DigitalOut dash(p19); |
jaredwil | 0:d8278eb58283 | 9 | DigitalOut buzz(p18); |
jaredwil | 0:d8278eb58283 | 10 | |
jaredwil | 0:d8278eb58283 | 11 | Timer t1; |
jaredwil | 0:d8278eb58283 | 12 | Timer t2; |
jaredwil | 0:d8278eb58283 | 13 | |
jaredwil | 0:d8278eb58283 | 14 | std::map<std::string, char> asciiMap; |
jaredwil | 0:d8278eb58283 | 15 | |
jaredwil | 0:d8278eb58283 | 16 | Serial pc(USBTX, USBRX); |
jaredwil | 0:d8278eb58283 | 17 | std::string curStr; |
jaredwil | 0:d8278eb58283 | 18 | |
jaredwil | 0:d8278eb58283 | 19 | int state = 0; |
jaredwil | 0:d8278eb58283 | 20 | |
jaredwil | 0:d8278eb58283 | 21 | void init(){ |
jaredwil | 0:d8278eb58283 | 22 | asciiMap[".-"]='a'; |
jaredwil | 0:d8278eb58283 | 23 | asciiMap["-..."]='b'; |
jaredwil | 0:d8278eb58283 | 24 | asciiMap["-.-."]='c'; |
jaredwil | 0:d8278eb58283 | 25 | asciiMap["-.."]='d'; |
jaredwil | 0:d8278eb58283 | 26 | asciiMap["."]='e'; |
jaredwil | 0:d8278eb58283 | 27 | asciiMap["..-."]='f'; |
jaredwil | 0:d8278eb58283 | 28 | asciiMap["--."]='g'; |
jaredwil | 0:d8278eb58283 | 29 | asciiMap["...."]='h'; |
jaredwil | 0:d8278eb58283 | 30 | asciiMap[".."]='i'; |
jaredwil | 0:d8278eb58283 | 31 | asciiMap[".---"]='j'; |
jaredwil | 0:d8278eb58283 | 32 | asciiMap["-.-"]='k'; |
jaredwil | 0:d8278eb58283 | 33 | asciiMap[".-.."]='l'; |
jaredwil | 0:d8278eb58283 | 34 | asciiMap["--"]='m'; |
jaredwil | 0:d8278eb58283 | 35 | asciiMap["-."]='n'; |
jaredwil | 0:d8278eb58283 | 36 | asciiMap["---"]='o'; |
jaredwil | 0:d8278eb58283 | 37 | asciiMap[".--."]='p'; |
jaredwil | 0:d8278eb58283 | 38 | asciiMap["--.-"]='q'; |
jaredwil | 0:d8278eb58283 | 39 | asciiMap[".-."]='r'; |
jaredwil | 0:d8278eb58283 | 40 | asciiMap["..."]='s'; |
jaredwil | 0:d8278eb58283 | 41 | asciiMap["-"]='t'; |
jaredwil | 0:d8278eb58283 | 42 | asciiMap["..-"]='u'; |
jaredwil | 0:d8278eb58283 | 43 | asciiMap["...-"]='v'; |
jaredwil | 0:d8278eb58283 | 44 | asciiMap[".--"]='w'; |
jaredwil | 0:d8278eb58283 | 45 | asciiMap["-..-"]='x'; |
jaredwil | 0:d8278eb58283 | 46 | asciiMap["-.--"]='y'; |
jaredwil | 0:d8278eb58283 | 47 | asciiMap["--.."]='z'; |
jaredwil | 0:d8278eb58283 | 48 | asciiMap[".----"]='1'; |
jaredwil | 0:d8278eb58283 | 49 | asciiMap["..---"]='2'; |
jaredwil | 0:d8278eb58283 | 50 | asciiMap["...--"]='3'; |
jaredwil | 0:d8278eb58283 | 51 | asciiMap["....-"]='4'; |
jaredwil | 0:d8278eb58283 | 52 | asciiMap["....."]='5'; |
jaredwil | 0:d8278eb58283 | 53 | asciiMap["-...."]='6'; |
jaredwil | 0:d8278eb58283 | 54 | asciiMap["--..."]='7'; |
jaredwil | 0:d8278eb58283 | 55 | asciiMap["---.."]='8'; |
jaredwil | 0:d8278eb58283 | 56 | asciiMap["----."]='9'; |
jaredwil | 0:d8278eb58283 | 57 | asciiMap["-----"]='0'; |
jaredwil | 0:d8278eb58283 | 58 | } |
jaredwil | 0:d8278eb58283 | 59 | |
jaredwil | 0:d8278eb58283 | 60 | void pPress () { |
jaredwil | 0:d8278eb58283 | 61 | t2.stop(); |
jaredwil | 0:d8278eb58283 | 62 | |
jaredwil | 0:d8278eb58283 | 63 | t1.start(); |
jaredwil | 0:d8278eb58283 | 64 | myled = 1; |
jaredwil | 0:d8278eb58283 | 65 | buzz = 0; |
jaredwil | 0:d8278eb58283 | 66 | |
jaredwil | 0:d8278eb58283 | 67 | } |
jaredwil | 0:d8278eb58283 | 68 | void pRelease() { |
jaredwil | 0:d8278eb58283 | 69 | t1.stop(); |
jaredwil | 0:d8278eb58283 | 70 | if(t1.read_ms() > 30 && t1.read_ms() <= 200){ |
jaredwil | 0:d8278eb58283 | 71 | dot = 0; |
jaredwil | 0:d8278eb58283 | 72 | buzz =0; |
jaredwil | 0:d8278eb58283 | 73 | curStr = curStr + "."; |
jaredwil | 0:d8278eb58283 | 74 | //pc.printf("."); |
jaredwil | 0:d8278eb58283 | 75 | } |
jaredwil | 0:d8278eb58283 | 76 | else if (t1.read_ms() > 200) { |
jaredwil | 0:d8278eb58283 | 77 | //dash= 0; |
jaredwil | 0:d8278eb58283 | 78 | //buzz = 0; |
jaredwil | 0:d8278eb58283 | 79 | curStr = curStr + "-"; |
jaredwil | 0:d8278eb58283 | 80 | //pc.printf("-"); |
jaredwil | 0:d8278eb58283 | 81 | } |
jaredwil | 0:d8278eb58283 | 82 | wait(0.1); |
jaredwil | 0:d8278eb58283 | 83 | t1.reset(); |
jaredwil | 0:d8278eb58283 | 84 | t2.reset(); |
jaredwil | 0:d8278eb58283 | 85 | state = 1; |
jaredwil | 0:d8278eb58283 | 86 | |
jaredwil | 0:d8278eb58283 | 87 | dot = 1; |
jaredwil | 0:d8278eb58283 | 88 | buzz = 1; |
jaredwil | 0:d8278eb58283 | 89 | //dash = 1; |
jaredwil | 0:d8278eb58283 | 90 | myled = 0; |
jaredwil | 0:d8278eb58283 | 91 | |
jaredwil | 0:d8278eb58283 | 92 | t2.start(); |
jaredwil | 0:d8278eb58283 | 93 | } |
jaredwil | 0:d8278eb58283 | 94 | int main() { |
jaredwil | 0:d8278eb58283 | 95 | init(); |
jaredwil | 0:d8278eb58283 | 96 | dot=1; |
jaredwil | 0:d8278eb58283 | 97 | dash=1; |
jaredwil | 0:d8278eb58283 | 98 | buzz = 1; |
jaredwil | 0:d8278eb58283 | 99 | myled = 0; |
jaredwil | 0:d8278eb58283 | 100 | pound.rise(&pPress); |
jaredwil | 0:d8278eb58283 | 101 | pound.fall(&pRelease); |
jaredwil | 0:d8278eb58283 | 102 | t2.start(); |
jaredwil | 0:d8278eb58283 | 103 | while(1) { |
jaredwil | 0:d8278eb58283 | 104 | if(t1.read_ms()> 200) { |
jaredwil | 0:d8278eb58283 | 105 | dash = 0; |
jaredwil | 0:d8278eb58283 | 106 | buzz = 0; |
jaredwil | 0:d8278eb58283 | 107 | wait(0.1); |
jaredwil | 0:d8278eb58283 | 108 | dash = 1; |
jaredwil | 0:d8278eb58283 | 109 | buzz =1; |
jaredwil | 0:d8278eb58283 | 110 | } |
jaredwil | 0:d8278eb58283 | 111 | char c; |
jaredwil | 0:d8278eb58283 | 112 | if(t2.read_ms() > 400 && state ==1) { |
jaredwil | 0:d8278eb58283 | 113 | dot = 1; |
jaredwil | 0:d8278eb58283 | 114 | dash= 1; |
jaredwil | 0:d8278eb58283 | 115 | buzz = 1; |
jaredwil | 0:d8278eb58283 | 116 | c = asciiMap[curStr]; |
jaredwil | 0:d8278eb58283 | 117 | pc.printf("%s : %c",curStr,c); |
jaredwil | 0:d8278eb58283 | 118 | curStr.clear(); |
jaredwil | 0:d8278eb58283 | 119 | pc.printf(" "); |
jaredwil | 0:d8278eb58283 | 120 | state =0; |
jaredwil | 0:d8278eb58283 | 121 | //pc.printf("%s",curStr); |
jaredwil | 0:d8278eb58283 | 122 | } |
jaredwil | 0:d8278eb58283 | 123 | } |
jaredwil | 0:d8278eb58283 | 124 | } |