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

Committer:
DaniusKalv
Date:
Sun Nov 02 11:25:00 2014 +0000
Revision:
9:ed7e8a6fc537
Parent:
8:f74b8d6f00d0
Child:
21:db8dadfd7d2a
Added lower case letters

Who changed what in which revision?

UserRevisionLine numberNew contents of line
DaniusKalv 2:3cc1e2dec7a2 1 #include "text.h"
DaniusKalv 2:3cc1e2dec7a2 2 #include "mbed.h"
DaniusKalv 7:ca5ed7936472 3 #include "letters.h"
DaniusKalv 2:3cc1e2dec7a2 4
DaniusKalv 3:35a47548d29d 5 text::text(): pc(USBTX, USBRX), local("local"){
DaniusKalv 2:3cc1e2dec7a2 6 };
DaniusKalv 2:3cc1e2dec7a2 7
DaniusKalv 2:3cc1e2dec7a2 8 void text::generate(string input){
DaniusKalv 2:3cc1e2dec7a2 9 stringLength = input.length();
DaniusKalv 6:76b89d8b62a0 10 if (stringLength == 0) return;
DaniusKalv 2:3cc1e2dec7a2 11 pc.printf("\r\nStarting generation, string length: %i", stringLength);
DaniusKalv 3:35a47548d29d 12 fp = fopen("/local/out.txt", "w");
DaniusKalv 2:3cc1e2dec7a2 13 pc.printf("\r\nOpened a text file out.txt");
DaniusKalv 2:3cc1e2dec7a2 14 calcLength(input);
DaniusKalv 2:3cc1e2dec7a2 15 fprintf(fp, "%i\r\n", length);
DaniusKalv 3:35a47548d29d 16 for (int i = 0; i < 16; i++){
DaniusKalv 3:35a47548d29d 17 fprintf(fp, "00000000\r\n");
DaniusKalv 3:35a47548d29d 18 }
DaniusKalv 2:3cc1e2dec7a2 19 for (int i = 0; i < stringLength; i++){
DaniusKalv 2:3cc1e2dec7a2 20 pc.printf("\r\nTaking letter ");
DaniusKalv 2:3cc1e2dec7a2 21 pc.putc(input.at(i));
DaniusKalv 2:3cc1e2dec7a2 22 letters(input.at(i));
DaniusKalv 2:3cc1e2dec7a2 23 pc.printf("\r\nDone with ");
DaniusKalv 2:3cc1e2dec7a2 24 pc.putc(input.at(i));
DaniusKalv 2:3cc1e2dec7a2 25 tempCheck();
DaniusKalv 9:ed7e8a6fc537 26 for (int j = 7; j >= (8 - letSize); j--){
DaniusKalv 9:ed7e8a6fc537 27 for (int g = 7; g >= 0; g--){
DaniusKalv 9:ed7e8a6fc537 28 fprintf(fp, "%i", ((temp[g] & (1 << j)) >> j));
DaniusKalv 2:3cc1e2dec7a2 29 }
DaniusKalv 2:3cc1e2dec7a2 30 fprintf(fp,"\r\n");
DaniusKalv 2:3cc1e2dec7a2 31 }
DaniusKalv 2:3cc1e2dec7a2 32 fprintf(fp, "00000000\r\n");
DaniusKalv 2:3cc1e2dec7a2 33 }
DaniusKalv 2:3cc1e2dec7a2 34 for (int i = 0; i < 15; i++){
DaniusKalv 2:3cc1e2dec7a2 35 fprintf(fp, "00000000\r\n");
DaniusKalv 2:3cc1e2dec7a2 36 }
DaniusKalv 2:3cc1e2dec7a2 37 fclose(fp);
DaniusKalv 2:3cc1e2dec7a2 38 }
DaniusKalv 2:3cc1e2dec7a2 39
DaniusKalv 2:3cc1e2dec7a2 40 void text::letters(char take){
DaniusKalv 7:ca5ed7936472 41
DaniusKalv 2:3cc1e2dec7a2 42 switch (take){
DaniusKalv 2:3cc1e2dec7a2 43 case 'A':
DaniusKalv 2:3cc1e2dec7a2 44 letSize = 4;
DaniusKalv 7:ca5ed7936472 45 memcpy(temp, letterA, sizeof(letterA));
DaniusKalv 2:3cc1e2dec7a2 46 break;
DaniusKalv 2:3cc1e2dec7a2 47 case 'B':
DaniusKalv 2:3cc1e2dec7a2 48 letSize = 4;
DaniusKalv 7:ca5ed7936472 49 memcpy(temp, letterB, sizeof(letterB));
DaniusKalv 2:3cc1e2dec7a2 50 break;
DaniusKalv 2:3cc1e2dec7a2 51 case 'C':
DaniusKalv 2:3cc1e2dec7a2 52 letSize = 4;
DaniusKalv 7:ca5ed7936472 53 memcpy(temp, letterC, sizeof(letterC));
DaniusKalv 2:3cc1e2dec7a2 54 break;
DaniusKalv 2:3cc1e2dec7a2 55 case 'D':
DaniusKalv 2:3cc1e2dec7a2 56 letSize = 4;
DaniusKalv 7:ca5ed7936472 57 memcpy(temp, letterD, sizeof(letterD));
DaniusKalv 2:3cc1e2dec7a2 58 break;
DaniusKalv 2:3cc1e2dec7a2 59 case 'E':
DaniusKalv 2:3cc1e2dec7a2 60 letSize = 4;
DaniusKalv 7:ca5ed7936472 61 memcpy(temp, letterE, sizeof(letterE));
DaniusKalv 2:3cc1e2dec7a2 62 break;
DaniusKalv 2:3cc1e2dec7a2 63 case 'F':
DaniusKalv 2:3cc1e2dec7a2 64 letSize = 4;
DaniusKalv 7:ca5ed7936472 65 memcpy(temp, letterF, sizeof(letterF));
DaniusKalv 2:3cc1e2dec7a2 66 break;
DaniusKalv 2:3cc1e2dec7a2 67 case 'G':
DaniusKalv 2:3cc1e2dec7a2 68 letSize = 4;
DaniusKalv 7:ca5ed7936472 69 memcpy(temp, letterG, sizeof(letterG));
DaniusKalv 2:3cc1e2dec7a2 70 break;
DaniusKalv 2:3cc1e2dec7a2 71 case 'H':
DaniusKalv 2:3cc1e2dec7a2 72 letSize = 4;
DaniusKalv 7:ca5ed7936472 73 memcpy(temp, letterH, sizeof(letterH));
DaniusKalv 2:3cc1e2dec7a2 74 break;
DaniusKalv 2:3cc1e2dec7a2 75 case 'I':
DaniusKalv 2:3cc1e2dec7a2 76 letSize = 1;
DaniusKalv 7:ca5ed7936472 77 memcpy(temp, letterI, sizeof(letterI));
DaniusKalv 2:3cc1e2dec7a2 78 break;
DaniusKalv 2:3cc1e2dec7a2 79 case 'J':
DaniusKalv 2:3cc1e2dec7a2 80 letSize = 3;
DaniusKalv 7:ca5ed7936472 81 memcpy(temp, letterJ, sizeof(letterJ));
DaniusKalv 2:3cc1e2dec7a2 82 break;
DaniusKalv 2:3cc1e2dec7a2 83 case 'K':
DaniusKalv 2:3cc1e2dec7a2 84 letSize = 4;
DaniusKalv 7:ca5ed7936472 85 memcpy(temp, letterK, sizeof(letterK));
DaniusKalv 2:3cc1e2dec7a2 86 break;
DaniusKalv 2:3cc1e2dec7a2 87 case 'L':
DaniusKalv 3:35a47548d29d 88 letSize = 4;
DaniusKalv 7:ca5ed7936472 89 memcpy(temp, letterL, sizeof(letterL));
DaniusKalv 2:3cc1e2dec7a2 90 break;
DaniusKalv 2:3cc1e2dec7a2 91 case 'M':
DaniusKalv 2:3cc1e2dec7a2 92 letSize = 5;
DaniusKalv 7:ca5ed7936472 93 memcpy(temp, letterM, sizeof(letterM));
DaniusKalv 2:3cc1e2dec7a2 94 break;
DaniusKalv 2:3cc1e2dec7a2 95 case 'N':
DaniusKalv 2:3cc1e2dec7a2 96 letSize = 4;
DaniusKalv 7:ca5ed7936472 97 memcpy(temp, letterN, sizeof(letterN));
DaniusKalv 2:3cc1e2dec7a2 98 break;
DaniusKalv 2:3cc1e2dec7a2 99 case 'O':
DaniusKalv 2:3cc1e2dec7a2 100 letSize = 4;
DaniusKalv 7:ca5ed7936472 101 memcpy(temp, letterO, sizeof(letterO));
DaniusKalv 2:3cc1e2dec7a2 102 break;
DaniusKalv 2:3cc1e2dec7a2 103 case 'P':
DaniusKalv 2:3cc1e2dec7a2 104 letSize = 4;
DaniusKalv 7:ca5ed7936472 105 memcpy(temp, letterP, sizeof(letterP));
DaniusKalv 2:3cc1e2dec7a2 106 break;
DaniusKalv 9:ed7e8a6fc537 107 case 'Q':
DaniusKalv 9:ed7e8a6fc537 108 letSize = 5;
DaniusKalv 9:ed7e8a6fc537 109 memcpy(temp, letterQ, sizeof(letterQ));
DaniusKalv 9:ed7e8a6fc537 110 break;
DaniusKalv 2:3cc1e2dec7a2 111 case 'R':
DaniusKalv 2:3cc1e2dec7a2 112 letSize = 4;
DaniusKalv 7:ca5ed7936472 113 memcpy(temp, letterR, sizeof(letterR));
DaniusKalv 2:3cc1e2dec7a2 114 break;
DaniusKalv 2:3cc1e2dec7a2 115 case 'S':
DaniusKalv 2:3cc1e2dec7a2 116 letSize = 4;
DaniusKalv 7:ca5ed7936472 117 memcpy(temp, letterS, sizeof(letterS));
DaniusKalv 2:3cc1e2dec7a2 118 break;
DaniusKalv 2:3cc1e2dec7a2 119 case 'T':
DaniusKalv 2:3cc1e2dec7a2 120 letSize = 5;
DaniusKalv 7:ca5ed7936472 121 memcpy(temp, letterT, sizeof(letterT));
DaniusKalv 2:3cc1e2dec7a2 122 break;
DaniusKalv 2:3cc1e2dec7a2 123 case 'U':
DaniusKalv 2:3cc1e2dec7a2 124 letSize = 4;
DaniusKalv 7:ca5ed7936472 125 memcpy(temp, letterU, sizeof(letterU));
DaniusKalv 2:3cc1e2dec7a2 126 break;
DaniusKalv 2:3cc1e2dec7a2 127 case 'V':
DaniusKalv 2:3cc1e2dec7a2 128 letSize = 5;
DaniusKalv 7:ca5ed7936472 129 memcpy(temp, letterV, sizeof(letterV));
DaniusKalv 2:3cc1e2dec7a2 130 break;
DaniusKalv 2:3cc1e2dec7a2 131 case 'W':
DaniusKalv 2:3cc1e2dec7a2 132 letSize = 5;
DaniusKalv 7:ca5ed7936472 133 memcpy(temp, letterW, sizeof(letterW));
DaniusKalv 2:3cc1e2dec7a2 134 break;
DaniusKalv 9:ed7e8a6fc537 135 case 'X':
DaniusKalv 9:ed7e8a6fc537 136 letSize = 5;
DaniusKalv 9:ed7e8a6fc537 137 memcpy(temp, letterX, sizeof(letterX));
DaniusKalv 9:ed7e8a6fc537 138 break;
DaniusKalv 6:76b89d8b62a0 139 case 'Y':
DaniusKalv 6:76b89d8b62a0 140 letSize = 5;
DaniusKalv 7:ca5ed7936472 141 memcpy(temp, letterY, sizeof(letterY));
DaniusKalv 6:76b89d8b62a0 142 break;
DaniusKalv 9:ed7e8a6fc537 143 case 'Z':
DaniusKalv 9:ed7e8a6fc537 144 letSize = 4;
DaniusKalv 9:ed7e8a6fc537 145 memcpy(temp, letterZ, sizeof(letterZ));
DaniusKalv 9:ed7e8a6fc537 146 break;
DaniusKalv 9:ed7e8a6fc537 147 case 'a':
DaniusKalv 9:ed7e8a6fc537 148 letSize = 4;
DaniusKalv 9:ed7e8a6fc537 149 memcpy(temp, lettera, sizeof(lettera));
DaniusKalv 9:ed7e8a6fc537 150 break;
DaniusKalv 9:ed7e8a6fc537 151 case 'b':
DaniusKalv 9:ed7e8a6fc537 152 letSize = 4;
DaniusKalv 9:ed7e8a6fc537 153 memcpy(temp, letterb, sizeof(letterb));
DaniusKalv 9:ed7e8a6fc537 154 break;
DaniusKalv 9:ed7e8a6fc537 155 case 'c':
DaniusKalv 9:ed7e8a6fc537 156 letSize = 4;
DaniusKalv 9:ed7e8a6fc537 157 memcpy(temp, letterc, sizeof(letterc));
DaniusKalv 9:ed7e8a6fc537 158 break;
DaniusKalv 9:ed7e8a6fc537 159 case 'd':
DaniusKalv 9:ed7e8a6fc537 160 letSize = 4;
DaniusKalv 9:ed7e8a6fc537 161 memcpy(temp, letterd, sizeof(letterd));
DaniusKalv 9:ed7e8a6fc537 162 break;
DaniusKalv 9:ed7e8a6fc537 163 case 'e':
DaniusKalv 9:ed7e8a6fc537 164 letSize = 4;
DaniusKalv 9:ed7e8a6fc537 165 memcpy(temp, lettere, sizeof(lettere));
DaniusKalv 9:ed7e8a6fc537 166 break;
DaniusKalv 9:ed7e8a6fc537 167 case 'f':
DaniusKalv 9:ed7e8a6fc537 168 letSize = 4;
DaniusKalv 9:ed7e8a6fc537 169 memcpy(temp, letterf, sizeof(letterf));
DaniusKalv 9:ed7e8a6fc537 170 break;
DaniusKalv 9:ed7e8a6fc537 171 case 'g':
DaniusKalv 9:ed7e8a6fc537 172 letSize = 4;
DaniusKalv 9:ed7e8a6fc537 173 memcpy(temp, letterg, sizeof(letterg));
DaniusKalv 9:ed7e8a6fc537 174 break;
DaniusKalv 9:ed7e8a6fc537 175 case 'h':
DaniusKalv 9:ed7e8a6fc537 176 letSize = 4;
DaniusKalv 9:ed7e8a6fc537 177 memcpy(temp, letterh, sizeof(letterh));
DaniusKalv 9:ed7e8a6fc537 178 break;
DaniusKalv 9:ed7e8a6fc537 179 case 'i':
DaniusKalv 9:ed7e8a6fc537 180 letSize = 1;
DaniusKalv 9:ed7e8a6fc537 181 memcpy(temp, letteri, sizeof(letteri));
DaniusKalv 9:ed7e8a6fc537 182 break;
DaniusKalv 9:ed7e8a6fc537 183 case 'j':
DaniusKalv 9:ed7e8a6fc537 184 letSize = 3;
DaniusKalv 9:ed7e8a6fc537 185 memcpy(temp, letterj, sizeof(letterj));
DaniusKalv 9:ed7e8a6fc537 186 break;
DaniusKalv 9:ed7e8a6fc537 187 case 'k':
DaniusKalv 9:ed7e8a6fc537 188 letSize = 4;
DaniusKalv 9:ed7e8a6fc537 189 memcpy(temp, letterk, sizeof(letterk));
DaniusKalv 9:ed7e8a6fc537 190 break;
DaniusKalv 9:ed7e8a6fc537 191 case 'l':
DaniusKalv 9:ed7e8a6fc537 192 letSize = 1;
DaniusKalv 9:ed7e8a6fc537 193 memcpy(temp, letterl, sizeof(letterl));
DaniusKalv 9:ed7e8a6fc537 194 break;
DaniusKalv 9:ed7e8a6fc537 195 case 'm':
DaniusKalv 6:76b89d8b62a0 196 letSize = 5;
DaniusKalv 9:ed7e8a6fc537 197 memcpy(temp, letterm, sizeof(letterm));
DaniusKalv 9:ed7e8a6fc537 198 break;
DaniusKalv 9:ed7e8a6fc537 199 case 'n':
DaniusKalv 9:ed7e8a6fc537 200 letSize = 4;
DaniusKalv 9:ed7e8a6fc537 201 memcpy(temp, lettern, sizeof(lettern));
DaniusKalv 9:ed7e8a6fc537 202 break;
DaniusKalv 9:ed7e8a6fc537 203 case 'o':
DaniusKalv 9:ed7e8a6fc537 204 letSize = 4;
DaniusKalv 9:ed7e8a6fc537 205 memcpy(temp, lettero, sizeof(lettero));
DaniusKalv 9:ed7e8a6fc537 206 break;
DaniusKalv 9:ed7e8a6fc537 207 case 'p':
DaniusKalv 9:ed7e8a6fc537 208 letSize = 4;
DaniusKalv 9:ed7e8a6fc537 209 memcpy(temp, letterp, sizeof(letterp));
DaniusKalv 9:ed7e8a6fc537 210 break;
DaniusKalv 9:ed7e8a6fc537 211 case 'q':
DaniusKalv 9:ed7e8a6fc537 212 letSize = 4;
DaniusKalv 9:ed7e8a6fc537 213 memcpy(temp, letterq, sizeof(letterq));
DaniusKalv 9:ed7e8a6fc537 214 break;
DaniusKalv 9:ed7e8a6fc537 215 case 'r':
DaniusKalv 9:ed7e8a6fc537 216 letSize = 4;
DaniusKalv 9:ed7e8a6fc537 217 memcpy(temp, letterr, sizeof(letterr));
DaniusKalv 9:ed7e8a6fc537 218 break;
DaniusKalv 9:ed7e8a6fc537 219 case 's':
DaniusKalv 9:ed7e8a6fc537 220 letSize = 4;
DaniusKalv 9:ed7e8a6fc537 221 memcpy(temp, letter_s, sizeof(letter_s));
DaniusKalv 9:ed7e8a6fc537 222 break;
DaniusKalv 9:ed7e8a6fc537 223 case 't':
DaniusKalv 9:ed7e8a6fc537 224 letSize = 4;
DaniusKalv 9:ed7e8a6fc537 225 memcpy(temp, lettert, sizeof(lettert));
DaniusKalv 9:ed7e8a6fc537 226 break;
DaniusKalv 9:ed7e8a6fc537 227 case 'u':
DaniusKalv 9:ed7e8a6fc537 228 letSize = 4;
DaniusKalv 9:ed7e8a6fc537 229 memcpy(temp, letteru, sizeof(letteru));
DaniusKalv 9:ed7e8a6fc537 230 break;
DaniusKalv 9:ed7e8a6fc537 231 case 'v':
DaniusKalv 9:ed7e8a6fc537 232 letSize = 5;
DaniusKalv 9:ed7e8a6fc537 233 memcpy(temp, letterv, sizeof(letterv));
DaniusKalv 9:ed7e8a6fc537 234 break;
DaniusKalv 9:ed7e8a6fc537 235 case 'w':
DaniusKalv 9:ed7e8a6fc537 236 letSize = 5;
DaniusKalv 9:ed7e8a6fc537 237 memcpy(temp, letterw, sizeof(letterw));
DaniusKalv 9:ed7e8a6fc537 238 break;
DaniusKalv 9:ed7e8a6fc537 239 case 'x':
DaniusKalv 9:ed7e8a6fc537 240 letSize = 4;
DaniusKalv 9:ed7e8a6fc537 241 memcpy(temp, letterx, sizeof(letterx));
DaniusKalv 9:ed7e8a6fc537 242 break;
DaniusKalv 9:ed7e8a6fc537 243 case 'y':
DaniusKalv 9:ed7e8a6fc537 244 letSize = 4;
DaniusKalv 9:ed7e8a6fc537 245 memcpy(temp, lettery, sizeof(lettery));
DaniusKalv 9:ed7e8a6fc537 246 break;
DaniusKalv 9:ed7e8a6fc537 247 case 'z':
DaniusKalv 9:ed7e8a6fc537 248 letSize = 4;
DaniusKalv 9:ed7e8a6fc537 249 memcpy(temp, letterz, sizeof(letterz));
DaniusKalv 6:76b89d8b62a0 250 break;
DaniusKalv 2:3cc1e2dec7a2 251 case ' ':
DaniusKalv 2:3cc1e2dec7a2 252 letSize = 3;
DaniusKalv 7:ca5ed7936472 253 memcpy(temp, letterGap, sizeof(letterGap));
DaniusKalv 2:3cc1e2dec7a2 254 break;
DaniusKalv 2:3cc1e2dec7a2 255 default :
DaniusKalv 2:3cc1e2dec7a2 256 letSize = 1;
DaniusKalv 7:ca5ed7936472 257 memcpy(temp, letterDef, sizeof(letterDef));
DaniusKalv 2:3cc1e2dec7a2 258 }
DaniusKalv 2:3cc1e2dec7a2 259 }
DaniusKalv 2:3cc1e2dec7a2 260
DaniusKalv 2:3cc1e2dec7a2 261 void text::tempCheck(){
DaniusKalv 8:f74b8d6f00d0 262 pc.printf("\r\n");
DaniusKalv 9:ed7e8a6fc537 263 for (int i = 0; i < 8; i++){
DaniusKalv 9:ed7e8a6fc537 264 pc.printf("0x%02x ", temp[i]);
DaniusKalv 2:3cc1e2dec7a2 265 }
DaniusKalv 8:f74b8d6f00d0 266 pc.printf("\r\n");
DaniusKalv 2:3cc1e2dec7a2 267 }
DaniusKalv 2:3cc1e2dec7a2 268
DaniusKalv 2:3cc1e2dec7a2 269 void text::calcLength(string input){
DaniusKalv 2:3cc1e2dec7a2 270 length = 0;
DaniusKalv 2:3cc1e2dec7a2 271 for (int i = 0; i < stringLength; i++){
DaniusKalv 2:3cc1e2dec7a2 272 letters(input.at(i));
DaniusKalv 2:3cc1e2dec7a2 273 length += letSize + 1;
DaniusKalv 2:3cc1e2dec7a2 274 }
DaniusKalv 3:35a47548d29d 275 length += 31;
DaniusKalv 2:3cc1e2dec7a2 276 }