Rihards Balass / 4DGL-mbed-32PTU
Committer:
CaptainR
Date:
Fri Sep 09 06:17:05 2016 +0000
Revision:
2:81eaaa491a02
Parent:
1:e2337e2653e1
Child:
3:dcfbceb81fef
Cleaned up all files, redefined constants to be more easier to use...; Added info about copyright :)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
CaptainR 0:a5ef6bc3c2e8 1 //
CaptainR 2:81eaaa491a02 2 // Picaso_4DGL-32PTU is a class to drive 4D Systems TFT touch screens with PICASO processor
CaptainR 2:81eaaa491a02 3 // Tested with NUCLEO L152RE development board
CaptainR 2:81eaaa491a02 4 // Copyright (C) <2016> Rihards Balass <rihards.balass@gmail.com>
CaptainR 0:a5ef6bc3c2e8 5 //
CaptainR 2:81eaaa491a02 6 // Picaso_4DGL-32PTU is free software: you can redistribute it and/or modify
CaptainR 2:81eaaa491a02 7 // it under the terms of the GNU General Public License as published by
CaptainR 2:81eaaa491a02 8 // the Free Software Foundation, either version 3 of the License, or
CaptainR 2:81eaaa491a02 9 // (at your option) any later version.
CaptainR 2:81eaaa491a02 10 //
CaptainR 2:81eaaa491a02 11 // Picaso_4DGL-32PTU is distributed in the hope that it will be useful,
CaptainR 2:81eaaa491a02 12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
CaptainR 2:81eaaa491a02 13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
CaptainR 2:81eaaa491a02 14 // GNU General Public License for more details.
CaptainR 2:81eaaa491a02 15 //
CaptainR 2:81eaaa491a02 16 // You can see GNU General Public License at <http://www.gnu.org/licenses/>.
CaptainR 0:a5ef6bc3c2e8 17 //
CaptainR 0:a5ef6bc3c2e8 18
CaptainR 0:a5ef6bc3c2e8 19 #include "mbed.h"
CaptainR 0:a5ef6bc3c2e8 20 #include "Picaso_4DGL-32PTU.h"
CaptainR 0:a5ef6bc3c2e8 21
CaptainR 0:a5ef6bc3c2e8 22 //****************************************************************************************************
CaptainR 0:a5ef6bc3c2e8 23 void TFT_4DGL :: setFont(char mode) { // set font size
CaptainR 0:a5ef6bc3c2e8 24
CaptainR 0:a5ef6bc3c2e8 25 char command[4]= "";
CaptainR 0:a5ef6bc3c2e8 26
CaptainR 2:81eaaa491a02 27 command[0] = (SET_FONT >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 28 command[1] = (SET_FONT >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 29
CaptainR 0:a5ef6bc3c2e8 30 switch (mode) {
CaptainR 0:a5ef6bc3c2e8 31 case 1 :
CaptainR 2:81eaaa491a02 32 command[2] = (FONT1 >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 33 command[3] = (FONT1 >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 34 currentFont = 1;
CaptainR 0:a5ef6bc3c2e8 35 break;
CaptainR 0:a5ef6bc3c2e8 36 case 2 :
CaptainR 2:81eaaa491a02 37 command[2] = (FONT2 >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 38 command[3] = (FONT2 >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 39 currentFont = 2;
CaptainR 0:a5ef6bc3c2e8 40 break;
CaptainR 0:a5ef6bc3c2e8 41 case 3 :
CaptainR 2:81eaaa491a02 42 command[2] = (FONT3 >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 43 command[3] = (FONT3 >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 44 currentFont = 3;
CaptainR 0:a5ef6bc3c2e8 45 break;
CaptainR 0:a5ef6bc3c2e8 46 }
CaptainR 0:a5ef6bc3c2e8 47
CaptainR 0:a5ef6bc3c2e8 48 writeCOMMAND(command, 4);
CaptainR 0:a5ef6bc3c2e8 49 }
CaptainR 0:a5ef6bc3c2e8 50
CaptainR 0:a5ef6bc3c2e8 51 //****************************************************************************************************
CaptainR 2:81eaaa491a02 52 void TFT_4DGL :: textBgColor(short color) { // set text color
CaptainR 0:a5ef6bc3c2e8 53
CaptainR 0:a5ef6bc3c2e8 54 char command[4]= "";
CaptainR 0:a5ef6bc3c2e8 55
CaptainR 2:81eaaa491a02 56 command[0] = (TEXT_BG_COLOR >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 57 command[1] = (TEXT_BG_COLOR >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 58
CaptainR 2:81eaaa491a02 59 command[2] = (color >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 60 command[3] = (color >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 61
CaptainR 0:a5ef6bc3c2e8 62 writeCOMMAND(command, 4);
CaptainR 0:a5ef6bc3c2e8 63 }
CaptainR 0:a5ef6bc3c2e8 64
CaptainR 0:a5ef6bc3c2e8 65 //****************************************************************************************************
CaptainR 0:a5ef6bc3c2e8 66 void TFT_4DGL :: putc(char c) { // place char at current cursor position
CaptainR 0:a5ef6bc3c2e8 67
CaptainR 0:a5ef6bc3c2e8 68 char command[3]= "";
CaptainR 0:a5ef6bc3c2e8 69
CaptainR 2:81eaaa491a02 70 command[0] = (PUT_CHAR >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 71 command[1] = (PUT_CHAR >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 72
CaptainR 0:a5ef6bc3c2e8 73 command[2] = c;
CaptainR 0:a5ef6bc3c2e8 74
CaptainR 0:a5ef6bc3c2e8 75 writeCOMMAND(command, 3);
CaptainR 0:a5ef6bc3c2e8 76 }
CaptainR 0:a5ef6bc3c2e8 77
CaptainR 0:a5ef6bc3c2e8 78 //****************************************************************************************************
CaptainR 0:a5ef6bc3c2e8 79 void TFT_4DGL :: puts(char *s) { // place string at current cursor position
CaptainR 0:a5ef6bc3c2e8 80
CaptainR 0:a5ef6bc3c2e8 81 char command[1000]= "";
CaptainR 0:a5ef6bc3c2e8 82
CaptainR 0:a5ef6bc3c2e8 83 int size = strlen(s);
CaptainR 0:a5ef6bc3c2e8 84 int i = 0;
CaptainR 0:a5ef6bc3c2e8 85
CaptainR 2:81eaaa491a02 86 command[0] = (PUT_STRING >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 87 command[1] = (PUT_STRING >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 88
CaptainR 0:a5ef6bc3c2e8 89 for (i=0; i<size; i++) command[2+i] = s[i];
CaptainR 0:a5ef6bc3c2e8 90
CaptainR 0:a5ef6bc3c2e8 91 command[2+size] = 0;
CaptainR 0:a5ef6bc3c2e8 92
CaptainR 0:a5ef6bc3c2e8 93 writeCOMMAND(command, 3 + size);
CaptainR 0:a5ef6bc3c2e8 94 }
CaptainR 0:a5ef6bc3c2e8 95
CaptainR 0:a5ef6bc3c2e8 96 char TFT_4DGL :: validateMoveCursor(short line, short col) {
CaptainR 0:a5ef6bc3c2e8 97
CaptainR 0:a5ef6bc3c2e8 98 switch (currentFont) {
CaptainR 0:a5ef6bc3c2e8 99 case 1 :
CaptainR 0:a5ef6bc3c2e8 100 if (currentOrientation == 1 || currentOrientation == 2) { // landscape or rewersed landscape
CaptainR 0:a5ef6bc3c2e8 101 if (line > F1LL) {
CaptainR 0:a5ef6bc3c2e8 102 #if DEBUGMODE
CaptainR 0:a5ef6bc3c2e8 103 pc.printf("\n\r Line must be less than %i...\n\r", F1LL);
CaptainR 0:a5ef6bc3c2e8 104 #endif
CaptainR 0:a5ef6bc3c2e8 105 return 0;
CaptainR 0:a5ef6bc3c2e8 106 }
CaptainR 0:a5ef6bc3c2e8 107 else if (col > F1LC) {
CaptainR 0:a5ef6bc3c2e8 108 #if DEBUGMODE
CaptainR 0:a5ef6bc3c2e8 109 pc.printf("\n\r Column must be less than %i...\n\r", F1LC);
CaptainR 0:a5ef6bc3c2e8 110 #endif
CaptainR 0:a5ef6bc3c2e8 111 return 0;
CaptainR 0:a5ef6bc3c2e8 112 }
CaptainR 0:a5ef6bc3c2e8 113 else return 1; // everything is ok move the cursor
CaptainR 0:a5ef6bc3c2e8 114 }
CaptainR 0:a5ef6bc3c2e8 115 else { // portrait or rewersed portrait
CaptainR 0:a5ef6bc3c2e8 116 if (line > F1PL) {
CaptainR 0:a5ef6bc3c2e8 117 #if DEBUGMODE
CaptainR 0:a5ef6bc3c2e8 118 pc.printf("\n\r Column must be less than %i...\n\r", F1PL);
CaptainR 0:a5ef6bc3c2e8 119 #endif
CaptainR 0:a5ef6bc3c2e8 120 return 0;
CaptainR 0:a5ef6bc3c2e8 121 }
CaptainR 0:a5ef6bc3c2e8 122 else if (col > F1PC) {
CaptainR 0:a5ef6bc3c2e8 123 #if DEBUGMODE
CaptainR 0:a5ef6bc3c2e8 124 pc.printf("\n\r Column must be less than %i...\n\r", F1PC);
CaptainR 0:a5ef6bc3c2e8 125 #endif
CaptainR 0:a5ef6bc3c2e8 126 return 0;
CaptainR 0:a5ef6bc3c2e8 127 }
CaptainR 0:a5ef6bc3c2e8 128 else return 1;
CaptainR 0:a5ef6bc3c2e8 129 }
CaptainR 0:a5ef6bc3c2e8 130 case 2 :
CaptainR 0:a5ef6bc3c2e8 131 if (currentOrientation == 1 || currentOrientation == 2) { // landscape or rewersed landscape
CaptainR 0:a5ef6bc3c2e8 132 if (line > F2LL) {
CaptainR 0:a5ef6bc3c2e8 133 #if DEBUGMODE
CaptainR 0:a5ef6bc3c2e8 134 pc.printf("\n\r Line must be less than %i...\n\r", F2LL);
CaptainR 0:a5ef6bc3c2e8 135 #endif
CaptainR 0:a5ef6bc3c2e8 136 return 0;
CaptainR 0:a5ef6bc3c2e8 137 }
CaptainR 0:a5ef6bc3c2e8 138 else if (col > F2LC) {
CaptainR 0:a5ef6bc3c2e8 139 #if DEBUGMODE
CaptainR 0:a5ef6bc3c2e8 140 pc.printf("\n\r Column must be less than %i...\n\r", F2LC);
CaptainR 0:a5ef6bc3c2e8 141 #endif
CaptainR 0:a5ef6bc3c2e8 142 return 0;
CaptainR 0:a5ef6bc3c2e8 143 }
CaptainR 0:a5ef6bc3c2e8 144 else return 1; // everything is ok move the cursor
CaptainR 0:a5ef6bc3c2e8 145 }
CaptainR 0:a5ef6bc3c2e8 146 else { // portrait or rewersed portrait
CaptainR 0:a5ef6bc3c2e8 147 if (line > F2PL) {
CaptainR 0:a5ef6bc3c2e8 148 #if DEBUGMODE
CaptainR 0:a5ef6bc3c2e8 149 pc.printf("\n\r Column must be less than %i...\n\r", F2PL);
CaptainR 0:a5ef6bc3c2e8 150 #endif
CaptainR 0:a5ef6bc3c2e8 151 return 0;
CaptainR 0:a5ef6bc3c2e8 152 }
CaptainR 0:a5ef6bc3c2e8 153 else if (col > F2PC) {
CaptainR 0:a5ef6bc3c2e8 154 #if DEBUGMODE
CaptainR 0:a5ef6bc3c2e8 155 pc.printf("\n\r Column must be less than %i...\n\r", F2PC);
CaptainR 0:a5ef6bc3c2e8 156 #endif
CaptainR 0:a5ef6bc3c2e8 157 return 0;
CaptainR 0:a5ef6bc3c2e8 158 }
CaptainR 0:a5ef6bc3c2e8 159 else return 1;
CaptainR 0:a5ef6bc3c2e8 160 }
CaptainR 0:a5ef6bc3c2e8 161 case 3 :
CaptainR 0:a5ef6bc3c2e8 162 if (currentOrientation == 1 || currentOrientation == 2) { // landscape or rewersed landscape
CaptainR 0:a5ef6bc3c2e8 163 if (line > F3LL) {
CaptainR 0:a5ef6bc3c2e8 164 #if DEBUGMODE
CaptainR 0:a5ef6bc3c2e8 165 pc.printf("\n\r Line must be less than %i...\n\r", F3LL);
CaptainR 0:a5ef6bc3c2e8 166 #endif
CaptainR 0:a5ef6bc3c2e8 167 return 0;
CaptainR 0:a5ef6bc3c2e8 168 }
CaptainR 0:a5ef6bc3c2e8 169 else if (col > F3LC) {
CaptainR 0:a5ef6bc3c2e8 170 #if DEBUGMODE
CaptainR 0:a5ef6bc3c2e8 171 pc.printf("\n\r Column must be less than %i...\n\r", F3LC);
CaptainR 0:a5ef6bc3c2e8 172 #endif
CaptainR 0:a5ef6bc3c2e8 173 return 0;
CaptainR 0:a5ef6bc3c2e8 174 }
CaptainR 0:a5ef6bc3c2e8 175 else return 1; // everything is ok move the cursor
CaptainR 0:a5ef6bc3c2e8 176 }
CaptainR 0:a5ef6bc3c2e8 177 else { // portrait or rewersed portrait
CaptainR 0:a5ef6bc3c2e8 178 if (line > F3PL) {
CaptainR 0:a5ef6bc3c2e8 179 #if DEBUGMODE
CaptainR 0:a5ef6bc3c2e8 180 pc.printf("\n\r Column must be less than %i...\n\r", F3PL);
CaptainR 0:a5ef6bc3c2e8 181 #endif
CaptainR 0:a5ef6bc3c2e8 182 return 0;
CaptainR 0:a5ef6bc3c2e8 183 }
CaptainR 0:a5ef6bc3c2e8 184 else if (col > F3PC) {
CaptainR 0:a5ef6bc3c2e8 185 #if DEBUGMODE
CaptainR 0:a5ef6bc3c2e8 186 pc.printf("\n\r Column must be less than %i...\n\r", F3PC);
CaptainR 0:a5ef6bc3c2e8 187 #endif
CaptainR 0:a5ef6bc3c2e8 188 return 0;
CaptainR 0:a5ef6bc3c2e8 189 }
CaptainR 0:a5ef6bc3c2e8 190 else return 1;
CaptainR 0:a5ef6bc3c2e8 191 }
CaptainR 0:a5ef6bc3c2e8 192 }
CaptainR 0:a5ef6bc3c2e8 193 return 0;
CaptainR 0:a5ef6bc3c2e8 194 }
CaptainR 0:a5ef6bc3c2e8 195
CaptainR 0:a5ef6bc3c2e8 196 //****************************************************************************************************
CaptainR 0:a5ef6bc3c2e8 197 char TFT_4DGL :: moveCursor(short line, short col) {
CaptainR 0:a5ef6bc3c2e8 198
CaptainR 0:a5ef6bc3c2e8 199 char command[6]= "";
CaptainR 0:a5ef6bc3c2e8 200
CaptainR 2:81eaaa491a02 201 command[0] = (MOVE_CURSOR >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 202 command[1] = (MOVE_CURSOR >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 203
CaptainR 0:a5ef6bc3c2e8 204 if (validateMoveCursor(line, col) == 1) {
CaptainR 0:a5ef6bc3c2e8 205 command[3] = line;
CaptainR 0:a5ef6bc3c2e8 206 command[5] = col;
CaptainR 0:a5ef6bc3c2e8 207 writeCOMMAND(command, 6);
CaptainR 0:a5ef6bc3c2e8 208 return 1;
CaptainR 0:a5ef6bc3c2e8 209 }
CaptainR 0:a5ef6bc3c2e8 210 else return 0;
CaptainR 0:a5ef6bc3c2e8 211 }
CaptainR 0:a5ef6bc3c2e8 212
CaptainR 0:a5ef6bc3c2e8 213 //****************************************************************************************************
CaptainR 2:81eaaa491a02 214 void TFT_4DGL :: textFgColor(short color) {
CaptainR 0:a5ef6bc3c2e8 215
CaptainR 0:a5ef6bc3c2e8 216 char command[4]= "";
CaptainR 0:a5ef6bc3c2e8 217
CaptainR 2:81eaaa491a02 218 command[0] = (TEXT_FG_COLOR >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 219 command[1] = (TEXT_FG_COLOR >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 220
CaptainR 2:81eaaa491a02 221 command[2] = (color >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 222 command[3] = (color >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 223
CaptainR 0:a5ef6bc3c2e8 224 writeCOMMAND(command, 4);
CaptainR 0:a5ef6bc3c2e8 225 }
CaptainR 0:a5ef6bc3c2e8 226
CaptainR 0:a5ef6bc3c2e8 227 //****************************************************************************************************
CaptainR 0:a5ef6bc3c2e8 228 int TFT_4DGL :: textWidth(short multiplier) {
CaptainR 0:a5ef6bc3c2e8 229
CaptainR 0:a5ef6bc3c2e8 230 if (multiplier > 0 && multiplier <= 16) {
CaptainR 0:a5ef6bc3c2e8 231 char command[4]= "";
CaptainR 0:a5ef6bc3c2e8 232
CaptainR 2:81eaaa491a02 233 command[0] = (TEXT_WIDTH >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 234 command[1] = (TEXT_WIDTH >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 235
CaptainR 0:a5ef6bc3c2e8 236 command[2] = (multiplier >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 237 command[3] = (multiplier >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 238
CaptainR 0:a5ef6bc3c2e8 239 writeCOMMAND(command, 4);
CaptainR 0:a5ef6bc3c2e8 240 return 1;
CaptainR 0:a5ef6bc3c2e8 241 }
CaptainR 0:a5ef6bc3c2e8 242 else return 0;
CaptainR 0:a5ef6bc3c2e8 243 }
CaptainR 0:a5ef6bc3c2e8 244
CaptainR 0:a5ef6bc3c2e8 245 //****************************************************************************************************
CaptainR 0:a5ef6bc3c2e8 246 int TFT_4DGL :: textHeight(short multiplier) {
CaptainR 0:a5ef6bc3c2e8 247
CaptainR 0:a5ef6bc3c2e8 248 if (multiplier > 0 && multiplier <= 16) {
CaptainR 0:a5ef6bc3c2e8 249 char command[4]= "";
CaptainR 0:a5ef6bc3c2e8 250
CaptainR 2:81eaaa491a02 251 command[0] = (TEXT_HEIGHT >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 252 command[1] = (TEXT_HEIGHT >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 253
CaptainR 0:a5ef6bc3c2e8 254 command[2] = (multiplier >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 255 command[3] = (multiplier >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 256
CaptainR 0:a5ef6bc3c2e8 257 writeCOMMAND(command, 4);
CaptainR 0:a5ef6bc3c2e8 258 return 1;
CaptainR 0:a5ef6bc3c2e8 259 }
CaptainR 0:a5ef6bc3c2e8 260 else return 0;
CaptainR 0:a5ef6bc3c2e8 261 }
CaptainR 0:a5ef6bc3c2e8 262
CaptainR 0:a5ef6bc3c2e8 263 //****************************************************************************************************
CaptainR 0:a5ef6bc3c2e8 264 int TFT_4DGL :: textXGap(short pCount) {
CaptainR 0:a5ef6bc3c2e8 265
CaptainR 0:a5ef6bc3c2e8 266 if (pCount <= 32) {
CaptainR 0:a5ef6bc3c2e8 267 char command[4]= "";
CaptainR 0:a5ef6bc3c2e8 268
CaptainR 2:81eaaa491a02 269 command[0] = (TEXT_X_GAP >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 270 command[1] = (TEXT_X_GAP >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 271
CaptainR 0:a5ef6bc3c2e8 272 command[2] = (pCount >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 273 command[3] = (pCount >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 274
CaptainR 0:a5ef6bc3c2e8 275 writeCOMMAND(command, 4);
CaptainR 0:a5ef6bc3c2e8 276 return 1;
CaptainR 0:a5ef6bc3c2e8 277 }
CaptainR 0:a5ef6bc3c2e8 278 else return 0;
CaptainR 0:a5ef6bc3c2e8 279 }
CaptainR 0:a5ef6bc3c2e8 280
CaptainR 0:a5ef6bc3c2e8 281 //****************************************************************************************************
CaptainR 0:a5ef6bc3c2e8 282 int TFT_4DGL :: textYGap(short pCount) {
CaptainR 0:a5ef6bc3c2e8 283
CaptainR 0:a5ef6bc3c2e8 284 if (pCount <= 32) {
CaptainR 0:a5ef6bc3c2e8 285 char command[4]= "";
CaptainR 0:a5ef6bc3c2e8 286
CaptainR 2:81eaaa491a02 287 command[0] = (TEXT_Y_GAP >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 288 command[1] = (TEXT_Y_GAP >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 289
CaptainR 0:a5ef6bc3c2e8 290 command[2] = (pCount >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 291 command[3] = (pCount >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 292
CaptainR 0:a5ef6bc3c2e8 293 writeCOMMAND(command, 4);
CaptainR 0:a5ef6bc3c2e8 294 return 1;
CaptainR 0:a5ef6bc3c2e8 295 }
CaptainR 0:a5ef6bc3c2e8 296 else return 0;
CaptainR 0:a5ef6bc3c2e8 297 }
CaptainR 0:a5ef6bc3c2e8 298
CaptainR 0:a5ef6bc3c2e8 299 //****************************************************************************************************
CaptainR 0:a5ef6bc3c2e8 300 void TFT_4DGL :: textBold(short mode) {
CaptainR 0:a5ef6bc3c2e8 301
CaptainR 0:a5ef6bc3c2e8 302 char command[4]= "";
CaptainR 2:81eaaa491a02 303 command[0] = (TEXT_BOLD >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 304 command[1] = (TEXT_BOLD >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 305 command[2] = (mode >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 306 command[3] = (mode >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 307
CaptainR 0:a5ef6bc3c2e8 308 writeCOMMAND(command, 4);
CaptainR 0:a5ef6bc3c2e8 309 }
CaptainR 0:a5ef6bc3c2e8 310
CaptainR 0:a5ef6bc3c2e8 311 //****************************************************************************************************
CaptainR 0:a5ef6bc3c2e8 312 void TFT_4DGL :: textInverse(short mode) {
CaptainR 0:a5ef6bc3c2e8 313
CaptainR 0:a5ef6bc3c2e8 314 char command[4]= "";
CaptainR 2:81eaaa491a02 315 command[0] = (TEXT_INVERSE >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 316 command[1] = (TEXT_INVERSE >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 317 command[2] = (mode >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 318 command[3] = (mode >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 319
CaptainR 0:a5ef6bc3c2e8 320 writeCOMMAND(command, 4);
CaptainR 0:a5ef6bc3c2e8 321 }
CaptainR 0:a5ef6bc3c2e8 322
CaptainR 0:a5ef6bc3c2e8 323 //****************************************************************************************************
CaptainR 0:a5ef6bc3c2e8 324 void TFT_4DGL :: textItalic(short mode) {
CaptainR 0:a5ef6bc3c2e8 325
CaptainR 0:a5ef6bc3c2e8 326 char command[4]= "";
CaptainR 2:81eaaa491a02 327 command[0] = (TEXT_ITALIC >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 328 command[1] = (TEXT_ITALIC >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 329 command[2] = (mode >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 330 command[3] = (mode >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 331
CaptainR 0:a5ef6bc3c2e8 332 writeCOMMAND(command, 4);
CaptainR 0:a5ef6bc3c2e8 333 }
CaptainR 0:a5ef6bc3c2e8 334
CaptainR 0:a5ef6bc3c2e8 335 //****************************************************************************************************
CaptainR 0:a5ef6bc3c2e8 336 void TFT_4DGL :: textOpacity(short mode) {
CaptainR 0:a5ef6bc3c2e8 337
CaptainR 0:a5ef6bc3c2e8 338 char command[4]= "";
CaptainR 2:81eaaa491a02 339 command[0] = (TEXT_OPACITY >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 340 command[1] = (TEXT_OPACITY >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 341 command[2] = (mode >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 342 command[3] = (mode >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 343
CaptainR 0:a5ef6bc3c2e8 344 writeCOMMAND(command, 4);
CaptainR 0:a5ef6bc3c2e8 345 }
CaptainR 0:a5ef6bc3c2e8 346
CaptainR 0:a5ef6bc3c2e8 347 //****************************************************************************************************
CaptainR 0:a5ef6bc3c2e8 348 // The “Text Y-gap” command is required to be at least 2 for the underline to be visible,
CaptainR 0:a5ef6bc3c2e8 349 //****************************************************************************************************
CaptainR 0:a5ef6bc3c2e8 350 void TFT_4DGL :: textUnderline(short mode) {
CaptainR 0:a5ef6bc3c2e8 351
CaptainR 0:a5ef6bc3c2e8 352 char command[4]= "";
CaptainR 0:a5ef6bc3c2e8 353 if (mode == 1) textYGap(2);
CaptainR 2:81eaaa491a02 354 command[0] = (TEXT_UNDERLINE >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 355 command[1] = (TEXT_UNDERLINE >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 356 command[2] = (mode >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 357 command[3] = (mode >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 358
CaptainR 0:a5ef6bc3c2e8 359 writeCOMMAND(command, 4);
CaptainR 0:a5ef6bc3c2e8 360
CaptainR 0:a5ef6bc3c2e8 361 }
CaptainR 0:a5ef6bc3c2e8 362
CaptainR 0:a5ef6bc3c2e8 363 //****************************************************************************************************
CaptainR 0:a5ef6bc3c2e8 364 // (bit 5 or) DEC 16 for BOLD
CaptainR 0:a5ef6bc3c2e8 365 // (bit 6 or) DEC 32 for ITALIC
CaptainR 0:a5ef6bc3c2e8 366 // (bit 7 or) DEC 64 for INVERSE
CaptainR 0:a5ef6bc3c2e8 367 // (bit 8 or) DEC 128 for UNDERLINED
CaptainR 0:a5ef6bc3c2e8 368 //****************************************************************************************************
CaptainR 0:a5ef6bc3c2e8 369 void TFT_4DGL :: textAttributes(short value) {
CaptainR 0:a5ef6bc3c2e8 370
CaptainR 0:a5ef6bc3c2e8 371 char command[4]= "";
CaptainR 0:a5ef6bc3c2e8 372 if (CHECK_BIT(value, 7)) textYGap(2);
CaptainR 2:81eaaa491a02 373 command[0] = (TEXT_ATTRIBUTES >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 374 command[1] = (TEXT_ATTRIBUTES >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 375 command[2] = (value >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 376 command[3] = (value >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 377
CaptainR 0:a5ef6bc3c2e8 378 writeCOMMAND(command, 4);
CaptainR 0:a5ef6bc3c2e8 379 }