A dedictaed demo for ra8875
Dependencies: DmTftLibrary mbed
main.cpp@0:2ea98b288413, 2015-01-22 (annotated)
- Committer:
- displaymodule
- Date:
- Thu Jan 22 04:48:55 2015 +0000
- Revision:
- 0:2ea98b288413
add new ra8875 demo
Who changed what in which revision?
User | Revision | Line number | New 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 | } |