Ruth Pavoor / Mbed 2 deprecated project1

Dependencies:   mbed mbed-rtos PinDetect

Committer:
rpavoor3
Date:
Mon Apr 27 23:18:38 2020 +0000
Revision:
0:0ca943ce4014
4180 Your Fitness Buddy

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rpavoor3 0:0ca943ce4014 1 //
rpavoor3 0:0ca943ce4014 2 // uLCD_4DGL is a class to drive 4D Systems LCD screens
rpavoor3 0:0ca943ce4014 3 //
rpavoor3 0:0ca943ce4014 4 // Copyright (C) <2010> Stephane ROCHON <stephane.rochon at free.fr>
rpavoor3 0:0ca943ce4014 5 // Modifed for Goldelox processor <2013> Jim Hamblen
rpavoor3 0:0ca943ce4014 6 //
rpavoor3 0:0ca943ce4014 7 // uLCD_4DGL is free software: you can redistribute it and/or modify
rpavoor3 0:0ca943ce4014 8 // it under the terms of the GNU General Public License as published by
rpavoor3 0:0ca943ce4014 9 // the Free Software Foundation, either version 3 of the License, or
rpavoor3 0:0ca943ce4014 10 // (at your option) any later version.
rpavoor3 0:0ca943ce4014 11 //
rpavoor3 0:0ca943ce4014 12 // uLCD_4DGL is distributed in the hope that it will be useful,
rpavoor3 0:0ca943ce4014 13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
rpavoor3 0:0ca943ce4014 14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
rpavoor3 0:0ca943ce4014 15 // GNU General Public License for more details.
rpavoor3 0:0ca943ce4014 16 //
rpavoor3 0:0ca943ce4014 17 // You should have received a copy of the GNU General Public License
rpavoor3 0:0ca943ce4014 18 // along with uLCD_4DGL. If not, see <http://www.gnu.org/licenses/>.
rpavoor3 0:0ca943ce4014 19
rpavoor3 0:0ca943ce4014 20 #include "mbed.h"
rpavoor3 0:0ca943ce4014 21 #include "uLCD_4DGL.h"
rpavoor3 0:0ca943ce4014 22
rpavoor3 0:0ca943ce4014 23 #define ARRAY_SIZE(X) sizeof(X)/sizeof(X[0])
rpavoor3 0:0ca943ce4014 24
rpavoor3 0:0ca943ce4014 25 //****************************************************************************************************
rpavoor3 0:0ca943ce4014 26 void uLCD_4DGL :: circle(int x, int y , int radius, int color) // draw a circle in (x,y)
rpavoor3 0:0ca943ce4014 27 {
rpavoor3 0:0ca943ce4014 28 char command[9]= "";
rpavoor3 0:0ca943ce4014 29
rpavoor3 0:0ca943ce4014 30 command[0] = CIRCLE;
rpavoor3 0:0ca943ce4014 31
rpavoor3 0:0ca943ce4014 32 command[1] = (x >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 33 command[2] = x & 0xFF;
rpavoor3 0:0ca943ce4014 34
rpavoor3 0:0ca943ce4014 35 command[3] = (y >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 36 command[4] = y & 0xFF;
rpavoor3 0:0ca943ce4014 37
rpavoor3 0:0ca943ce4014 38 command[5] = (radius >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 39 command[6] = radius & 0xFF;
rpavoor3 0:0ca943ce4014 40
rpavoor3 0:0ca943ce4014 41 int red5 = (color >> (16 + 3)) & 0x1F; // get red on 5 bits
rpavoor3 0:0ca943ce4014 42 int green6 = (color >> (8 + 2)) & 0x3F; // get green on 6 bits
rpavoor3 0:0ca943ce4014 43 int blue5 = (color >> (0 + 3)) & 0x1F; // get blue on 5 bits
rpavoor3 0:0ca943ce4014 44
rpavoor3 0:0ca943ce4014 45 command[7] = ((red5 << 3) + (green6 >> 3)) & 0xFF; // first part of 16 bits color
rpavoor3 0:0ca943ce4014 46 command[8] = ((green6 << 5) + (blue5 >> 0)) & 0xFF; // second part of 16 bits color
rpavoor3 0:0ca943ce4014 47
rpavoor3 0:0ca943ce4014 48 writeCOMMAND(command, 9);
rpavoor3 0:0ca943ce4014 49 }
rpavoor3 0:0ca943ce4014 50 //****************************************************************************************************
rpavoor3 0:0ca943ce4014 51 void uLCD_4DGL :: filled_circle(int x, int y , int radius, int color) // draw a circle in (x,y)
rpavoor3 0:0ca943ce4014 52 {
rpavoor3 0:0ca943ce4014 53 char command[9]= "";
rpavoor3 0:0ca943ce4014 54
rpavoor3 0:0ca943ce4014 55 command[0] = FCIRCLE;
rpavoor3 0:0ca943ce4014 56
rpavoor3 0:0ca943ce4014 57 command[1] = (x >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 58 command[2] = x & 0xFF;
rpavoor3 0:0ca943ce4014 59
rpavoor3 0:0ca943ce4014 60 command[3] = (y >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 61 command[4] = y & 0xFF;
rpavoor3 0:0ca943ce4014 62
rpavoor3 0:0ca943ce4014 63 command[5] = (radius >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 64 command[6] = radius & 0xFF;
rpavoor3 0:0ca943ce4014 65
rpavoor3 0:0ca943ce4014 66 int red5 = (color >> (16 + 3)) & 0x1F; // get red on 5 bits
rpavoor3 0:0ca943ce4014 67 int green6 = (color >> (8 + 2)) & 0x3F; // get green on 6 bits
rpavoor3 0:0ca943ce4014 68 int blue5 = (color >> (0 + 3)) & 0x1F; // get blue on 5 bits
rpavoor3 0:0ca943ce4014 69
rpavoor3 0:0ca943ce4014 70 command[7] = ((red5 << 3) + (green6 >> 3)) & 0xFF; // first part of 16 bits color
rpavoor3 0:0ca943ce4014 71 command[8] = ((green6 << 5) + (blue5 >> 0)) & 0xFF; // second part of 16 bits color
rpavoor3 0:0ca943ce4014 72
rpavoor3 0:0ca943ce4014 73 writeCOMMAND(command, 9);
rpavoor3 0:0ca943ce4014 74 }
rpavoor3 0:0ca943ce4014 75
rpavoor3 0:0ca943ce4014 76 //****************************************************************************************************
rpavoor3 0:0ca943ce4014 77 void uLCD_4DGL :: triangle(int x1, int y1 , int x2, int y2, int x3, int y3, int color) // draw a traingle
rpavoor3 0:0ca943ce4014 78 {
rpavoor3 0:0ca943ce4014 79 char command[15]= "";
rpavoor3 0:0ca943ce4014 80
rpavoor3 0:0ca943ce4014 81 command[0] = TRIANGLE;
rpavoor3 0:0ca943ce4014 82
rpavoor3 0:0ca943ce4014 83 command[1] = (x1 >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 84 command[2] = x1 & 0xFF;
rpavoor3 0:0ca943ce4014 85
rpavoor3 0:0ca943ce4014 86 command[3] = (y1 >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 87 command[4] = y1 & 0xFF;
rpavoor3 0:0ca943ce4014 88
rpavoor3 0:0ca943ce4014 89 command[5] = (x2 >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 90 command[6] = x2 & 0xFF;
rpavoor3 0:0ca943ce4014 91
rpavoor3 0:0ca943ce4014 92 command[7] = (y2 >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 93 command[8] = y2 & 0xFF;
rpavoor3 0:0ca943ce4014 94
rpavoor3 0:0ca943ce4014 95 command[9] = (x3 >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 96 command[10] = x3 & 0xFF;
rpavoor3 0:0ca943ce4014 97
rpavoor3 0:0ca943ce4014 98 command[11] = (y3 >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 99 command[12] = y3 & 0xFF;
rpavoor3 0:0ca943ce4014 100
rpavoor3 0:0ca943ce4014 101 int red5 = (color >> (16 + 3)) & 0x1F; // get red on 5 bits
rpavoor3 0:0ca943ce4014 102 int green6 = (color >> (8 + 2)) & 0x3F; // get green on 6 bits
rpavoor3 0:0ca943ce4014 103 int blue5 = (color >> (0 + 3)) & 0x1F; // get blue on 5 bits
rpavoor3 0:0ca943ce4014 104
rpavoor3 0:0ca943ce4014 105 command[13] = ((red5 << 3) + (green6 >> 3)) & 0xFF; // first part of 16 bits color
rpavoor3 0:0ca943ce4014 106 command[14] = ((green6 << 5) + (blue5 >> 0)) & 0xFF; // second part of 16 bits color
rpavoor3 0:0ca943ce4014 107
rpavoor3 0:0ca943ce4014 108 writeCOMMAND(command, 15);
rpavoor3 0:0ca943ce4014 109 }
rpavoor3 0:0ca943ce4014 110
rpavoor3 0:0ca943ce4014 111 //****************************************************************************************************
rpavoor3 0:0ca943ce4014 112 void uLCD_4DGL :: line(int x1, int y1 , int x2, int y2, int color) // draw a line
rpavoor3 0:0ca943ce4014 113 {
rpavoor3 0:0ca943ce4014 114 char command[11]= "";
rpavoor3 0:0ca943ce4014 115
rpavoor3 0:0ca943ce4014 116 command[0] = LINE;
rpavoor3 0:0ca943ce4014 117
rpavoor3 0:0ca943ce4014 118 command[1] = (x1 >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 119 command[2] = x1 & 0xFF;
rpavoor3 0:0ca943ce4014 120
rpavoor3 0:0ca943ce4014 121 command[3] = (y1 >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 122 command[4] = y1 & 0xFF;
rpavoor3 0:0ca943ce4014 123
rpavoor3 0:0ca943ce4014 124 command[5] = (x2 >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 125 command[6] = x2 & 0xFF;
rpavoor3 0:0ca943ce4014 126
rpavoor3 0:0ca943ce4014 127 command[7] = (y2 >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 128 command[8] = y2 & 0xFF;
rpavoor3 0:0ca943ce4014 129
rpavoor3 0:0ca943ce4014 130 int red5 = (color >> (16 + 3)) & 0x1F; // get red on 5 bits
rpavoor3 0:0ca943ce4014 131 int green6 = (color >> (8 + 2)) & 0x3F; // get green on 6 bits
rpavoor3 0:0ca943ce4014 132 int blue5 = (color >> (0 + 3)) & 0x1F; // get blue on 5 bits
rpavoor3 0:0ca943ce4014 133
rpavoor3 0:0ca943ce4014 134 command[9] = ((red5 << 3) + (green6 >> 3)) & 0xFF; // first part of 16 bits color
rpavoor3 0:0ca943ce4014 135 command[10] = ((green6 << 5) + (blue5 >> 0)) & 0xFF; // second part of 16 bits color
rpavoor3 0:0ca943ce4014 136
rpavoor3 0:0ca943ce4014 137 writeCOMMAND(command, 11);
rpavoor3 0:0ca943ce4014 138 }
rpavoor3 0:0ca943ce4014 139
rpavoor3 0:0ca943ce4014 140 //****************************************************************************************************
rpavoor3 0:0ca943ce4014 141 void uLCD_4DGL :: rectangle(int x1, int y1 , int x2, int y2, int color) // draw a rectangle
rpavoor3 0:0ca943ce4014 142 {
rpavoor3 0:0ca943ce4014 143 char command[11]= "";
rpavoor3 0:0ca943ce4014 144
rpavoor3 0:0ca943ce4014 145 command[0] = RECTANGLE;
rpavoor3 0:0ca943ce4014 146
rpavoor3 0:0ca943ce4014 147 command[1] = (x1 >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 148 command[2] = x1 & 0xFF;
rpavoor3 0:0ca943ce4014 149
rpavoor3 0:0ca943ce4014 150 command[3] = (y1 >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 151 command[4] = y1 & 0xFF;
rpavoor3 0:0ca943ce4014 152
rpavoor3 0:0ca943ce4014 153 command[5] = (x2 >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 154 command[6] = x2 & 0xFF;
rpavoor3 0:0ca943ce4014 155
rpavoor3 0:0ca943ce4014 156 command[7] = (y2 >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 157 command[8] = y2 & 0xFF;
rpavoor3 0:0ca943ce4014 158
rpavoor3 0:0ca943ce4014 159 int red5 = (color >> (16 + 3)) & 0x1F; // get red on 5 bits
rpavoor3 0:0ca943ce4014 160 int green6 = (color >> (8 + 2)) & 0x3F; // get green on 6 bits
rpavoor3 0:0ca943ce4014 161 int blue5 = (color >> (0 + 3)) & 0x1F; // get blue on 5 bits
rpavoor3 0:0ca943ce4014 162
rpavoor3 0:0ca943ce4014 163 command[9] = ((red5 << 3) + (green6 >> 3)) & 0xFF; // first part of 16 bits color
rpavoor3 0:0ca943ce4014 164 command[10] = ((green6 << 5) + (blue5 >> 0)) & 0xFF; // second part of 16 bits color
rpavoor3 0:0ca943ce4014 165
rpavoor3 0:0ca943ce4014 166 writeCOMMAND(command, 11);
rpavoor3 0:0ca943ce4014 167 }
rpavoor3 0:0ca943ce4014 168
rpavoor3 0:0ca943ce4014 169 //****************************************************************************************************
rpavoor3 0:0ca943ce4014 170 void uLCD_4DGL :: filled_rectangle(int x1, int y1 , int x2, int y2, int color) // draw a rectangle
rpavoor3 0:0ca943ce4014 171 {
rpavoor3 0:0ca943ce4014 172 char command[11]= "";
rpavoor3 0:0ca943ce4014 173
rpavoor3 0:0ca943ce4014 174 command[0] = FRECTANGLE;
rpavoor3 0:0ca943ce4014 175
rpavoor3 0:0ca943ce4014 176 command[1] = (x1 >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 177 command[2] = x1 & 0xFF;
rpavoor3 0:0ca943ce4014 178
rpavoor3 0:0ca943ce4014 179 command[3] = (y1 >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 180 command[4] = y1 & 0xFF;
rpavoor3 0:0ca943ce4014 181
rpavoor3 0:0ca943ce4014 182 command[5] = (x2 >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 183 command[6] = x2 & 0xFF;
rpavoor3 0:0ca943ce4014 184
rpavoor3 0:0ca943ce4014 185 command[7] = (y2 >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 186 command[8] = y2 & 0xFF;
rpavoor3 0:0ca943ce4014 187
rpavoor3 0:0ca943ce4014 188 int red5 = (color >> (16 + 3)) & 0x1F; // get red on 5 bits
rpavoor3 0:0ca943ce4014 189 int green6 = (color >> (8 + 2)) & 0x3F; // get green on 6 bits
rpavoor3 0:0ca943ce4014 190 int blue5 = (color >> (0 + 3)) & 0x1F; // get blue on 5 bits
rpavoor3 0:0ca943ce4014 191
rpavoor3 0:0ca943ce4014 192 command[9] = ((red5 << 3) + (green6 >> 3)) & 0xFF; // first part of 16 bits color
rpavoor3 0:0ca943ce4014 193 command[10] = ((green6 << 5) + (blue5 >> 0)) & 0xFF; // second part of 16 bits color
rpavoor3 0:0ca943ce4014 194
rpavoor3 0:0ca943ce4014 195 writeCOMMAND(command, 11);
rpavoor3 0:0ca943ce4014 196 }
rpavoor3 0:0ca943ce4014 197
rpavoor3 0:0ca943ce4014 198
rpavoor3 0:0ca943ce4014 199
rpavoor3 0:0ca943ce4014 200 //****************************************************************************************************
rpavoor3 0:0ca943ce4014 201 void uLCD_4DGL :: pixel(int x, int y, int color) // draw a pixel
rpavoor3 0:0ca943ce4014 202 {
rpavoor3 0:0ca943ce4014 203 char command[7]= "";
rpavoor3 0:0ca943ce4014 204
rpavoor3 0:0ca943ce4014 205 command[0] = PIXEL;
rpavoor3 0:0ca943ce4014 206
rpavoor3 0:0ca943ce4014 207 command[1] = (x >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 208 command[2] = x & 0xFF;
rpavoor3 0:0ca943ce4014 209
rpavoor3 0:0ca943ce4014 210 command[3] = (y >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 211 command[4] = y & 0xFF;
rpavoor3 0:0ca943ce4014 212
rpavoor3 0:0ca943ce4014 213 int red5 = (color >> (16 + 3)) & 0x1F; // get red on 5 bits
rpavoor3 0:0ca943ce4014 214 int green6 = (color >> (8 + 2)) & 0x3F; // get green on 6 bits
rpavoor3 0:0ca943ce4014 215 int blue5 = (color >> (0 + 3)) & 0x1F; // get blue on 5 bits
rpavoor3 0:0ca943ce4014 216
rpavoor3 0:0ca943ce4014 217 command[5] = ((red5 << 3) + (green6 >> 3)) & 0xFF; // first part of 16 bits color
rpavoor3 0:0ca943ce4014 218 command[6] = ((green6 << 5) + (blue5 >> 0)) & 0xFF; // second part of 16 bits color
rpavoor3 0:0ca943ce4014 219
rpavoor3 0:0ca943ce4014 220 writeCOMMAND(command, 7);
rpavoor3 0:0ca943ce4014 221 }
rpavoor3 0:0ca943ce4014 222 //****************************************************************************************************
rpavoor3 0:0ca943ce4014 223 void uLCD_4DGL :: BLIT(int x, int y, int w, int h, int *colors) // draw a block of pixels
rpavoor3 0:0ca943ce4014 224 {
rpavoor3 0:0ca943ce4014 225 int red5, green6, blue5;
rpavoor3 0:0ca943ce4014 226 writeBYTEfast('\x00');
rpavoor3 0:0ca943ce4014 227 writeBYTEfast(BLITCOM);
rpavoor3 0:0ca943ce4014 228 writeBYTEfast((x >> 8) & 0xFF);
rpavoor3 0:0ca943ce4014 229 writeBYTEfast(x & 0xFF);
rpavoor3 0:0ca943ce4014 230 writeBYTEfast((y >> 8) & 0xFF);
rpavoor3 0:0ca943ce4014 231 writeBYTEfast(y & 0xFF);
rpavoor3 0:0ca943ce4014 232 writeBYTEfast((w >> 8) & 0xFF);
rpavoor3 0:0ca943ce4014 233 writeBYTE(w & 0xFF);
rpavoor3 0:0ca943ce4014 234 writeBYTE((h >> 8) & 0xFF);
rpavoor3 0:0ca943ce4014 235 writeBYTE(h & 0xFF);
rpavoor3 0:0ca943ce4014 236 wait_ms(1);
rpavoor3 0:0ca943ce4014 237 for (int i=0; i<w*h; i++) {
rpavoor3 0:0ca943ce4014 238 red5 = (colors[i] >> (16 + 3)) & 0x1F; // get red on 5 bits
rpavoor3 0:0ca943ce4014 239 green6 = (colors[i] >> (8 + 2)) & 0x3F; // get green on 6 bits
rpavoor3 0:0ca943ce4014 240 blue5 = (colors[i] >> (0 + 3)) & 0x1F; // get blue on 5 bits
rpavoor3 0:0ca943ce4014 241 writeBYTEfast(((red5 << 3) + (green6 >> 3)) & 0xFF); // first part of 16 bits color
rpavoor3 0:0ca943ce4014 242 writeBYTEfast(((green6 << 5) + (blue5 >> 0)) & 0xFF); // second part of 16 bits color
rpavoor3 0:0ca943ce4014 243 }
rpavoor3 0:0ca943ce4014 244 int resp=0;
rpavoor3 0:0ca943ce4014 245 while (!_cmd.readable()) wait_ms(TEMPO); // wait for screen answer
rpavoor3 0:0ca943ce4014 246 if (_cmd.readable()) resp = _cmd.getc(); // read response if any
rpavoor3 0:0ca943ce4014 247 switch (resp) {
rpavoor3 0:0ca943ce4014 248 case ACK : // if OK return 1
rpavoor3 0:0ca943ce4014 249 resp = 1;
rpavoor3 0:0ca943ce4014 250 break;
rpavoor3 0:0ca943ce4014 251 case NAK : // if NOK return -1
rpavoor3 0:0ca943ce4014 252 resp = -1;
rpavoor3 0:0ca943ce4014 253 break;
rpavoor3 0:0ca943ce4014 254 default :
rpavoor3 0:0ca943ce4014 255 resp = 0; // else return 0
rpavoor3 0:0ca943ce4014 256 break;
rpavoor3 0:0ca943ce4014 257 }
rpavoor3 0:0ca943ce4014 258 #if DEBUGMODE
rpavoor3 0:0ca943ce4014 259 pc.printf(" Answer received : %d\n",resp);
rpavoor3 0:0ca943ce4014 260 #endif
rpavoor3 0:0ca943ce4014 261
rpavoor3 0:0ca943ce4014 262 }
rpavoor3 0:0ca943ce4014 263 //******************************************************************************************************
rpavoor3 0:0ca943ce4014 264 int uLCD_4DGL :: read_pixel(int x, int y) // read screen info and populate data
rpavoor3 0:0ca943ce4014 265 {
rpavoor3 0:0ca943ce4014 266
rpavoor3 0:0ca943ce4014 267 char command[6]= "";
rpavoor3 0:0ca943ce4014 268 command[0] = 0xFF;
rpavoor3 0:0ca943ce4014 269 command[1] = READPIXEL;
rpavoor3 0:0ca943ce4014 270
rpavoor3 0:0ca943ce4014 271 command[2] = (x >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 272 command[3] = x & 0xFF;
rpavoor3 0:0ca943ce4014 273
rpavoor3 0:0ca943ce4014 274 command[4] = (y >> 8) & 0xFF;
rpavoor3 0:0ca943ce4014 275 command[5] = y & 0xFF;
rpavoor3 0:0ca943ce4014 276
rpavoor3 0:0ca943ce4014 277 int i, temp = 0, color = 0, resp = 0;
rpavoor3 0:0ca943ce4014 278 char response[2] = "";
rpavoor3 0:0ca943ce4014 279
rpavoor3 0:0ca943ce4014 280 freeBUFFER();
rpavoor3 0:0ca943ce4014 281
rpavoor3 0:0ca943ce4014 282 for (i = 0; i < 6; i++) { // send all chars to serial port
rpavoor3 0:0ca943ce4014 283 writeBYTE(command[i]);
rpavoor3 0:0ca943ce4014 284 }
rpavoor3 0:0ca943ce4014 285
rpavoor3 0:0ca943ce4014 286 while (!_cmd.readable()) wait_ms(TEMPO); // wait for screen answer
rpavoor3 0:0ca943ce4014 287
rpavoor3 0:0ca943ce4014 288 while (_cmd.readable() && resp < ARRAY_SIZE(response)) {
rpavoor3 0:0ca943ce4014 289 temp = _cmd.getc();
rpavoor3 0:0ca943ce4014 290 response[resp++] = (char)temp;
rpavoor3 0:0ca943ce4014 291 }
rpavoor3 0:0ca943ce4014 292
rpavoor3 0:0ca943ce4014 293 color = ((response[0] << 8) + response[1]);
rpavoor3 0:0ca943ce4014 294
rpavoor3 0:0ca943ce4014 295 return color; // WARNING : this is 16bits color, not 24bits... need to be fixed
rpavoor3 0:0ca943ce4014 296 }
rpavoor3 0:0ca943ce4014 297
rpavoor3 0:0ca943ce4014 298
rpavoor3 0:0ca943ce4014 299 //****************************************************************************************************
rpavoor3 0:0ca943ce4014 300 void uLCD_4DGL :: pen_size(char mode) // set pen to SOLID or WIREFRAME
rpavoor3 0:0ca943ce4014 301 {
rpavoor3 0:0ca943ce4014 302 char command[2]= "";
rpavoor3 0:0ca943ce4014 303
rpavoor3 0:0ca943ce4014 304 command[0] = PENSIZE;
rpavoor3 0:0ca943ce4014 305 command[1] = mode;
rpavoor3 0:0ca943ce4014 306 writeCOMMAND(command, 2);
rpavoor3 0:0ca943ce4014 307 }
rpavoor3 0:0ca943ce4014 308
rpavoor3 0:0ca943ce4014 309
rpavoor3 0:0ca943ce4014 310