- -

Dependents:   deal_or_no_deal_graphics

Committer:
AlexFerrara
Date:
Mon Oct 31 08:07:41 2016 +0000
Revision:
0:d904fc771672
-

Who changed what in which revision?

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