acid-drop- Hacking the planet from a LilyGo T-Deck using custom firmware |
git clone git://git.acid.vegas/acid-drop.git |
Log | Files | Refs | Archive | README | LICENSE |
TFT_graphicstest_small.ino (7047B)
1 /* 2 Adapted from the Adafruit graphicstest sketch. 3 4 This sketch uses the GLCD font (font 1) only. Disable other fonts to make 5 the sketch fit in an UNO! 6 7 Make sure all the display driver and pin connections are correct by 8 editing the User_Setup.h file in the TFT_eSPI library folder. 9 10 Note that yield() or delay(0) must be called in long duration for/while 11 loops to stop the ESP8266 watchdog triggering. 12 13 ######################################################################### 14 ###### DON'T FORGET TO UPDATE THE User_Setup.h FILE IN THE LIBRARY ###### 15 ######################################################################### 16 */ 17 18 19 #include <TFT_eSPI.h> // Hardware-specific library 20 #include <SPI.h> 21 22 TFT_eSPI tft = TFT_eSPI(); // Invoke custom library 23 24 float p = 3.1415926; 25 26 void setup(void) { 27 Serial.begin(9600); 28 Serial.print("Hello! ST7735 TFT Test"); 29 30 // Use this initializer if you're using a 1.8" TFT 31 tft.init(); // initialize a ST7735S chip 32 33 Serial.println("Initialized"); 34 35 uint16_t time = millis(); 36 tft.fillScreen(TFT_BLACK); 37 time = millis() - time; 38 39 Serial.println(time, DEC); 40 delay(500); 41 42 // large block of text 43 tft.fillScreen(TFT_BLACK); 44 testdrawtext("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur adipiscing ante sed nibh tincidunt feugiat. Maecenas enim massa, fringilla sed malesuada et, malesuada sit amet turpis. Sed porttitor neque ut ante pretium vitae malesuada nunc bibendum. Nullam aliquet ultrices massa eu hendrerit. Ut sed nisi lorem. In vestibulum purus a tortor imperdiet posuere. ", TFT_WHITE); 45 delay(1000); 46 47 // tft print function! 48 tftPrintTest(); 49 delay(4000); 50 51 // a single pixel 52 tft.drawPixel(tft.width()/2, tft.height()/2, TFT_GREEN); 53 delay(500); 54 55 // line draw test 56 testlines(TFT_YELLOW); 57 delay(500); 58 59 // optimized lines 60 testfastlines(TFT_RED, TFT_BLUE); 61 delay(500); 62 63 testdrawrects(TFT_GREEN); 64 delay(500); 65 66 testfillrects(TFT_YELLOW, TFT_MAGENTA); 67 delay(500); 68 69 tft.fillScreen(TFT_BLACK); 70 testfillcircles(10, TFT_BLUE); 71 testdrawcircles(10, TFT_WHITE); 72 delay(500); 73 74 testroundrects(); 75 delay(500); 76 77 testtriangles(); 78 delay(500); 79 80 mediabuttons(); 81 delay(500); 82 83 Serial.println("done"); 84 delay(1000); 85 } 86 87 void loop() { 88 tft.invertDisplay(true); 89 delay(500); 90 tft.invertDisplay(false); 91 delay(500); 92 } 93 94 void testlines(uint16_t color) { 95 tft.fillScreen(TFT_BLACK); 96 for (int16_t x=0; x < tft.width(); x+=6) { 97 tft.drawLine(0, 0, x, tft.height()-1, color); 98 } 99 for (int16_t y=0; y < tft.height(); y+=6) { 100 tft.drawLine(0, 0, tft.width()-1, y, color); 101 } 102 103 tft.fillScreen(TFT_BLACK); 104 for (int16_t x=0; x < tft.width(); x+=6) { 105 tft.drawLine(tft.width()-1, 0, x, tft.height()-1, color); 106 } 107 for (int16_t y=0; y < tft.height(); y+=6) { 108 tft.drawLine(tft.width()-1, 0, 0, y, color); 109 } 110 111 tft.fillScreen(TFT_BLACK); 112 for (int16_t x=0; x < tft.width(); x+=6) { 113 tft.drawLine(0, tft.height()-1, x, 0, color); 114 } 115 for (int16_t y=0; y < tft.height(); y+=6) { 116 tft.drawLine(0, tft.height()-1, tft.width()-1, y, color); 117 } 118 119 tft.fillScreen(TFT_BLACK); 120 for (int16_t x=0; x < tft.width(); x+=6) { 121 tft.drawLine(tft.width()-1, tft.height()-1, x, 0, color); 122 } 123 for (int16_t y=0; y < tft.height(); y+=6) { 124 tft.drawLine(tft.width()-1, tft.height()-1, 0, y, color); 125 } 126 } 127 128 void testdrawtext(char *text, uint16_t color) { 129 tft.setCursor(0, 0); 130 tft.setTextColor(color); 131 tft.setTextWrap(true); 132 tft.print(text); 133 } 134 135 void testfastlines(uint16_t color1, uint16_t color2) { 136 tft.fillScreen(TFT_BLACK); 137 for (int16_t y=0; y < tft.height(); y+=5) { 138 tft.drawFastHLine(0, y, tft.width(), color1); 139 } 140 for (int16_t x=0; x < tft.width(); x+=5) { 141 tft.drawFastVLine(x, 0, tft.height(), color2); 142 } 143 } 144 145 void testdrawrects(uint16_t color) { 146 tft.fillScreen(TFT_BLACK); 147 for (int16_t x=0; x < tft.width(); x+=6) { 148 tft.drawRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, color); 149 } 150 } 151 152 void testfillrects(uint16_t color1, uint16_t color2) { 153 tft.fillScreen(TFT_BLACK); 154 for (int16_t x=tft.width()-1; x > 6; x-=6) { 155 tft.fillRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, color1); 156 tft.drawRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, color2); 157 } 158 } 159 160 void testfillcircles(uint8_t radius, uint16_t color) { 161 for (int16_t x=radius; x < tft.width(); x+=radius*2) { 162 for (int16_t y=radius; y < tft.height(); y+=radius*2) { 163 tft.fillCircle(x, y, radius, color); 164 } 165 } 166 } 167 168 void testdrawcircles(uint8_t radius, uint16_t color) { 169 for (int16_t x=0; x < tft.width()+radius; x+=radius*2) { 170 for (int16_t y=0; y < tft.height()+radius; y+=radius*2) { 171 tft.drawCircle(x, y, radius, color); 172 } 173 } 174 } 175 176 void testtriangles() { 177 tft.fillScreen(TFT_BLACK); 178 int color = 0xF800; 179 int t; 180 int w = tft.width()/2; 181 int x = tft.height()-1; 182 int y = 0; 183 int z = tft.width(); 184 for(t = 0 ; t <= 15; t+=1) { 185 tft.drawTriangle(w, y, y, x, z, x, color); 186 x-=4; 187 y+=4; 188 z-=4; 189 color+=100; 190 } 191 } 192 193 void testroundrects() { 194 tft.fillScreen(TFT_BLACK); 195 int color = 100; 196 int i; 197 int t; 198 for(t = 0 ; t <= 4; t+=1) { 199 int x = 0; 200 int y = 0; 201 int w = tft.width()-2; 202 int h = tft.height()-2; 203 for(i = 0 ; i <= 16; i+=1) { 204 tft.drawRoundRect(x, y, w, h, 5, color); 205 x+=2; 206 y+=3; 207 w-=4; 208 h-=6; 209 color+=1100; 210 } 211 color+=100; 212 } 213 } 214 215 void tftPrintTest() { 216 tft.setTextWrap(false); 217 tft.fillScreen(TFT_BLACK); 218 tft.setCursor(0, 30); 219 tft.setTextColor(TFT_RED); 220 tft.setTextSize(1); 221 tft.println("Hello World!"); 222 tft.setTextColor(TFT_YELLOW); 223 tft.setTextSize(2); 224 tft.println("Hello World!"); 225 tft.setTextColor(TFT_GREEN); 226 tft.setTextSize(3); 227 tft.println("Hello World!"); 228 tft.setTextColor(TFT_BLUE); 229 tft.setTextSize(4); 230 tft.print(1234.567); 231 delay(1500); 232 tft.setCursor(0, 0); 233 tft.fillScreen(TFT_BLACK); 234 tft.setTextColor(TFT_WHITE); 235 tft.setTextSize(0); 236 tft.println("Hello World!"); 237 tft.setTextSize(1); 238 tft.setTextColor(TFT_GREEN); 239 tft.print(p, 6); 240 tft.println(" Want pi?"); 241 tft.println(" "); 242 tft.print(8675309, HEX); // print 8,675,309 out in HEX! 243 tft.println(" Print HEX!"); 244 tft.println(" "); 245 tft.setTextColor(TFT_WHITE); 246 tft.println("Sketch has been"); 247 tft.println("running for: "); 248 tft.setTextColor(TFT_MAGENTA); 249 tft.print(millis() / 1000); 250 tft.setTextColor(TFT_WHITE); 251 tft.print(" seconds."); 252 } 253 254 void mediabuttons() { 255 // play 256 tft.fillScreen(TFT_BLACK); 257 tft.fillRoundRect(25, 10, 78, 60, 8, TFT_WHITE); 258 tft.fillTriangle(42, 20, 42, 60, 90, 40, TFT_RED); 259 delay(500); 260 // pause 261 tft.fillRoundRect(25, 90, 78, 60, 8, TFT_WHITE); 262 tft.fillRoundRect(39, 98, 20, 45, 5, TFT_GREEN); 263 tft.fillRoundRect(69, 98, 20, 45, 5, TFT_GREEN); 264 delay(500); 265 // play color 266 tft.fillTriangle(42, 20, 42, 60, 90, 40, TFT_BLUE); 267 delay(50); 268 // pause color 269 tft.fillRoundRect(39, 98, 20, 45, 5, TFT_RED); 270 tft.fillRoundRect(69, 98, 20, 45, 5, TFT_RED); 271 // play color 272 tft.fillTriangle(42, 20, 42, 60, 90, 40, TFT_GREEN); 273 } 274