Brent Palermo / Mbed 2 deprecated Nucleo_Morse

Dependencies:   mbed

Committer:
bpalermo
Date:
Fri May 30 13:40:51 2014 +0000
Revision:
0:dd9902e15aca
Release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bpalermo 0:dd9902e15aca 1 //Flashes a pattern of morse code on LED1 based on the input string
bpalermo 0:dd9902e15aca 2 //Change the "text" string to alter the message. Lower case, spaces, and numbers only.
bpalermo 0:dd9902e15aca 3 //Change the value of "t" to change the message speed.
bpalermo 0:dd9902e15aca 4
bpalermo 0:dd9902e15aca 5 #include "mbed.h"
bpalermo 0:dd9902e15aca 6 #include "string"
bpalermo 0:dd9902e15aca 7
bpalermo 0:dd9902e15aca 8 DigitalOut led(LED1);
bpalermo 0:dd9902e15aca 9
bpalermo 0:dd9902e15aca 10 int main()
bpalermo 0:dd9902e15aca 11 {
bpalermo 0:dd9902e15aca 12 while(1) {
bpalermo 0:dd9902e15aca 13 //Create a blank string for morse code
bpalermo 0:dd9902e15aca 14 string morse;
bpalermo 0:dd9902e15aca 15
bpalermo 0:dd9902e15aca 16 //Record the message into a string
bpalermo 0:dd9902e15aca 17 string text ("test test 0123456789");
bpalermo 0:dd9902e15aca 18
bpalermo 0:dd9902e15aca 19 //Set the morse code blink time constant
bpalermo 0:dd9902e15aca 20 double t = 0.1;
bpalermo 0:dd9902e15aca 21
bpalermo 0:dd9902e15aca 22 //Cut the string of letters into a string of morse code
bpalermo 0:dd9902e15aca 23 for (int i=0; i<text.length(); ++i) {
bpalermo 0:dd9902e15aca 24 switch (text.at(i)) {
bpalermo 0:dd9902e15aca 25 case 'a':
bpalermo 0:dd9902e15aca 26 morse.append(".-");
bpalermo 0:dd9902e15aca 27 break;
bpalermo 0:dd9902e15aca 28 case 'b':
bpalermo 0:dd9902e15aca 29 morse.append("-...");
bpalermo 0:dd9902e15aca 30 break;
bpalermo 0:dd9902e15aca 31 case 'c':
bpalermo 0:dd9902e15aca 32 morse.append("-.-.");
bpalermo 0:dd9902e15aca 33 break;
bpalermo 0:dd9902e15aca 34 case 'd':
bpalermo 0:dd9902e15aca 35 morse.append("-..");
bpalermo 0:dd9902e15aca 36 break;
bpalermo 0:dd9902e15aca 37 case 'e':
bpalermo 0:dd9902e15aca 38 morse.append(".");
bpalermo 0:dd9902e15aca 39 break;
bpalermo 0:dd9902e15aca 40 case 'f':
bpalermo 0:dd9902e15aca 41 morse.append("..-.");
bpalermo 0:dd9902e15aca 42 break;
bpalermo 0:dd9902e15aca 43 case 'g':
bpalermo 0:dd9902e15aca 44 morse.append("--.");
bpalermo 0:dd9902e15aca 45 break;
bpalermo 0:dd9902e15aca 46 case 'h':
bpalermo 0:dd9902e15aca 47 morse.append("....");
bpalermo 0:dd9902e15aca 48 break;
bpalermo 0:dd9902e15aca 49 case 'i':
bpalermo 0:dd9902e15aca 50 morse.append("..");
bpalermo 0:dd9902e15aca 51 break;
bpalermo 0:dd9902e15aca 52 case 'j':
bpalermo 0:dd9902e15aca 53 morse.append(".---");
bpalermo 0:dd9902e15aca 54 break;
bpalermo 0:dd9902e15aca 55 case 'k':
bpalermo 0:dd9902e15aca 56 morse.append("-.-");
bpalermo 0:dd9902e15aca 57 break;
bpalermo 0:dd9902e15aca 58 case 'l':
bpalermo 0:dd9902e15aca 59 morse.append(".-..");
bpalermo 0:dd9902e15aca 60 break;
bpalermo 0:dd9902e15aca 61 case 'm':
bpalermo 0:dd9902e15aca 62 morse.append("--");
bpalermo 0:dd9902e15aca 63 break;
bpalermo 0:dd9902e15aca 64 case 'n':
bpalermo 0:dd9902e15aca 65 morse.append("-.");
bpalermo 0:dd9902e15aca 66 break;
bpalermo 0:dd9902e15aca 67 case 'o':
bpalermo 0:dd9902e15aca 68 morse.append("---");
bpalermo 0:dd9902e15aca 69 break;
bpalermo 0:dd9902e15aca 70 case 'p':
bpalermo 0:dd9902e15aca 71 morse.append(".--.");
bpalermo 0:dd9902e15aca 72 break;
bpalermo 0:dd9902e15aca 73 case 'q':
bpalermo 0:dd9902e15aca 74 morse.append("--.-");
bpalermo 0:dd9902e15aca 75 break;
bpalermo 0:dd9902e15aca 76 case 'r':
bpalermo 0:dd9902e15aca 77 morse.append(".-.");
bpalermo 0:dd9902e15aca 78 break;
bpalermo 0:dd9902e15aca 79 case 's':
bpalermo 0:dd9902e15aca 80 morse.append("...");
bpalermo 0:dd9902e15aca 81 break;
bpalermo 0:dd9902e15aca 82 case 't':
bpalermo 0:dd9902e15aca 83 morse.append("-");
bpalermo 0:dd9902e15aca 84 break;
bpalermo 0:dd9902e15aca 85 case 'u':
bpalermo 0:dd9902e15aca 86 morse.append("..-");
bpalermo 0:dd9902e15aca 87 break;
bpalermo 0:dd9902e15aca 88 case 'v':
bpalermo 0:dd9902e15aca 89 morse.append("...-");
bpalermo 0:dd9902e15aca 90 break;
bpalermo 0:dd9902e15aca 91 case 'w':
bpalermo 0:dd9902e15aca 92 morse.append(".--");
bpalermo 0:dd9902e15aca 93 break;
bpalermo 0:dd9902e15aca 94 case 'x':
bpalermo 0:dd9902e15aca 95 morse.append("-..-");
bpalermo 0:dd9902e15aca 96 break;
bpalermo 0:dd9902e15aca 97 case 'y':
bpalermo 0:dd9902e15aca 98 morse.append("-.--");
bpalermo 0:dd9902e15aca 99 break;
bpalermo 0:dd9902e15aca 100 case 'z':
bpalermo 0:dd9902e15aca 101 morse.append("--..");
bpalermo 0:dd9902e15aca 102 break;
bpalermo 0:dd9902e15aca 103 case ' ':
bpalermo 0:dd9902e15aca 104 morse.append(" ");
bpalermo 0:dd9902e15aca 105 break;
bpalermo 0:dd9902e15aca 106 case '1':
bpalermo 0:dd9902e15aca 107 morse.append(".----");
bpalermo 0:dd9902e15aca 108 break;
bpalermo 0:dd9902e15aca 109 case '2':
bpalermo 0:dd9902e15aca 110 morse.append("..---");
bpalermo 0:dd9902e15aca 111 break;
bpalermo 0:dd9902e15aca 112 case '3':
bpalermo 0:dd9902e15aca 113 morse.append("...--");
bpalermo 0:dd9902e15aca 114 break;
bpalermo 0:dd9902e15aca 115 case '4':
bpalermo 0:dd9902e15aca 116 morse.append("....-");
bpalermo 0:dd9902e15aca 117 break;
bpalermo 0:dd9902e15aca 118 case '5':
bpalermo 0:dd9902e15aca 119 morse.append(".....");
bpalermo 0:dd9902e15aca 120 break;
bpalermo 0:dd9902e15aca 121 case '6':
bpalermo 0:dd9902e15aca 122 morse.append("-....");
bpalermo 0:dd9902e15aca 123 break;
bpalermo 0:dd9902e15aca 124 case '7':
bpalermo 0:dd9902e15aca 125 morse.append("--...");
bpalermo 0:dd9902e15aca 126 break;
bpalermo 0:dd9902e15aca 127 case '8':
bpalermo 0:dd9902e15aca 128 morse.append("---..");
bpalermo 0:dd9902e15aca 129 break;
bpalermo 0:dd9902e15aca 130 case '9':
bpalermo 0:dd9902e15aca 131 morse.append("----.");
bpalermo 0:dd9902e15aca 132 break;
bpalermo 0:dd9902e15aca 133 case '0':
bpalermo 0:dd9902e15aca 134 morse.append("-----");
bpalermo 0:dd9902e15aca 135 }
bpalermo 0:dd9902e15aca 136
bpalermo 0:dd9902e15aca 137 morse.append("_");
bpalermo 0:dd9902e15aca 138 }
bpalermo 0:dd9902e15aca 139
bpalermo 0:dd9902e15aca 140 //Blink the LED in morse code
bpalermo 0:dd9902e15aca 141 for (int j=0 ; j<morse.length() ; ++j) {
bpalermo 0:dd9902e15aca 142 switch (morse.at(j)) {
bpalermo 0:dd9902e15aca 143 case '.':
bpalermo 0:dd9902e15aca 144 led = 1;
bpalermo 0:dd9902e15aca 145 wait(t);
bpalermo 0:dd9902e15aca 146 led = 0;
bpalermo 0:dd9902e15aca 147 wait(t);
bpalermo 0:dd9902e15aca 148 break;
bpalermo 0:dd9902e15aca 149 case '-':
bpalermo 0:dd9902e15aca 150 led = 1;
bpalermo 0:dd9902e15aca 151 wait(3*t);
bpalermo 0:dd9902e15aca 152 led = 0;
bpalermo 0:dd9902e15aca 153 wait(t);
bpalermo 0:dd9902e15aca 154 break;
bpalermo 0:dd9902e15aca 155 case '_':
bpalermo 0:dd9902e15aca 156 wait(3*t);
bpalermo 0:dd9902e15aca 157 break;
bpalermo 0:dd9902e15aca 158 case ' ':
bpalermo 0:dd9902e15aca 159 wait(4*t);
bpalermo 0:dd9902e15aca 160 }
bpalermo 0:dd9902e15aca 161 }
bpalermo 0:dd9902e15aca 162
bpalermo 0:dd9902e15aca 163 //Wait 2 seconds before repeating the message
bpalermo 0:dd9902e15aca 164 wait(2);
bpalermo 0:dd9902e15aca 165 }
bpalermo 0:dd9902e15aca 166 }