SMARTGPU intelligent embedded graphics processor, this library helps to communicate mBed with SMARTGPU dev board 2.4\" touch, excellent serial board that only require TX,RX, and Reset pin to mbed. Powerfull graphics and text processor with universal 4GB micro SD (FAT windows) format compatible. For detailed information visit: http://www.vizictechnologies.com/#/desarrollo/4554296549 www.vizictechnologies.com

Dependents:   VariousSG BouncingBalls BounceBall House ... more

Committer:
emmanuelchio
Date:
Tue Sep 13 04:04:20 2011 +0000
Revision:
1:96ed067e95a6
Parent:
0:32fe54a88167
SMARTGPU Rev1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emmanuelchio 0:32fe54a88167 1
emmanuelchio 0:32fe54a88167 2 #include "mbed.h"
emmanuelchio 0:32fe54a88167 3 #include "SMARTGPU.h"
emmanuelchio 1:96ed067e95a6 4
emmanuelchio 0:32fe54a88167 5 // SMART GPU DEFAULT BAUD RATE: 9600bps
emmanuelchio 1:96ed067e95a6 6 //It shoud be used like this : SMARTGPU lcd(p13,p14,p15); for serial communication with SMARTGPU
emmanuelchio 1:96ed067e95a6 7 SMARTGPU::SMARTGPU(PinName TXPin, PinName RXPin, PinName resetPin): _serialSMARTGPU(TXPin,RXPin), _resetPin(resetPin){
emmanuelchio 0:32fe54a88167 8 init();
emmanuelchio 0:32fe54a88167 9 }
emmanuelchio 0:32fe54a88167 10
emmanuelchio 0:32fe54a88167 11 /********** high level commands, for the user! */
emmanuelchio 0:32fe54a88167 12 void SMARTGPU::init(){ //configure the mbed for SMARTGPU board
emmanuelchio 1:96ed067e95a6 13 _serialSMARTGPU.baud(9600);
emmanuelchio 1:96ed067e95a6 14 _resetPin=1; //set the pin to 3.3v to avoid reset
emmanuelchio 0:32fe54a88167 15 }
emmanuelchio 0:32fe54a88167 16
emmanuelchio 0:32fe54a88167 17 void SMARTGPU::reset(){ //Reset the SMARTGPU board
emmanuelchio 1:96ed067e95a6 18 _resetPin=0; //set the pin to GND to reset
emmanuelchio 0:32fe54a88167 19 wait_ms(500);
emmanuelchio 1:96ed067e95a6 20 _resetPin=1; //set the pin to 3.3v to end reset
emmanuelchio 0:32fe54a88167 21 wait_ms(500);
emmanuelchio 0:32fe54a88167 22 }
emmanuelchio 0:32fe54a88167 23
emmanuelchio 0:32fe54a88167 24 unsigned char SMARTGPU::start(){ //Init the SMARTGPU
emmanuelchio 0:32fe54a88167 25 wait_ms(500);
emmanuelchio 1:96ed067e95a6 26 _serialSMARTGPU.putc('U');
emmanuelchio 0:32fe54a88167 27 wait_ms(1000);
emmanuelchio 1:96ed067e95a6 28 return _serialSMARTGPU.getc();
emmanuelchio 0:32fe54a88167 29 }
emmanuelchio 0:32fe54a88167 30
emmanuelchio 0:32fe54a88167 31 unsigned char SMARTGPU::erase(){ //Erase the SMARTGPU screen
emmanuelchio 1:96ed067e95a6 32 _serialSMARTGPU.putc('E');
emmanuelchio 1:96ed067e95a6 33 return _serialSMARTGPU.getc();
emmanuelchio 0:32fe54a88167 34 }
emmanuelchio 0:32fe54a88167 35
emmanuelchio 0:32fe54a88167 36 unsigned char SMARTGPU::sleep(unsigned char mode){ //Send SMARTGPU to sleep mode
emmanuelchio 1:96ed067e95a6 37 _serialSMARTGPU.putc('Z');
emmanuelchio 1:96ed067e95a6 38 _serialSMARTGPU.putc(mode);
emmanuelchio 1:96ed067e95a6 39 return _serialSMARTGPU.getc();
emmanuelchio 0:32fe54a88167 40 }
emmanuelchio 0:32fe54a88167 41
emmanuelchio 0:32fe54a88167 42 unsigned char SMARTGPU::orientation(unsigned char side){ //Change display orientation
emmanuelchio 1:96ed067e95a6 43 _serialSMARTGPU.putc('O');
emmanuelchio 1:96ed067e95a6 44 _serialSMARTGPU.putc(side);
emmanuelchio 1:96ed067e95a6 45 return _serialSMARTGPU.getc();
emmanuelchio 0:32fe54a88167 46 }
emmanuelchio 0:32fe54a88167 47
emmanuelchio 0:32fe54a88167 48 unsigned char SMARTGPU::bright(unsigned char val){ //Change display brightness
emmanuelchio 1:96ed067e95a6 49 _serialSMARTGPU.putc('V');
emmanuelchio 1:96ed067e95a6 50 _serialSMARTGPU.putc(val);
emmanuelchio 1:96ed067e95a6 51 return _serialSMARTGPU.getc();
emmanuelchio 0:32fe54a88167 52 }
emmanuelchio 0:32fe54a88167 53
emmanuelchio 0:32fe54a88167 54 unsigned char SMARTGPU::baudChange(unsigned long val){ //Change baud rate of arduino and SMARTGPU board
emmanuelchio 0:32fe54a88167 55 unsigned char aux;
emmanuelchio 0:32fe54a88167 56
emmanuelchio 0:32fe54a88167 57 switch(val){
emmanuelchio 0:32fe54a88167 58 case 9600:
emmanuelchio 0:32fe54a88167 59 aux=0;
emmanuelchio 0:32fe54a88167 60 break;
emmanuelchio 0:32fe54a88167 61 case 19200:
emmanuelchio 0:32fe54a88167 62 aux=1;
emmanuelchio 0:32fe54a88167 63 break;
emmanuelchio 0:32fe54a88167 64 case 57600:
emmanuelchio 0:32fe54a88167 65 aux=2;
emmanuelchio 0:32fe54a88167 66 break;
emmanuelchio 0:32fe54a88167 67 case 115200:
emmanuelchio 0:32fe54a88167 68 aux=3;
emmanuelchio 0:32fe54a88167 69 break;
emmanuelchio 0:32fe54a88167 70 case 256000:
emmanuelchio 0:32fe54a88167 71 aux=4;
emmanuelchio 0:32fe54a88167 72 break;
emmanuelchio 0:32fe54a88167 73 case 500000:
emmanuelchio 0:32fe54a88167 74 aux=5;
emmanuelchio 0:32fe54a88167 75 break;
emmanuelchio 0:32fe54a88167 76 case 1000000:
emmanuelchio 0:32fe54a88167 77 aux=6;
emmanuelchio 0:32fe54a88167 78 break;
emmanuelchio 0:32fe54a88167 79 case 2000000:
emmanuelchio 0:32fe54a88167 80 aux=7;
emmanuelchio 0:32fe54a88167 81 break;
emmanuelchio 0:32fe54a88167 82 default:
emmanuelchio 0:32fe54a88167 83 return 'F';
emmanuelchio 0:32fe54a88167 84 }
emmanuelchio 1:96ed067e95a6 85 _serialSMARTGPU.putc('X');
emmanuelchio 1:96ed067e95a6 86 _serialSMARTGPU.putc(aux);
emmanuelchio 1:96ed067e95a6 87 aux=_serialSMARTGPU.getc();
emmanuelchio 0:32fe54a88167 88 if(aux=='O'){
emmanuelchio 0:32fe54a88167 89 wait_ms(150);
emmanuelchio 1:96ed067e95a6 90 _serialSMARTGPU.baud(val);
emmanuelchio 0:32fe54a88167 91 wait_ms(200);
emmanuelchio 1:96ed067e95a6 92 return _serialSMARTGPU.getc();
emmanuelchio 0:32fe54a88167 93 }else{
emmanuelchio 0:32fe54a88167 94 return aux;
emmanuelchio 0:32fe54a88167 95 }
emmanuelchio 0:32fe54a88167 96 }
emmanuelchio 0:32fe54a88167 97
emmanuelchio 0:32fe54a88167 98 unsigned char SMARTGPU::digitalOut(unsigned char number, unsigned char val ){ //Set Digital out pins to a logic value
emmanuelchio 1:96ed067e95a6 99 _serialSMARTGPU.putc('D');
emmanuelchio 1:96ed067e95a6 100 _serialSMARTGPU.putc(number);
emmanuelchio 1:96ed067e95a6 101 _serialSMARTGPU.putc(val);
emmanuelchio 1:96ed067e95a6 102 return _serialSMARTGPU.getc();
emmanuelchio 0:32fe54a88167 103 }
emmanuelchio 0:32fe54a88167 104
emmanuelchio 0:32fe54a88167 105 unsigned char SMARTGPU::setScreenBackground(int colour){ //Change the default screen background colour for erase function
emmanuelchio 1:96ed067e95a6 106 _serialSMARTGPU.putc('B');
emmanuelchio 1:96ed067e95a6 107 _serialSMARTGPU.putc(colour>>8);
emmanuelchio 1:96ed067e95a6 108 _serialSMARTGPU.putc(colour);
emmanuelchio 1:96ed067e95a6 109 return _serialSMARTGPU.getc();
emmanuelchio 0:32fe54a88167 110 }
emmanuelchio 0:32fe54a88167 111
emmanuelchio 0:32fe54a88167 112 unsigned char SMARTGPU::setTextBackground(int colour){ //Set the default text background colour for letters and strings
emmanuelchio 1:96ed067e95a6 113 _serialSMARTGPU.putc('A');
emmanuelchio 1:96ed067e95a6 114 _serialSMARTGPU.putc(colour>>8);
emmanuelchio 1:96ed067e95a6 115 _serialSMARTGPU.putc(colour);
emmanuelchio 1:96ed067e95a6 116 return _serialSMARTGPU.getc();
emmanuelchio 0:32fe54a88167 117 }
emmanuelchio 0:32fe54a88167 118
emmanuelchio 0:32fe54a88167 119 unsigned char SMARTGPU::memoryRead(int x1, int y1, int x2, int y2, char buffer[]){ //Read the internal memory of the SMARTGPU, This command returns 24bit pixels (3 bytes)
emmanuelchio 0:32fe54a88167 120 unsigned int i,j,k=0;
emmanuelchio 0:32fe54a88167 121
emmanuelchio 1:96ed067e95a6 122 _serialSMARTGPU.putc('M');
emmanuelchio 1:96ed067e95a6 123 _serialSMARTGPU.putc(x1>>8);
emmanuelchio 1:96ed067e95a6 124 _serialSMARTGPU.putc(x1);
emmanuelchio 1:96ed067e95a6 125 _serialSMARTGPU.putc(y1>>8);
emmanuelchio 1:96ed067e95a6 126 _serialSMARTGPU.putc(y1);
emmanuelchio 1:96ed067e95a6 127 _serialSMARTGPU.putc(x2>>8);
emmanuelchio 1:96ed067e95a6 128 _serialSMARTGPU.putc(x2);
emmanuelchio 1:96ed067e95a6 129 _serialSMARTGPU.putc(y2>>8);
emmanuelchio 1:96ed067e95a6 130 _serialSMARTGPU.putc(y2);
emmanuelchio 0:32fe54a88167 131
emmanuelchio 0:32fe54a88167 132 //receive all the pixels
emmanuelchio 0:32fe54a88167 133 for(j=0;j<=(y2-y1);j++){
emmanuelchio 0:32fe54a88167 134 for(i=0;i<=(x2-x1);i++){
emmanuelchio 1:96ed067e95a6 135 buffer[k]=_serialSMARTGPU.getc(); //Red
emmanuelchio 0:32fe54a88167 136 k++;
emmanuelchio 1:96ed067e95a6 137 buffer[k]=_serialSMARTGPU.getc(); //Green
emmanuelchio 0:32fe54a88167 138 k++;
emmanuelchio 1:96ed067e95a6 139 buffer[k]=_serialSMARTGPU.getc(); //Blue
emmanuelchio 0:32fe54a88167 140 k++;
emmanuelchio 0:32fe54a88167 141 }
emmanuelchio 0:32fe54a88167 142 }
emmanuelchio 1:96ed067e95a6 143 return _serialSMARTGPU.getc();
emmanuelchio 0:32fe54a88167 144 }
emmanuelchio 0:32fe54a88167 145
emmanuelchio 0:32fe54a88167 146 unsigned char SMARTGPU::putPixel(int x, int y, int colour){ //Draw a pixel on the screen
emmanuelchio 1:96ed067e95a6 147 _serialSMARTGPU.putc('P');
emmanuelchio 1:96ed067e95a6 148 _serialSMARTGPU.putc(x>>8);
emmanuelchio 1:96ed067e95a6 149 _serialSMARTGPU.putc(x);
emmanuelchio 1:96ed067e95a6 150 _serialSMARTGPU.putc(y>>8);
emmanuelchio 1:96ed067e95a6 151 _serialSMARTGPU.putc(y);
emmanuelchio 1:96ed067e95a6 152 _serialSMARTGPU.putc(colour>>8);
emmanuelchio 1:96ed067e95a6 153 _serialSMARTGPU.putc(colour);
emmanuelchio 1:96ed067e95a6 154 return _serialSMARTGPU.getc();
emmanuelchio 0:32fe54a88167 155 }
emmanuelchio 0:32fe54a88167 156
emmanuelchio 0:32fe54a88167 157 unsigned char SMARTGPU::drawLine(int x1, int y1, int x2, int y2, int colour){ //Draw a line on the screen
emmanuelchio 1:96ed067e95a6 158 _serialSMARTGPU.putc('L');
emmanuelchio 1:96ed067e95a6 159 _serialSMARTGPU.putc(x1>>8);
emmanuelchio 1:96ed067e95a6 160 _serialSMARTGPU.putc(x1);
emmanuelchio 1:96ed067e95a6 161 _serialSMARTGPU.putc(y1>>8);
emmanuelchio 1:96ed067e95a6 162 _serialSMARTGPU.putc(y1);
emmanuelchio 1:96ed067e95a6 163 _serialSMARTGPU.putc(x2>>8);
emmanuelchio 1:96ed067e95a6 164 _serialSMARTGPU.putc(x2);
emmanuelchio 1:96ed067e95a6 165 _serialSMARTGPU.putc(y2>>8);
emmanuelchio 1:96ed067e95a6 166 _serialSMARTGPU.putc(y2);
emmanuelchio 1:96ed067e95a6 167 _serialSMARTGPU.putc(colour>>8);
emmanuelchio 1:96ed067e95a6 168 _serialSMARTGPU.putc(colour);
emmanuelchio 1:96ed067e95a6 169 return _serialSMARTGPU.getc();
emmanuelchio 0:32fe54a88167 170 }
emmanuelchio 0:32fe54a88167 171
emmanuelchio 0:32fe54a88167 172 unsigned char SMARTGPU::drawRectangle(int x1, int y1, int x2, int y2, int colour, unsigned char fill){ //Draw a rectangle on the screen
emmanuelchio 1:96ed067e95a6 173 _serialSMARTGPU.putc('R');
emmanuelchio 1:96ed067e95a6 174 _serialSMARTGPU.putc(x1>>8);
emmanuelchio 1:96ed067e95a6 175 _serialSMARTGPU.putc(x1);
emmanuelchio 1:96ed067e95a6 176 _serialSMARTGPU.putc(y1>>8);
emmanuelchio 1:96ed067e95a6 177 _serialSMARTGPU.putc(y1);
emmanuelchio 1:96ed067e95a6 178 _serialSMARTGPU.putc(x2>>8);
emmanuelchio 1:96ed067e95a6 179 _serialSMARTGPU.putc(x2);
emmanuelchio 1:96ed067e95a6 180 _serialSMARTGPU.putc(y2>>8);
emmanuelchio 1:96ed067e95a6 181 _serialSMARTGPU.putc(y2);
emmanuelchio 1:96ed067e95a6 182 _serialSMARTGPU.putc(colour>>8);
emmanuelchio 1:96ed067e95a6 183 _serialSMARTGPU.putc(colour);
emmanuelchio 1:96ed067e95a6 184 _serialSMARTGPU.putc(fill);
emmanuelchio 1:96ed067e95a6 185 return _serialSMARTGPU.getc();
emmanuelchio 0:32fe54a88167 186 }
emmanuelchio 0:32fe54a88167 187
emmanuelchio 0:32fe54a88167 188 unsigned char SMARTGPU::drawTriangle(int x1, int y1, int x2, int y2, int x3, int y3, int colour, unsigned char fill){ //Draw a triangle on the screen
emmanuelchio 1:96ed067e95a6 189 _serialSMARTGPU.putc('T');
emmanuelchio 1:96ed067e95a6 190 _serialSMARTGPU.putc(x1>>8);
emmanuelchio 1:96ed067e95a6 191 _serialSMARTGPU.putc(x1);
emmanuelchio 1:96ed067e95a6 192 _serialSMARTGPU.putc(y1>>8);
emmanuelchio 1:96ed067e95a6 193 _serialSMARTGPU.putc(y1);
emmanuelchio 1:96ed067e95a6 194 _serialSMARTGPU.putc(x2>>8);
emmanuelchio 1:96ed067e95a6 195 _serialSMARTGPU.putc(x2);
emmanuelchio 1:96ed067e95a6 196 _serialSMARTGPU.putc(y2>>8);
emmanuelchio 1:96ed067e95a6 197 _serialSMARTGPU.putc(y2);
emmanuelchio 1:96ed067e95a6 198 _serialSMARTGPU.putc(x3>>8);
emmanuelchio 1:96ed067e95a6 199 _serialSMARTGPU.putc(x3);
emmanuelchio 1:96ed067e95a6 200 _serialSMARTGPU.putc(y3>>8);
emmanuelchio 1:96ed067e95a6 201 _serialSMARTGPU.putc(y3);
emmanuelchio 1:96ed067e95a6 202 _serialSMARTGPU.putc(colour>>8);
emmanuelchio 1:96ed067e95a6 203 _serialSMARTGPU.putc(colour);
emmanuelchio 1:96ed067e95a6 204 _serialSMARTGPU.putc(fill);
emmanuelchio 1:96ed067e95a6 205 return _serialSMARTGPU.getc();
emmanuelchio 0:32fe54a88167 206 }
emmanuelchio 0:32fe54a88167 207
emmanuelchio 0:32fe54a88167 208 unsigned char SMARTGPU::drawCircle(int x, int y, int radius, int colour, unsigned char fill){ //Draw a circle on the screen
emmanuelchio 1:96ed067e95a6 209 _serialSMARTGPU.putc('C');
emmanuelchio 1:96ed067e95a6 210 _serialSMARTGPU.putc(x>>8);
emmanuelchio 1:96ed067e95a6 211 _serialSMARTGPU.putc(x);
emmanuelchio 1:96ed067e95a6 212 _serialSMARTGPU.putc(y>>8);
emmanuelchio 1:96ed067e95a6 213 _serialSMARTGPU.putc(y);
emmanuelchio 1:96ed067e95a6 214 _serialSMARTGPU.putc(radius>>8);
emmanuelchio 1:96ed067e95a6 215 _serialSMARTGPU.putc(radius);
emmanuelchio 1:96ed067e95a6 216 _serialSMARTGPU.putc(colour>>8);
emmanuelchio 1:96ed067e95a6 217 _serialSMARTGPU.putc(colour);
emmanuelchio 1:96ed067e95a6 218 _serialSMARTGPU.putc(fill);
emmanuelchio 1:96ed067e95a6 219 return _serialSMARTGPU.getc();
emmanuelchio 0:32fe54a88167 220 }
emmanuelchio 0:32fe54a88167 221
emmanuelchio 0:32fe54a88167 222 unsigned char SMARTGPU::putLetter(int x, int y, int colour, unsigned char font, unsigned char fill, unsigned char letter){ //Draw a letter on the screen
emmanuelchio 0:32fe54a88167 223
emmanuelchio 1:96ed067e95a6 224 _serialSMARTGPU.putc('W');
emmanuelchio 1:96ed067e95a6 225 _serialSMARTGPU.putc(x>>8);
emmanuelchio 1:96ed067e95a6 226 _serialSMARTGPU.putc(x);
emmanuelchio 1:96ed067e95a6 227 _serialSMARTGPU.putc(y>>8);
emmanuelchio 1:96ed067e95a6 228 _serialSMARTGPU.putc(y);
emmanuelchio 1:96ed067e95a6 229 _serialSMARTGPU.putc(colour>>8);
emmanuelchio 1:96ed067e95a6 230 _serialSMARTGPU.putc(colour);
emmanuelchio 1:96ed067e95a6 231 _serialSMARTGPU.putc(font);
emmanuelchio 1:96ed067e95a6 232 _serialSMARTGPU.putc(fill);
emmanuelchio 1:96ed067e95a6 233 _serialSMARTGPU.putc(letter);
emmanuelchio 1:96ed067e95a6 234 return _serialSMARTGPU.getc();
emmanuelchio 0:32fe54a88167 235 }
emmanuelchio 0:32fe54a88167 236
emmanuelchio 0:32fe54a88167 237 unsigned char SMARTGPU::string(int x1, int y1, int x2, int y2, int colour, unsigned char font, unsigned char fill, char text[]){ //Draw a string on the screen
emmanuelchio 0:32fe54a88167 238 int counter=0;
emmanuelchio 0:32fe54a88167 239
emmanuelchio 1:96ed067e95a6 240 _serialSMARTGPU.putc('S');
emmanuelchio 1:96ed067e95a6 241 _serialSMARTGPU.putc('N'); //not SD
emmanuelchio 1:96ed067e95a6 242 _serialSMARTGPU.putc(x1>>8);
emmanuelchio 1:96ed067e95a6 243 _serialSMARTGPU.putc(x1);
emmanuelchio 1:96ed067e95a6 244 _serialSMARTGPU.putc(y1>>8);
emmanuelchio 1:96ed067e95a6 245 _serialSMARTGPU.putc(y1);
emmanuelchio 1:96ed067e95a6 246 _serialSMARTGPU.putc(x2>>8);
emmanuelchio 1:96ed067e95a6 247 _serialSMARTGPU.putc(x2);
emmanuelchio 1:96ed067e95a6 248 _serialSMARTGPU.putc(y2>>8);
emmanuelchio 1:96ed067e95a6 249 _serialSMARTGPU.putc(y2);
emmanuelchio 1:96ed067e95a6 250 _serialSMARTGPU.putc(colour>>8);
emmanuelchio 1:96ed067e95a6 251 _serialSMARTGPU.putc(colour);
emmanuelchio 1:96ed067e95a6 252 _serialSMARTGPU.putc(font);
emmanuelchio 1:96ed067e95a6 253 _serialSMARTGPU.putc(fill);
emmanuelchio 0:32fe54a88167 254 while(1){
emmanuelchio 1:96ed067e95a6 255 _serialSMARTGPU.putc(text[counter]);
emmanuelchio 0:32fe54a88167 256 if(text[counter]==0x00){
emmanuelchio 0:32fe54a88167 257 break;
emmanuelchio 0:32fe54a88167 258 }
emmanuelchio 0:32fe54a88167 259 counter++;
emmanuelchio 0:32fe54a88167 260 }
emmanuelchio 1:96ed067e95a6 261 return _serialSMARTGPU.getc();
emmanuelchio 0:32fe54a88167 262 }
emmanuelchio 0:32fe54a88167 263
emmanuelchio 0:32fe54a88167 264 unsigned char SMARTGPU::stringSD(int x1, int y1, int x2, int y2, int colour, unsigned char font, unsigned char fill, int BS, int BR, char name[]){ //Draw a String from a text file contained on the micro SD card on the screen
emmanuelchio 0:32fe54a88167 265 unsigned char counter=0;
emmanuelchio 0:32fe54a88167 266
emmanuelchio 1:96ed067e95a6 267 _serialSMARTGPU.putc('S');
emmanuelchio 1:96ed067e95a6 268 _serialSMARTGPU.putc('S'); //from SD
emmanuelchio 1:96ed067e95a6 269 _serialSMARTGPU.putc(x1>>8);
emmanuelchio 1:96ed067e95a6 270 _serialSMARTGPU.putc(x1);
emmanuelchio 1:96ed067e95a6 271 _serialSMARTGPU.putc(y1>>8);
emmanuelchio 1:96ed067e95a6 272 _serialSMARTGPU.putc(y1);
emmanuelchio 1:96ed067e95a6 273 _serialSMARTGPU.putc(x2>>8);
emmanuelchio 1:96ed067e95a6 274 _serialSMARTGPU.putc(x2);
emmanuelchio 1:96ed067e95a6 275 _serialSMARTGPU.putc(y2>>8);
emmanuelchio 1:96ed067e95a6 276 _serialSMARTGPU.putc(y2);
emmanuelchio 1:96ed067e95a6 277 _serialSMARTGPU.putc(colour>>8);
emmanuelchio 1:96ed067e95a6 278 _serialSMARTGPU.putc(colour);
emmanuelchio 1:96ed067e95a6 279 _serialSMARTGPU.putc(font);
emmanuelchio 1:96ed067e95a6 280 _serialSMARTGPU.putc(fill);
emmanuelchio 1:96ed067e95a6 281 _serialSMARTGPU.putc(BS>>8);
emmanuelchio 1:96ed067e95a6 282 _serialSMARTGPU.putc(BS);
emmanuelchio 1:96ed067e95a6 283 _serialSMARTGPU.putc(BR>>8);
emmanuelchio 1:96ed067e95a6 284 _serialSMARTGPU.putc(BR);
emmanuelchio 0:32fe54a88167 285 while(1){
emmanuelchio 1:96ed067e95a6 286 _serialSMARTGPU.putc(name[counter]);
emmanuelchio 0:32fe54a88167 287 if(name[counter]==0x00){
emmanuelchio 0:32fe54a88167 288 break;
emmanuelchio 0:32fe54a88167 289 }
emmanuelchio 0:32fe54a88167 290 counter++;
emmanuelchio 0:32fe54a88167 291 }
emmanuelchio 1:96ed067e95a6 292 return _serialSMARTGPU.getc();
emmanuelchio 0:32fe54a88167 293 }
emmanuelchio 0:32fe54a88167 294
emmanuelchio 0:32fe54a88167 295 unsigned char SMARTGPU::icon(int x1, int y1, int x2, int y2, char icon[]){ //Send and image or icon pixel by pixel to SMARTGPU, 16bit(2 bytes) each pixel RGB565
emmanuelchio 0:32fe54a88167 296 unsigned int i,j,k=0;
emmanuelchio 0:32fe54a88167 297
emmanuelchio 1:96ed067e95a6 298 _serialSMARTGPU.putc('I');
emmanuelchio 1:96ed067e95a6 299 _serialSMARTGPU.putc('N'); //not SD
emmanuelchio 1:96ed067e95a6 300 _serialSMARTGPU.putc(x1>>8);
emmanuelchio 1:96ed067e95a6 301 _serialSMARTGPU.putc(x1);
emmanuelchio 1:96ed067e95a6 302 _serialSMARTGPU.putc(y1>>8);
emmanuelchio 1:96ed067e95a6 303 _serialSMARTGPU.putc(y1);
emmanuelchio 1:96ed067e95a6 304 _serialSMARTGPU.putc(x2>>8);
emmanuelchio 1:96ed067e95a6 305 _serialSMARTGPU.putc(x2);
emmanuelchio 1:96ed067e95a6 306 _serialSMARTGPU.putc(y2>>8);
emmanuelchio 1:96ed067e95a6 307 _serialSMARTGPU.putc(y2);
emmanuelchio 0:32fe54a88167 308
emmanuelchio 0:32fe54a88167 309 //Send icon buffer pixel by pixel
emmanuelchio 0:32fe54a88167 310 for(j=0;j<=(y2-y1);j++){
emmanuelchio 0:32fe54a88167 311 for(i=0;i<=(x2-x1);i++){
emmanuelchio 1:96ed067e95a6 312 _serialSMARTGPU.putc(icon[k]);
emmanuelchio 0:32fe54a88167 313 k++;
emmanuelchio 0:32fe54a88167 314 }
emmanuelchio 0:32fe54a88167 315 }
emmanuelchio 1:96ed067e95a6 316 return _serialSMARTGPU.getc();
emmanuelchio 0:32fe54a88167 317 }
emmanuelchio 0:32fe54a88167 318
emmanuelchio 0:32fe54a88167 319 unsigned char SMARTGPU::imageSD(int x, int y, char name[]){ //Draw an Image contained on the micro SD card on the screen, top left corner coordinates
emmanuelchio 0:32fe54a88167 320 unsigned char counter=0;
emmanuelchio 0:32fe54a88167 321
emmanuelchio 1:96ed067e95a6 322 _serialSMARTGPU.putc('I');
emmanuelchio 1:96ed067e95a6 323 _serialSMARTGPU.putc('S'); //from SD
emmanuelchio 1:96ed067e95a6 324 _serialSMARTGPU.putc(x>>8);
emmanuelchio 1:96ed067e95a6 325 _serialSMARTGPU.putc(x);
emmanuelchio 1:96ed067e95a6 326 _serialSMARTGPU.putc(y>>8);
emmanuelchio 1:96ed067e95a6 327 _serialSMARTGPU.putc(y);
emmanuelchio 0:32fe54a88167 328 while(1){
emmanuelchio 1:96ed067e95a6 329 _serialSMARTGPU.putc(name[counter]);
emmanuelchio 0:32fe54a88167 330 if(name[counter]==0x00){
emmanuelchio 0:32fe54a88167 331 break;
emmanuelchio 0:32fe54a88167 332 }
emmanuelchio 0:32fe54a88167 333 counter++;
emmanuelchio 0:32fe54a88167 334 }
emmanuelchio 1:96ed067e95a6 335 return _serialSMARTGPU.getc();
emmanuelchio 0:32fe54a88167 336 }
emmanuelchio 0:32fe54a88167 337
emmanuelchio 0:32fe54a88167 338 unsigned char SMARTGPU::touchScreen(int buffer[]){ //Ask for a touch on the screen, if return=1, touch coordinates are stored on the buffer[]
emmanuelchio 0:32fe54a88167 339
emmanuelchio 1:96ed067e95a6 340 _serialSMARTGPU.putc('G');
emmanuelchio 1:96ed067e95a6 341 buffer[0]=_serialSMARTGPU.getc();
emmanuelchio 0:32fe54a88167 342 buffer[0]=buffer[0]<<8;
emmanuelchio 1:96ed067e95a6 343 buffer[0]|=_serialSMARTGPU.getc();
emmanuelchio 1:96ed067e95a6 344 buffer[1]=_serialSMARTGPU.getc();
emmanuelchio 0:32fe54a88167 345 buffer[1]=buffer[1]<<8;
emmanuelchio 1:96ed067e95a6 346 buffer[1]|=_serialSMARTGPU.getc();
emmanuelchio 1:96ed067e95a6 347 _serialSMARTGPU.getc();
emmanuelchio 0:32fe54a88167 348 if(buffer[0]<0x0200){
emmanuelchio 0:32fe54a88167 349 return 1;
emmanuelchio 0:32fe54a88167 350 }else{
emmanuelchio 0:32fe54a88167 351 return 0;
emmanuelchio 0:32fe54a88167 352 }
emmanuelchio 0:32fe54a88167 353 }
emmanuelchio 0:32fe54a88167 354
emmanuelchio 0:32fe54a88167 355 unsigned char SMARTGPU::touchIcon(char buffer[]){ //Ask for a touch on the icons of the screen, if return=1, icon name is stored on the buffer[]
emmanuelchio 0:32fe54a88167 356
emmanuelchio 1:96ed067e95a6 357 _serialSMARTGPU.putc('G');
emmanuelchio 1:96ed067e95a6 358 buffer[0]=_serialSMARTGPU.getc();
emmanuelchio 1:96ed067e95a6 359 buffer[1]=_serialSMARTGPU.getc();
emmanuelchio 1:96ed067e95a6 360 buffer[2]=_serialSMARTGPU.getc();
emmanuelchio 1:96ed067e95a6 361 buffer[3]=_serialSMARTGPU.getc();
emmanuelchio 1:96ed067e95a6 362 _serialSMARTGPU.getc();
emmanuelchio 0:32fe54a88167 363 if(!(buffer[0]<0x02) & (buffer[0]!=0x4E)){
emmanuelchio 0:32fe54a88167 364 return 1;
emmanuelchio 0:32fe54a88167 365 }else{
emmanuelchio 0:32fe54a88167 366 return 0;
emmanuelchio 0:32fe54a88167 367 }
emmanuelchio 0:32fe54a88167 368 }