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:
Fri Oct 31 10:49:39 2014 +0000
Revision:
7:ca5ed7936472
Parent:
6:76b89d8b62a0
Child:
8:f74b8d6f00d0
Added letters.h file, which includes binary representations of each letter

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 2:3cc1e2dec7a2 26 for (int j = 0; j < letSize; j++){
DaniusKalv 2:3cc1e2dec7a2 27 for (int g = 7; g > (-1); g--){
DaniusKalv 2:3cc1e2dec7a2 28 fprintf(fp, "%i", temp[g][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 2:3cc1e2dec7a2 107 case 'R':
DaniusKalv 2:3cc1e2dec7a2 108 letSize = 4;
DaniusKalv 7:ca5ed7936472 109 memcpy(temp, letterR, sizeof(letterR));
DaniusKalv 2:3cc1e2dec7a2 110 break;
DaniusKalv 2:3cc1e2dec7a2 111 case 'S':
DaniusKalv 2:3cc1e2dec7a2 112 letSize = 4;
DaniusKalv 7:ca5ed7936472 113 memcpy(temp, letterS, sizeof(letterS));
DaniusKalv 2:3cc1e2dec7a2 114 break;
DaniusKalv 2:3cc1e2dec7a2 115 case 'T':
DaniusKalv 2:3cc1e2dec7a2 116 letSize = 5;
DaniusKalv 7:ca5ed7936472 117 memcpy(temp, letterT, sizeof(letterT));
DaniusKalv 2:3cc1e2dec7a2 118 break;
DaniusKalv 2:3cc1e2dec7a2 119 case 'U':
DaniusKalv 2:3cc1e2dec7a2 120 letSize = 4;
DaniusKalv 7:ca5ed7936472 121 memcpy(temp, letterU, sizeof(letterU));
DaniusKalv 2:3cc1e2dec7a2 122 break;
DaniusKalv 2:3cc1e2dec7a2 123 case 'V':
DaniusKalv 2:3cc1e2dec7a2 124 letSize = 5;
DaniusKalv 7:ca5ed7936472 125 memcpy(temp, letterV, sizeof(letterV));
DaniusKalv 2:3cc1e2dec7a2 126 break;
DaniusKalv 2:3cc1e2dec7a2 127 case 'Z':
DaniusKalv 2:3cc1e2dec7a2 128 letSize = 4;
DaniusKalv 7:ca5ed7936472 129 memcpy(temp, letterZ, sizeof(letterZ));
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 6:76b89d8b62a0 135 case 'Y':
DaniusKalv 6:76b89d8b62a0 136 letSize = 5;
DaniusKalv 7:ca5ed7936472 137 memcpy(temp, letterY, sizeof(letterY));
DaniusKalv 6:76b89d8b62a0 138 break;
DaniusKalv 6:76b89d8b62a0 139 case 'X':
DaniusKalv 6:76b89d8b62a0 140 letSize = 5;
DaniusKalv 7:ca5ed7936472 141 memcpy(temp, letterX, sizeof(letterX));
DaniusKalv 6:76b89d8b62a0 142 break;
DaniusKalv 2:3cc1e2dec7a2 143 case ' ':
DaniusKalv 2:3cc1e2dec7a2 144 letSize = 3;
DaniusKalv 7:ca5ed7936472 145 memcpy(temp, letterGap, sizeof(letterGap));
DaniusKalv 2:3cc1e2dec7a2 146 break;
DaniusKalv 2:3cc1e2dec7a2 147 default :
DaniusKalv 2:3cc1e2dec7a2 148 letSize = 1;
DaniusKalv 7:ca5ed7936472 149 memcpy(temp, letterDef, sizeof(letterDef));
DaniusKalv 2:3cc1e2dec7a2 150 }
DaniusKalv 2:3cc1e2dec7a2 151 }
DaniusKalv 2:3cc1e2dec7a2 152
DaniusKalv 2:3cc1e2dec7a2 153 void text::tempCheck(){
DaniusKalv 2:3cc1e2dec7a2 154 for (int i = 0; i < 5; i++){
DaniusKalv 2:3cc1e2dec7a2 155 pc.printf("\r\n");
DaniusKalv 2:3cc1e2dec7a2 156 for (int j = 7; j > (-1); j--){
DaniusKalv 2:3cc1e2dec7a2 157 pc.printf("%i", temp[j][i]);
DaniusKalv 2:3cc1e2dec7a2 158 }
DaniusKalv 2:3cc1e2dec7a2 159 }
DaniusKalv 2:3cc1e2dec7a2 160 }
DaniusKalv 2:3cc1e2dec7a2 161
DaniusKalv 2:3cc1e2dec7a2 162 void text::calcLength(string input){
DaniusKalv 2:3cc1e2dec7a2 163 length = 0;
DaniusKalv 2:3cc1e2dec7a2 164 for (int i = 0; i < stringLength; i++){
DaniusKalv 2:3cc1e2dec7a2 165 letters(input.at(i));
DaniusKalv 2:3cc1e2dec7a2 166 length += letSize + 1;
DaniusKalv 2:3cc1e2dec7a2 167 }
DaniusKalv 3:35a47548d29d 168 length += 31;
DaniusKalv 2:3cc1e2dec7a2 169 }