Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:dd9902e15aca, 2014-05-30 (annotated)
- Committer:
- bpalermo
- Date:
- Fri May 30 13:40:51 2014 +0000
- Revision:
- 0:dd9902e15aca
Release
Who changed what in which revision?
| User | Revision | Line number | New 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 | } |