Blue LED matrix (8x16) program. Gets text string through bluetooth and displays it on led matrix. Also has a clock function- get system time from a phone through bluetooth and enters clock mode. In clock mode it acts as a clock showing hours and minutes and blinking led every second. Clock mode can be broken if a text string is received through bluetooth.
Dependencies: mbed
text.cpp
00001 #include "text.h" 00002 #include "mbed.h" 00003 #include "letters.h" 00004 00005 text::text(): pc(USBTX, USBRX), local("local"){ 00006 }; 00007 00008 void text::generate(string input){ 00009 stringLength = input.length(); 00010 if (stringLength == 0) return; 00011 pc.printf("\r\nStarting generation, string length: %i", stringLength); 00012 fp = fopen("/local/out.txt", "w"); 00013 pc.printf("\r\nOpened a text file out.txt"); 00014 calcLength(input); 00015 fprintf(fp, "%i\r\n", length); 00016 for (int i = 0; i < 16; i++){ 00017 fprintf(fp, "%02x\r\n", 0x00); 00018 } 00019 for (int i = 0; i < stringLength; i++){ 00020 pc.printf("\r\nTaking letter "); 00021 pc.putc(input.at(i)); 00022 letters(input.at(i)); 00023 pc.printf("\r\nDone with "); 00024 pc.putc(input.at(i)); 00025 tempCheck(); 00026 for (int j = 7; j >= (8 - letSize); j--){ 00027 uint8_t hex = 0; 00028 for (int g = 7; g >= 0; g--){ 00029 //fprintf(fp, "%i", ((temp[g] & (1 << j)) >> j)); 00030 hex |= (((temp[g] & (1 << j)) >> j) << g); 00031 } 00032 fprintf(fp,"%02x\r\n", hex); 00033 } 00034 fprintf(fp, "%02x\r\n", 0x00); 00035 } 00036 for (int i = 0; i < 15; i++){ 00037 fprintf(fp, "%02x\r\n", 0x00); 00038 } 00039 pc.printf("\r\n%02x", 0x3e); 00040 fprintf(fp, "%02x\r\n", 0x3e); 00041 fclose(fp); 00042 } 00043 00044 void text::letters(char take){ 00045 00046 switch (take){ 00047 case 'A': 00048 letSize = 4; 00049 memcpy(temp, letterA, sizeof(letterA)); 00050 break; 00051 case 'B': 00052 letSize = 4; 00053 memcpy(temp, letterB, sizeof(letterB)); 00054 break; 00055 case 'C': 00056 letSize = 4; 00057 memcpy(temp, letterC, sizeof(letterC)); 00058 break; 00059 case 'D': 00060 letSize = 4; 00061 memcpy(temp, letterD, sizeof(letterD)); 00062 break; 00063 case 'E': 00064 letSize = 4; 00065 memcpy(temp, letterE, sizeof(letterE)); 00066 break; 00067 case 'F': 00068 letSize = 4; 00069 memcpy(temp, letterF, sizeof(letterF)); 00070 break; 00071 case 'G': 00072 letSize = 4; 00073 memcpy(temp, letterG, sizeof(letterG)); 00074 break; 00075 case 'H': 00076 letSize = 4; 00077 memcpy(temp, letterH, sizeof(letterH)); 00078 break; 00079 case 'I': 00080 letSize = 1; 00081 memcpy(temp, letterI, sizeof(letterI)); 00082 break; 00083 case 'J': 00084 letSize = 3; 00085 memcpy(temp, letterJ, sizeof(letterJ)); 00086 break; 00087 case 'K': 00088 letSize = 4; 00089 memcpy(temp, letterK, sizeof(letterK)); 00090 break; 00091 case 'L': 00092 letSize = 4; 00093 memcpy(temp, letterL, sizeof(letterL)); 00094 break; 00095 case 'M': 00096 letSize = 5; 00097 memcpy(temp, letterM, sizeof(letterM)); 00098 break; 00099 case 'N': 00100 letSize = 4; 00101 memcpy(temp, letterN, sizeof(letterN)); 00102 break; 00103 case 'O': 00104 letSize = 4; 00105 memcpy(temp, letterO, sizeof(letterO)); 00106 break; 00107 case 'P': 00108 letSize = 4; 00109 memcpy(temp, letterP, sizeof(letterP)); 00110 break; 00111 case 'Q': 00112 letSize = 5; 00113 memcpy(temp, letterQ, sizeof(letterQ)); 00114 break; 00115 case 'R': 00116 letSize = 4; 00117 memcpy(temp, letterR, sizeof(letterR)); 00118 break; 00119 case 'S': 00120 letSize = 4; 00121 memcpy(temp, letterS, sizeof(letterS)); 00122 break; 00123 case 'T': 00124 letSize = 5; 00125 memcpy(temp, letterT, sizeof(letterT)); 00126 break; 00127 case 'U': 00128 letSize = 4; 00129 memcpy(temp, letterU, sizeof(letterU)); 00130 break; 00131 case 'V': 00132 letSize = 5; 00133 memcpy(temp, letterV, sizeof(letterV)); 00134 break; 00135 case 'W': 00136 letSize = 5; 00137 memcpy(temp, letterW, sizeof(letterW)); 00138 break; 00139 case 'X': 00140 letSize = 5; 00141 memcpy(temp, letterX, sizeof(letterX)); 00142 break; 00143 case 'Y': 00144 letSize = 5; 00145 memcpy(temp, letterY, sizeof(letterY)); 00146 break; 00147 case 'Z': 00148 letSize = 4; 00149 memcpy(temp, letterZ, sizeof(letterZ)); 00150 break; 00151 case 'a': 00152 letSize = 4; 00153 memcpy(temp, lettera, sizeof(lettera)); 00154 break; 00155 case 'b': 00156 letSize = 4; 00157 memcpy(temp, letterb, sizeof(letterb)); 00158 break; 00159 case 'c': 00160 letSize = 4; 00161 memcpy(temp, letterc, sizeof(letterc)); 00162 break; 00163 case 'd': 00164 letSize = 4; 00165 memcpy(temp, letterd, sizeof(letterd)); 00166 break; 00167 case 'e': 00168 letSize = 4; 00169 memcpy(temp, lettere, sizeof(lettere)); 00170 break; 00171 case 'f': 00172 letSize = 4; 00173 memcpy(temp, letterf, sizeof(letterf)); 00174 break; 00175 case 'g': 00176 letSize = 4; 00177 memcpy(temp, letterg, sizeof(letterg)); 00178 break; 00179 case 'h': 00180 letSize = 4; 00181 memcpy(temp, letterh, sizeof(letterh)); 00182 break; 00183 case 'i': 00184 letSize = 1; 00185 memcpy(temp, letteri, sizeof(letteri)); 00186 break; 00187 case 'j': 00188 letSize = 3; 00189 memcpy(temp, letterj, sizeof(letterj)); 00190 break; 00191 case 'k': 00192 letSize = 4; 00193 memcpy(temp, letterk, sizeof(letterk)); 00194 break; 00195 case 'l': 00196 letSize = 1; 00197 memcpy(temp, letterl, sizeof(letterl)); 00198 break; 00199 case 'm': 00200 letSize = 5; 00201 memcpy(temp, letterm, sizeof(letterm)); 00202 break; 00203 case 'n': 00204 letSize = 4; 00205 memcpy(temp, lettern, sizeof(lettern)); 00206 break; 00207 case 'o': 00208 letSize = 4; 00209 memcpy(temp, lettero, sizeof(lettero)); 00210 break; 00211 case 'p': 00212 letSize = 4; 00213 memcpy(temp, letterp, sizeof(letterp)); 00214 break; 00215 case 'q': 00216 letSize = 4; 00217 memcpy(temp, letterq, sizeof(letterq)); 00218 break; 00219 case 'r': 00220 letSize = 4; 00221 memcpy(temp, letterr, sizeof(letterr)); 00222 break; 00223 case 's': 00224 letSize = 4; 00225 memcpy(temp, letter_s, sizeof(letter_s)); 00226 break; 00227 case 't': 00228 letSize = 4; 00229 memcpy(temp, lettert, sizeof(lettert)); 00230 break; 00231 case 'u': 00232 letSize = 4; 00233 memcpy(temp, letteru, sizeof(letteru)); 00234 break; 00235 case 'v': 00236 letSize = 5; 00237 memcpy(temp, letterv, sizeof(letterv)); 00238 break; 00239 case 'w': 00240 letSize = 5; 00241 memcpy(temp, letterw, sizeof(letterw)); 00242 break; 00243 case 'x': 00244 letSize = 4; 00245 memcpy(temp, letterx, sizeof(letterx)); 00246 break; 00247 case 'y': 00248 letSize = 4; 00249 memcpy(temp, lettery, sizeof(lettery)); 00250 break; 00251 case 'z': 00252 letSize = 4; 00253 memcpy(temp, letterz, sizeof(letterz)); 00254 break; 00255 case ' ': 00256 letSize = 3; 00257 memcpy(temp, letterGap, sizeof(letterGap)); 00258 break; 00259 default : 00260 letSize = 1; 00261 memcpy(temp, letterDef, sizeof(letterDef)); 00262 } 00263 } 00264 00265 void text::tempCheck(){ 00266 pc.printf("\r\n"); 00267 for (int i = 0; i < 8; i++){ 00268 pc.printf("0x%02x ", temp[i]); 00269 } 00270 pc.printf("\r\n"); 00271 } 00272 00273 void text::calcLength(string input){ 00274 length = 0; 00275 for (int i = 0; i < stringLength; i++){ 00276 letters(input.at(i)); 00277 length += letSize + 1; 00278 } 00279 length += 31; 00280 }
Generated on Wed Jul 13 2022 22:58:20 by 1.7.2