Ishita Bose / Mbed 2 deprecated LightMorseCode

Dependencies:   TextLCD mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers MorseCode.cpp Source File

MorseCode.cpp

00001 #include "mbed.h"
00002 #include "TextLCD.h"
00003 
00004 TextLCD lcd(p14, p16, p17, p18, p19, p20); 
00005 
00006 int Value = 0;
00007 int First = 1;
00008 int printSignal = 0;
00009 int clearSignal = 0;
00010 
00011 void printChar(int val) {
00012     switch(val) {
00013     case 0:
00014         break;
00015     case 184:
00016         lcd.putc('a');
00017         break;
00018     case 3752:
00019         lcd.putc('b');
00020         break;
00021     case 15080:
00022         lcd.putc('c');
00023         break;
00024     case 936:
00025         lcd.putc('d');
00026         break;
00027     case 8:
00028         lcd.putc('e');
00029         break;
00030     case 2792:
00031         lcd.putc('f');
00032         break;
00033     case 3816:
00034         lcd.putc('g');
00035         break;
00036     case 680:
00037         lcd.putc('h');
00038         break;
00039     case 40:
00040         lcd.putc('i');
00041         break;
00042     case 48056:
00043         lcd.putc('j');
00044         break;
00045     case 3768:
00046         lcd.putc('k');
00047         break;
00048     case 2984:
00049         lcd.putc('l');
00050         break;
00051     case 952:
00052         lcd.putc('m');
00053         break;
00054     case 232:
00055         lcd.putc('n');
00056         break;
00057     case 15288:
00058         lcd.putc('o');
00059         break;
00060     case 12008:
00061         lcd.putc('p');
00062         break;
00063     case 61112:
00064         lcd.putc('q');
00065         break;
00066     case 744:
00067         lcd.putc('r');
00068         break;
00069     case 168:
00070         lcd.putc('s');
00071         break;
00072     case 56:
00073         lcd.putc('t');
00074         break;
00075     case 696:
00076         lcd.putc('u');
00077         break;
00078     case 2744:
00079         lcd.putc('v');
00080         break;
00081     case 3000:
00082         lcd.putc('w');
00083         break;
00084     case 15032:
00085         lcd.putc('x');
00086         break;
00087     case 60344:
00088         lcd.putc('y');
00089         break;
00090     case 15272:
00091         lcd.putc('z');
00092         break;
00093     }
00094 }
00095 
00096 void MorseCode(int tick) {
00097     if(tick) {
00098         printSignal = 0;
00099         clearSignal = 0;
00100         
00101         Value = Value << 1;
00102         Value += 1;
00103     }
00104     else {
00105         printSignal += 1;
00106         clearSignal += 1;
00107         
00108         Value = Value << 1;
00109     }
00110     
00111     if(First) {
00112         lcd.cls();
00113         First = 0;
00114     }
00115     
00116     //Prints character after 3 ticks
00117     if(printSignal == 3) {
00118         printChar(Value);
00119         printSignal = 0;
00120         Value = 0;
00121     }
00122     
00123     //Clears screen after 20 ticks
00124     if(clearSignal == 20) {
00125         lcd.cls();
00126         clearSignal = 0;
00127     }
00128 }