A dedictaed demo for ra8875

Dependencies:   DmTftLibrary mbed

Committer:
displaymodule
Date:
Thu Jan 22 04:48:55 2015 +0000
Revision:
0:2ea98b288413
add new ra8875 demo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
displaymodule 0:2ea98b288413 1 /**********************************************************************************************
displaymodule 0:2ea98b288413 2 Copyright (c) 2014 DisplayModule. All rights reserved.
displaymodule 0:2ea98b288413 3
displaymodule 0:2ea98b288413 4 Redistribution and use of this source code, part of this source code or any compiled binary
displaymodule 0:2ea98b288413 5 based on this source code is permitted as long as the above copyright notice and following
displaymodule 0:2ea98b288413 6 disclaimer is retained.
displaymodule 0:2ea98b288413 7
displaymodule 0:2ea98b288413 8 DISCLAIMER:
displaymodule 0:2ea98b288413 9 THIS SOFTWARE IS SUPPLIED "AS IS" WITHOUT ANY WARRANTIES AND SUPPORT. DISPLAYMODULE ASSUMES
displaymodule 0:2ea98b288413 10 NO RESPONSIBILITY OR LIABILITY FOR THE USE OF THE SOFTWARE.
displaymodule 0:2ea98b288413 11
displaymodule 0:2ea98b288413 12 The GFX_TEST function is based on UTFT_Demo (http://www.henningkarlsen.com/electronics/)
displaymodule 0:2ea98b288413 13 ********************************************************************************************/
displaymodule 0:2ea98b288413 14
displaymodule 0:2ea98b288413 15 /******************************************************************************
displaymodule 0:2ea98b288413 16 * Includes
displaymodule 0:2ea98b288413 17 *****************************************************************************/
displaymodule 0:2ea98b288413 18
displaymodule 0:2ea98b288413 19 #include "mbed.h"
displaymodule 0:2ea98b288413 20
displaymodule 0:2ea98b288413 21
displaymodule 0:2ea98b288413 22 #include "DmTftRa8875.h"
displaymodule 0:2ea98b288413 23 #include "DmTouch.h"
displaymodule 0:2ea98b288413 24
displaymodule 0:2ea98b288413 25 /******************************************************************************
displaymodule 0:2ea98b288413 26 * Typedefs and defines
displaymodule 0:2ea98b288413 27 *****************************************************************************/
displaymodule 0:2ea98b288413 28
displaymodule 0:2ea98b288413 29 /* Note that there are restrictions on which platforms that can use printf
displaymodule 0:2ea98b288413 30 in combinations with the DmTftLibrary. Some platforms (e.g. LPC1549 LPCXpresso)
displaymodule 0:2ea98b288413 31 use the same pins for USBRX/USBTX and display control. Printing will
displaymodule 0:2ea98b288413 32 cause the display to not work. Read more about this on the display's notebook
displaymodule 0:2ea98b288413 33 page. */
displaymodule 0:2ea98b288413 34 //#define log(...) printf(__VA_ARGS__)
displaymodule 0:2ea98b288413 35 #define log(...)
displaymodule 0:2ea98b288413 36
displaymodule 0:2ea98b288413 37 #if 1
displaymodule 0:2ea98b288413 38 /* Displays without adapter */
displaymodule 0:2ea98b288413 39 #define DM_PIN_SPI_MOSI D11
displaymodule 0:2ea98b288413 40 #define DM_PIN_SPI_MISO D12
displaymodule 0:2ea98b288413 41 #define DM_PIN_SPI_SCLK D13
displaymodule 0:2ea98b288413 42 #define DM_PIN_CS_TOUCH D4
displaymodule 0:2ea98b288413 43 #define DM_PIN_CS_TFT D10
displaymodule 0:2ea98b288413 44 #define DM_PIN_CS_SDCARD D8
displaymodule 0:2ea98b288413 45 #define DM_PIN_CS_FLASH D6
displaymodule 0:2ea98b288413 46 #else
displaymodule 0:2ea98b288413 47 /* Displays with adapter */
displaymodule 0:2ea98b288413 48 #define DM_PIN_SPI_MOSI A0
displaymodule 0:2ea98b288413 49 #define DM_PIN_SPI_MISO D9
displaymodule 0:2ea98b288413 50 #define DM_PIN_SPI_SCLK A1
displaymodule 0:2ea98b288413 51 #define DM_PIN_CS_TOUCH D8
displaymodule 0:2ea98b288413 52 #define DM_PIN_CS_TFT A3
displaymodule 0:2ea98b288413 53 #define DM_PIN_CS_SDCARD D10
displaymodule 0:2ea98b288413 54 #endif
displaymodule 0:2ea98b288413 55
displaymodule 0:2ea98b288413 56 /******************************************************************************
displaymodule 0:2ea98b288413 57 * Local variables
displaymodule 0:2ea98b288413 58 *****************************************************************************/
displaymodule 0:2ea98b288413 59 DmTftRa8875 tft; /* DM_TFT50_111 */
displaymodule 0:2ea98b288413 60
displaymodule 0:2ea98b288413 61 //For DmTftRa8875 driver, The panel resolution should be config in DmTftRa8875::init() function on the DmTftRa8875.cpp file.
displaymodule 0:2ea98b288413 62 DmTouch touch(DmTouch::DM_TFT50_111);
displaymodule 0:2ea98b288413 63
displaymodule 0:2ea98b288413 64 DigitalInOut csTouch(DM_PIN_CS_TOUCH, PIN_OUTPUT, PullUp, 1);
displaymodule 0:2ea98b288413 65 DigitalInOut csDisplay(DM_PIN_CS_TFT, PIN_OUTPUT, PullUp, 1);
displaymodule 0:2ea98b288413 66 DigitalInOut csSDCard(DM_PIN_CS_SDCARD, PIN_OUTPUT, PullUp, 1);
displaymodule 0:2ea98b288413 67 #ifdef DM_PIN_CS_FLASH
displaymodule 0:2ea98b288413 68 DigitalInOut csFlash(DM_PIN_CS_FLASH, PIN_OUTPUT, PullUp, 1);
displaymodule 0:2ea98b288413 69 #endif
displaymodule 0:2ea98b288413 70
displaymodule 0:2ea98b288413 71 /******************************************************************************
displaymodule 0:2ea98b288413 72 * Global variables
displaymodule 0:2ea98b288413 73 *****************************************************************************/
displaymodule 0:2ea98b288413 74 unsigned int m_z=12434,m_w=33254;
displaymodule 0:2ea98b288413 75 /******************************************************************************
displaymodule 0:2ea98b288413 76 * Local functions
displaymodule 0:2ea98b288413 77 *****************************************************************************/
displaymodule 0:2ea98b288413 78 unsigned int rnd()
displaymodule 0:2ea98b288413 79 {
displaymodule 0:2ea98b288413 80 m_z = 36969 * (m_z & 65535) + (m_z >>16);
displaymodule 0:2ea98b288413 81 m_w = 18000 * (m_w & 65535) + (m_w >>16);
displaymodule 0:2ea98b288413 82 return ((m_z <<16) + m_w);
displaymodule 0:2ea98b288413 83 }
displaymodule 0:2ea98b288413 84
displaymodule 0:2ea98b288413 85 void GFX_TEST()
displaymodule 0:2ea98b288413 86 {
displaymodule 0:2ea98b288413 87 uint16_t x = 0;
displaymodule 0:2ea98b288413 88 uint16_t y = 0;
displaymodule 0:2ea98b288413 89 uint16_t w = tft.width();
displaymodule 0:2ea98b288413 90 uint16_t h = tft.height();
displaymodule 0:2ea98b288413 91 int buf[798];
displaymodule 0:2ea98b288413 92
displaymodule 0:2ea98b288413 93 int x0, x1;
displaymodule 0:2ea98b288413 94 int y0, y1;
displaymodule 0:2ea98b288413 95 int r;
displaymodule 0:2ea98b288413 96 uint16_t color;
displaymodule 0:2ea98b288413 97
displaymodule 0:2ea98b288413 98 tft.clearScreen(BLACK);
displaymodule 0:2ea98b288413 99 tft.fillRectangle(0, 0, 799, 19, RED);
displaymodule 0:2ea98b288413 100 tft.fillRectangle(0, 460, 799, 479, GRAY2);
displaymodule 0:2ea98b288413 101 tft.setFontColor(RED, WHITE);
displaymodule 0:2ea98b288413 102 tft.drawStringCentered(0, 0, 800, 20, "*** Ra8875 demo ***");
displaymodule 0:2ea98b288413 103 tft.setFontColor(GRAY2, YELLOW);
displaymodule 0:2ea98b288413 104 tft.drawStringCentered(0, 460, 800, 20, "www.displaymodule.com");
displaymodule 0:2ea98b288413 105
displaymodule 0:2ea98b288413 106 tft.drawRectangle(0, 20, 799, 459, BLUE);
displaymodule 0:2ea98b288413 107 tft.drawLine(399, 21, 399, 458, BLUE);
displaymodule 0:2ea98b288413 108 tft.drawLine(1, 239, 798, 239, BLUE);
displaymodule 0:2ea98b288413 109 for (int i=9; i<790; i+=10)
displaymodule 0:2ea98b288413 110 tft.drawVerticalLine(i, 234, 10, BLUE);
displaymodule 0:2ea98b288413 111 for (int i=29; i<450; i+=10)
displaymodule 0:2ea98b288413 112 tft.drawHorizontalLine(395, i, 10, BLUE);
displaymodule 0:2ea98b288413 113
displaymodule 0:2ea98b288413 114 tft.setFontColor(BLACK, RED);
displaymodule 0:2ea98b288413 115 tft.drawString(5, 25, "Sin");
displaymodule 0:2ea98b288413 116
displaymodule 0:2ea98b288413 117 for (int i=1; i<798; i++) {
displaymodule 0:2ea98b288413 118 tft.drawPoint(i,239+(sin(((i*1.13)*3.14)/90)*95));
displaymodule 0:2ea98b288413 119 wait_ms(1);
displaymodule 0:2ea98b288413 120 }
displaymodule 0:2ea98b288413 121 wait(1);
displaymodule 0:2ea98b288413 122 tft.setFontColor(BLACK, YELLOW);
displaymodule 0:2ea98b288413 123 tft.drawString(5, 45, "Cos");
displaymodule 0:2ea98b288413 124
displaymodule 0:2ea98b288413 125 for (int i=1; i<798; i++) {
displaymodule 0:2ea98b288413 126 tft.drawPoint(i,239+(cos(((i*1.13)*3.14)/90)*95));
displaymodule 0:2ea98b288413 127 wait_ms(1);
displaymodule 0:2ea98b288413 128 }
displaymodule 0:2ea98b288413 129 wait(1.0);
displaymodule 0:2ea98b288413 130 tft.setFontColor(BLACK, GREEN);
displaymodule 0:2ea98b288413 131 tft.drawString(5, 65, "Tan");
displaymodule 0:2ea98b288413 132
displaymodule 0:2ea98b288413 133 for (int i=1; i<798; i++) {
displaymodule 0:2ea98b288413 134 tft.drawPoint(i,239+(tan(((i*1.13)*3.14)/90)));
displaymodule 0:2ea98b288413 135 wait_ms(1);
displaymodule 0:2ea98b288413 136 }
displaymodule 0:2ea98b288413 137
displaymodule 0:2ea98b288413 138 tft.fillRectangle(1, 21, 798, 458, BLACK);
displaymodule 0:2ea98b288413 139 tft.drawLine(399, 22, 399, 458, BLUE);
displaymodule 0:2ea98b288413 140 tft.drawLine(1, 239, 798, 239, BLUE);
displaymodule 0:2ea98b288413 141
displaymodule 0:2ea98b288413 142 // Draw a moving sinewave
displaymodule 0:2ea98b288413 143 x=1;
displaymodule 0:2ea98b288413 144 for (int i=1; i<(798*20); i++) {
displaymodule 0:2ea98b288413 145 x++;
displaymodule 0:2ea98b288413 146 if (x==799)
displaymodule 0:2ea98b288413 147 x=1;
displaymodule 0:2ea98b288413 148 if (i>799) {
displaymodule 0:2ea98b288413 149 if ((x==399)||(buf[x-1]==239))
displaymodule 0:2ea98b288413 150 tft.setFontColor(BLACK, BLUE);
displaymodule 0:2ea98b288413 151 else
displaymodule 0:2ea98b288413 152 tft.setFontColor(BLACK, BLACK);
displaymodule 0:2ea98b288413 153 tft.drawPoint(x,buf[x-1]);
displaymodule 0:2ea98b288413 154 }
displaymodule 0:2ea98b288413 155 tft.setFontColor(BLACK, 0x07FF);
displaymodule 0:2ea98b288413 156 y=239+(sin(((i*1.13)*3.14)/90)*(90-(i / 100)));
displaymodule 0:2ea98b288413 157 tft.drawPoint(x,y);
displaymodule 0:2ea98b288413 158 wait_ms(1);
displaymodule 0:2ea98b288413 159 buf[x-1]=y;
displaymodule 0:2ea98b288413 160 }
displaymodule 0:2ea98b288413 161
displaymodule 0:2ea98b288413 162
displaymodule 0:2ea98b288413 163 wait(1.0);
displaymodule 0:2ea98b288413 164 tft.fillRectangle(1, 21, 798, 458, BLACK);
displaymodule 0:2ea98b288413 165 // Draw some filled rectangles
displaymodule 0:2ea98b288413 166 for (int i=1; i<6; i++) {
displaymodule 0:2ea98b288413 167 wait_ms(20);
displaymodule 0:2ea98b288413 168 switch (i) {
displaymodule 0:2ea98b288413 169 case 1:
displaymodule 0:2ea98b288413 170 tft.fillRectangle(70+(i*50), 30+(i*50), 220+(i*50), 180+(i*50), 0xF81F);
displaymodule 0:2ea98b288413 171 break;
displaymodule 0:2ea98b288413 172 case 2:
displaymodule 0:2ea98b288413 173 tft.fillRectangle(70+(i*50), 30+(i*50), 220+(i*50), 180+(i*50), RED);
displaymodule 0:2ea98b288413 174 break;
displaymodule 0:2ea98b288413 175 case 3:
displaymodule 0:2ea98b288413 176 tft.fillRectangle(70+(i*50), 30+(i*50), 220+(i*50), 180+(i*50),GREEN);
displaymodule 0:2ea98b288413 177 break;
displaymodule 0:2ea98b288413 178 case 4:
displaymodule 0:2ea98b288413 179 tft.fillRectangle(70+(i*50), 30+(i*50), 220+(i*50), 180+(i*50), BLUE);
displaymodule 0:2ea98b288413 180 break;
displaymodule 0:2ea98b288413 181 case 5:
displaymodule 0:2ea98b288413 182 tft.fillRectangle(70+(i*50), 30+(i*50), 220+(i*50), 180+(i*50),YELLOW);
displaymodule 0:2ea98b288413 183 break;
displaymodule 0:2ea98b288413 184 }
displaymodule 0:2ea98b288413 185
displaymodule 0:2ea98b288413 186 }
displaymodule 0:2ea98b288413 187
displaymodule 0:2ea98b288413 188 wait(1.0);
displaymodule 0:2ea98b288413 189 tft.fillRectangle(1, 21, 798, 458, BLACK);
displaymodule 0:2ea98b288413 190 // Draw some filled, rounded rectangles
displaymodule 0:2ea98b288413 191 for (int i=1; i<6; i++) {
displaymodule 0:2ea98b288413 192 wait_ms(20);
displaymodule 0:2ea98b288413 193 switch (i) {
displaymodule 0:2ea98b288413 194 case 1:
displaymodule 0:2ea98b288413 195 tft.fillRoundRectangle(570-(i*50), 30+(i*50),720-(i*50), 180+(i*50), 10, 10, 0xF81F);
displaymodule 0:2ea98b288413 196 break;
displaymodule 0:2ea98b288413 197 case 2:
displaymodule 0:2ea98b288413 198 tft.fillRoundRectangle(570-(i*50), 30+(i*50), 720-(i*50), 180+(i*50), 10, 10, RED);
displaymodule 0:2ea98b288413 199 break;
displaymodule 0:2ea98b288413 200 case 3:
displaymodule 0:2ea98b288413 201 tft.fillRoundRectangle(570-(i*50), 30+(i*50), 720-(i*50), 180+(i*50), 10, 10, GREEN);
displaymodule 0:2ea98b288413 202 break;
displaymodule 0:2ea98b288413 203 case 4:
displaymodule 0:2ea98b288413 204 tft.fillRoundRectangle(570-(i*50), 30+(i*50), 720-(i*50), 180+(i*50), 10, 10, BLUE);
displaymodule 0:2ea98b288413 205 break;
displaymodule 0:2ea98b288413 206 case 5:
displaymodule 0:2ea98b288413 207 tft.fillRoundRectangle(570-(i*50), 30+(i*50), 720-(i*50), 180+(i*50), 10, 10, YELLOW);
displaymodule 0:2ea98b288413 208 break;
displaymodule 0:2ea98b288413 209 }
displaymodule 0:2ea98b288413 210 }
displaymodule 0:2ea98b288413 211
displaymodule 0:2ea98b288413 212 wait(1.0);
displaymodule 0:2ea98b288413 213 tft.fillRectangle(1, 21, 798, 458, BLACK);
displaymodule 0:2ea98b288413 214 // Draw some filled, circles
displaymodule 0:2ea98b288413 215 for (int i=1; i<6; i++) {
displaymodule 0:2ea98b288413 216 wait_ms(20);
displaymodule 0:2ea98b288413 217 switch (i) {
displaymodule 0:2ea98b288413 218 case 1:
displaymodule 0:2ea98b288413 219 tft.fillCircle(70+(i*50), 70+(i*50), 75, 0xF81F);
displaymodule 0:2ea98b288413 220 break;
displaymodule 0:2ea98b288413 221 case 2:
displaymodule 0:2ea98b288413 222 tft.fillCircle(70+(i*50), 70+(i*50), 75, RED);
displaymodule 0:2ea98b288413 223 break;
displaymodule 0:2ea98b288413 224 case 3:
displaymodule 0:2ea98b288413 225 tft.fillCircle(70+(i*50), 70+(i*50), 75, GREEN);
displaymodule 0:2ea98b288413 226 break;
displaymodule 0:2ea98b288413 227 case 4:
displaymodule 0:2ea98b288413 228 tft.fillCircle(70+(i*50), 70+(i*50), 75, BLUE);
displaymodule 0:2ea98b288413 229 break;
displaymodule 0:2ea98b288413 230 case 5:
displaymodule 0:2ea98b288413 231 tft.fillCircle(70+(i*50), 70+(i*50), 75, YELLOW);
displaymodule 0:2ea98b288413 232 break;
displaymodule 0:2ea98b288413 233 }
displaymodule 0:2ea98b288413 234 }
displaymodule 0:2ea98b288413 235
displaymodule 0:2ea98b288413 236 wait(1.0);
displaymodule 0:2ea98b288413 237 tft.fillRectangle(1, 21, 798, 458, BLACK);
displaymodule 0:2ea98b288413 238 // Draw some filled, ellipses
displaymodule 0:2ea98b288413 239 for (int i=1; i<6; i++) {
displaymodule 0:2ea98b288413 240 wait_ms(20);
displaymodule 0:2ea98b288413 241 switch (i) {
displaymodule 0:2ea98b288413 242 case 1:
displaymodule 0:2ea98b288413 243 tft.fillEllipse(700-(i*50), 70+(i*50), 75, 40, 0xF81F);
displaymodule 0:2ea98b288413 244 break;
displaymodule 0:2ea98b288413 245 case 2:
displaymodule 0:2ea98b288413 246 tft.fillEllipse(700-(i*50), 70+(i*50), 75, 40, RED);
displaymodule 0:2ea98b288413 247 break;
displaymodule 0:2ea98b288413 248 case 3:
displaymodule 0:2ea98b288413 249 tft.fillEllipse(700-(i*50), 70+(i*50), 75, 40, GREEN);
displaymodule 0:2ea98b288413 250 break;
displaymodule 0:2ea98b288413 251 case 4:
displaymodule 0:2ea98b288413 252 tft.fillEllipse(700-(i*50), 70+(i*50), 75, 40, BLUE);
displaymodule 0:2ea98b288413 253 break;
displaymodule 0:2ea98b288413 254 case 5:
displaymodule 0:2ea98b288413 255 tft.fillEllipse(700-(i*50), 70+(i*50), 75, 40, YELLOW);
displaymodule 0:2ea98b288413 256 break;
displaymodule 0:2ea98b288413 257 }
displaymodule 0:2ea98b288413 258 }
displaymodule 0:2ea98b288413 259
displaymodule 0:2ea98b288413 260 wait(1.0);
displaymodule 0:2ea98b288413 261 tft.fillRectangle(1, 21, 798, 458, BLACK);
displaymodule 0:2ea98b288413 262 // Draw some filled, triangles
displaymodule 0:2ea98b288413 263 for (int i=1; i<6; i++) {
displaymodule 0:2ea98b288413 264 wait_ms(20);
displaymodule 0:2ea98b288413 265 switch (i) {
displaymodule 0:2ea98b288413 266 case 1:
displaymodule 0:2ea98b288413 267 tft.fillTriangle(399, 50+(i*50), 249, 150+(i*50), 549, 150+(i*50), 0xF81F);
displaymodule 0:2ea98b288413 268 break;
displaymodule 0:2ea98b288413 269 case 2:
displaymodule 0:2ea98b288413 270 tft.fillTriangle(399, 50+(i*50), 249, 150+(i*50), 549, 150+(i*50), RED);
displaymodule 0:2ea98b288413 271 break;
displaymodule 0:2ea98b288413 272 case 3:
displaymodule 0:2ea98b288413 273 tft.fillTriangle(399, 50+(i*50), 249, 150+(i*50), 549, 150+(i*50), GREEN);
displaymodule 0:2ea98b288413 274 break;
displaymodule 0:2ea98b288413 275 case 4:
displaymodule 0:2ea98b288413 276 tft.fillTriangle(399, 50+(i*50), 249, 150+(i*50), 549, 150+(i*50), BLUE);
displaymodule 0:2ea98b288413 277 break;
displaymodule 0:2ea98b288413 278 case 5:
displaymodule 0:2ea98b288413 279 tft.fillTriangle(399, 50+(i*50), 249, 150+(i*50), 549, 150+(i*50), YELLOW);
displaymodule 0:2ea98b288413 280 break;
displaymodule 0:2ea98b288413 281 }
displaymodule 0:2ea98b288413 282 }
displaymodule 0:2ea98b288413 283
displaymodule 0:2ea98b288413 284 wait(1.0);
displaymodule 0:2ea98b288413 285 tft.fillRectangle(1, 21, 798, 458, BLACK);
displaymodule 0:2ea98b288413 286 // Draw some lines in a pattern
displaymodule 0:2ea98b288413 287
displaymodule 0:2ea98b288413 288 for (int i=21; i<458; i+=5) {
displaymodule 0:2ea98b288413 289 tft.drawLine(1, i, (i*1.82)-31, 458, RED);
displaymodule 0:2ea98b288413 290 wait_ms(20);
displaymodule 0:2ea98b288413 291 }
displaymodule 0:2ea98b288413 292 for (int i=458; i>21; i-=5) {
displaymodule 0:2ea98b288413 293 tft.drawLine(798, i, (i*1.82)-35, 21, RED);
displaymodule 0:2ea98b288413 294 wait_ms(20);
displaymodule 0:2ea98b288413 295 }
displaymodule 0:2ea98b288413 296
displaymodule 0:2ea98b288413 297 for (int i=458; i>21; i-=5) {
displaymodule 0:2ea98b288413 298 tft.drawLine(1, i, 835-(i*1.82), 21,CYAN);
displaymodule 0:2ea98b288413 299 wait_ms(20);
displaymodule 0:2ea98b288413 300 }
displaymodule 0:2ea98b288413 301 for (int i=21; i<458; i+=5) {
displaymodule 0:2ea98b288413 302 tft.drawLine(798, i, 831-(i*1.82), 458,CYAN);
displaymodule 0:2ea98b288413 303 wait_ms(20);
displaymodule 0:2ea98b288413 304 }
displaymodule 0:2ea98b288413 305
displaymodule 0:2ea98b288413 306 wait(1.0);
displaymodule 0:2ea98b288413 307 tft.fillRectangle(1, 21, 798, 458, BLACK);
displaymodule 0:2ea98b288413 308
displaymodule 0:2ea98b288413 309
displaymodule 0:2ea98b288413 310 // Draw some random circles
displaymodule 0:2ea98b288413 311 for (int i=0; i<100; i++) {
displaymodule 0:2ea98b288413 312 color = ((rnd()%255 >> 3) << 11) | ((rnd()%255 >> 2) << 5) | ((rnd()%255 >> 3));
displaymodule 0:2ea98b288413 313 x0=62+rnd()%650;
displaymodule 0:2ea98b288413 314 y0=85+rnd()%300;
displaymodule 0:2ea98b288413 315 r=1+ rnd()%60;
displaymodule 0:2ea98b288413 316 tft.fillCircle(x0, y0, r, color);
displaymodule 0:2ea98b288413 317 wait_ms(40);
displaymodule 0:2ea98b288413 318 }
displaymodule 0:2ea98b288413 319
displaymodule 0:2ea98b288413 320 wait(1.0);
displaymodule 0:2ea98b288413 321 tft.fillRectangle(1, 21, 798, 458, BLACK);
displaymodule 0:2ea98b288413 322 // Draw some random rectangles
displaymodule 0:2ea98b288413 323 for (int i=0; i<100; i++) {
displaymodule 0:2ea98b288413 324 color = ((rnd()%255 >> 3) << 11) | ((rnd()%255 >> 2) << 5) | ((rnd()%255 >> 3));
displaymodule 0:2ea98b288413 325 x0=2+rnd()%796;
displaymodule 0:2ea98b288413 326 y0=25+rnd()%420;
displaymodule 0:2ea98b288413 327 x1=2+rnd()%796;
displaymodule 0:2ea98b288413 328 y1=25+rnd()%420;
displaymodule 0:2ea98b288413 329 tft.drawRectangle(x0, y0, x1, y1, color);
displaymodule 0:2ea98b288413 330 wait_ms(40);
displaymodule 0:2ea98b288413 331 }
displaymodule 0:2ea98b288413 332
displaymodule 0:2ea98b288413 333 wait(1.0);
displaymodule 0:2ea98b288413 334 tft.fillRectangle(1, 21, 798, 458, BLACK);
displaymodule 0:2ea98b288413 335 // Draw some random lines
displaymodule 0:2ea98b288413 336 for (int i=0; i<100; i++) {
displaymodule 0:2ea98b288413 337 color = ((rnd()%255 >> 3) << 11) | ((rnd()%255 >> 2) << 5) | ((rnd()%255 >> 3));
displaymodule 0:2ea98b288413 338 x0=2+rnd()%796;
displaymodule 0:2ea98b288413 339 y0=25+rnd()%420;
displaymodule 0:2ea98b288413 340 x1=2+rnd()%796;
displaymodule 0:2ea98b288413 341 y1=25+rnd()%420;
displaymodule 0:2ea98b288413 342 tft.drawLine(x0, y0, x1, y1, color);
displaymodule 0:2ea98b288413 343 wait_ms(40);
displaymodule 0:2ea98b288413 344 }
displaymodule 0:2ea98b288413 345
displaymodule 0:2ea98b288413 346
displaymodule 0:2ea98b288413 347 wait(1.0);
displaymodule 0:2ea98b288413 348 tft.fillRectangle(1, 21, 798, 458, BLACK);
displaymodule 0:2ea98b288413 349 // Draw some random pixels
displaymodule 0:2ea98b288413 350 for (int i=0; i<5000; i++) {
displaymodule 0:2ea98b288413 351 color = ((rnd()%255 >> 3) << 11) | ((rnd()%255 >> 2) << 5) | ((rnd()%255 >> 3));
displaymodule 0:2ea98b288413 352 tft.setFontColor(BLACK, color);
displaymodule 0:2ea98b288413 353 x0=2+rnd()%796;
displaymodule 0:2ea98b288413 354 y0=25+rnd()%420;
displaymodule 0:2ea98b288413 355 tft.drawPoint(x0, y0);
displaymodule 0:2ea98b288413 356 }
displaymodule 0:2ea98b288413 357
displaymodule 0:2ea98b288413 358 wait(1.0);
displaymodule 0:2ea98b288413 359 tft.fillRectangle(0, 0, 799, 479, BLUE);
displaymodule 0:2ea98b288413 360 tft.fillRoundRectangle(200, 140, 600, 340, 10, 10, RED);
displaymodule 0:2ea98b288413 361 wait(0.2);
displaymodule 0:2ea98b288413 362 tft.setFontColor(RED, WHITE);
displaymodule 0:2ea98b288413 363 tft.drawStringCentered(200, 140, 400, 200, "Restarting in a few seconds...");
displaymodule 0:2ea98b288413 364 }
displaymodule 0:2ea98b288413 365
displaymodule 0:2ea98b288413 366 /******************************************************************************
displaymodule 0:2ea98b288413 367 * Main
displaymodule 0:2ea98b288413 368 *****************************************************************************/
displaymodule 0:2ea98b288413 369
displaymodule 0:2ea98b288413 370
displaymodule 0:2ea98b288413 371 int main()
displaymodule 0:2ea98b288413 372 {
displaymodule 0:2ea98b288413 373 log("init tft \r\n");
displaymodule 0:2ea98b288413 374 tft.init();
displaymodule 0:2ea98b288413 375 touch.init();
displaymodule 0:2ea98b288413 376 while(1) {
displaymodule 0:2ea98b288413 377 GFX_TEST();
displaymodule 0:2ea98b288413 378 wait(3);
displaymodule 0:2ea98b288413 379 }
displaymodule 0:2ea98b288413 380
displaymodule 0:2ea98b288413 381 }