done

Dependencies:   mbed

Committer:
jaredwil
Date:
Sun Feb 08 15:08:28 2015 +0000
Revision:
0:d8278eb58283
Extra Credit 1 done;

Who changed what in which revision?

UserRevisionLine numberNew 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 }