160 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			160 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			C++
		
	
	
	
| /*
 | |
|  Font draw speed and flicker test, draws all numbers 0-999 in each font
 | |
|  (0-99 in font 8)
 | |
|  Average time in milliseconds to draw a character is shown in red
 | |
|  A total of 2890 characters are drawn in each font (190 in font 8)
 | |
|  
 | |
|  Needs fonts 2, 4, 6, 7 and 8
 | |
| 
 | |
|  Make sure all the required fonts are loaded by editting the
 | |
|  User_Setup.h file in the TFT_eSPI library folder.
 | |
| 
 | |
|  If using an UNO or Mega (ATmega328 or ATmega2560 processor) then for best
 | |
|  performance use the F_AS_T option found in the User_Setup.h file in the
 | |
|  TFT_eSPI library folder.
 | |
| 
 | |
|  The library uses the hardware SPI pins only:
 | |
|    For UNO, Nano, Micro Pro ATmega328 based processors
 | |
|       MOSI = pin 11, SCK = pin 13
 | |
|    For Mega:
 | |
|       MOSI = pin 51, SCK = pin 52
 | |
| 
 | |
|  The pins used for the TFT chip select (CS) and Data/command (DC) and Reset (RST)
 | |
|  signal lines to the TFT must also be defined in the library User_Setup.h file.
 | |
| 
 | |
|  Sugested TFT connections for UNO and Atmega328 based boards
 | |
|    sclk 13  // Don't change, this is the hardware SPI SCLK line
 | |
|    mosi 11  // Don't change, this is the hardware SPI MOSI line
 | |
|    cs   10  // Chip select for TFT display
 | |
|    dc   9   // Data/command line
 | |
|    rst  7   // Reset, you could connect this to the Arduino reset pin
 | |
| 
 | |
|  Suggested TFT connections for the MEGA and ATmega2560 based boards
 | |
|    sclk 52  // Don't change, this is the hardware SPI SCLK line
 | |
|    mosi 51  // Don't change, this is the hardware SPI MOSI line
 | |
|    cs   47  // TFT chip select line
 | |
|    dc   48  // TFT data/command line
 | |
|    rst  44  // you could alternatively connect this to the Arduino reset
 | |
| 
 | |
|   #########################################################################
 | |
|   ###### DON'T FORGET TO UPDATE THE User_Setup.h FILE IN THE LIBRARY ######
 | |
|   ######       TO SELECT THE FONTS AND PINS YOU USE, SEE ABOVE       ######
 | |
|   #########################################################################
 | |
|  */
 | |
| 
 | |
| 
 | |
| #include <TFT_eSPI.h> // Graphics and font library for ILI9341 driver chip
 | |
| #include <SPI.h>
 | |
| 
 | |
| TFT_eSPI tft = TFT_eSPI();  // Invoke library, pins defined in User_Setup.h
 | |
| 
 | |
| unsigned long drawTime = 0;
 | |
| 
 | |
| void setup(void) {
 | |
|   tft.init();
 | |
|   tft.setRotation(1);
 | |
| }
 | |
| 
 | |
| void loop() {
 | |
| 
 | |
|   tft.fillScreen(TFT_BLACK);
 | |
|   tft.setTextColor(TFT_WHITE, TFT_BLACK);
 | |
| 
 | |
|   drawTime = millis();
 | |
| 
 | |
|   for (int i = 0; i < 1000; i++) {
 | |
|     tft.drawNumber(i, 0, 0, 1);
 | |
|   }
 | |
| 
 | |
|   drawTime = millis() - drawTime;
 | |
| 
 | |
|   tft.setTextColor(TFT_RED, TFT_BLACK);
 | |
|   tft.drawFloat(drawTime / 2890.0, 3, 0, 80, 4);
 | |
|   if (drawTime < 100) tft.drawString("Font 1 not loaded!", 0, 108, 2);
 | |
|   
 | |
|   delay(4000);
 | |
|   tft.fillScreen(TFT_BLACK);
 | |
|   tft.setTextColor(TFT_WHITE, TFT_BLACK);
 | |
|     drawTime = millis();
 | |
| 
 | |
|   for (int i = 0; i < 1000; i++) {
 | |
|     tft.drawNumber(i, 0, 0, 2);
 | |
|   }
 | |
| 
 | |
|   drawTime = millis() - drawTime;
 | |
| 
 | |
|   tft.setTextColor(TFT_RED, TFT_BLACK);
 | |
|   tft.drawFloat(drawTime / 2890.0, 3, 0, 80, 4);
 | |
|   if (drawTime < 200) tft.drawString("Font 2 not loaded!", 0, 108, 2);
 | |
|   
 | |
|   delay(4000);
 | |
|   tft.fillScreen(TFT_BLACK);
 | |
|   tft.setTextColor(TFT_WHITE, TFT_BLACK);
 | |
|     drawTime = millis();
 | |
| 
 | |
|   for (int i = 0; i < 1000; i++) {
 | |
|     tft.drawNumber(i, 0, 0, 4);
 | |
|   }
 | |
| 
 | |
|   drawTime = millis() - drawTime;
 | |
| 
 | |
|   tft.setTextColor(TFT_RED, TFT_BLACK);
 | |
|   tft.drawFloat(drawTime / 2890.0, 3, 0, 80, 4);
 | |
|   if (drawTime < 200) tft.drawString("Font 4 not loaded!", 0, 108, 2);
 | |
|   
 | |
|   delay(4000);
 | |
|   tft.fillScreen(TFT_BLACK);
 | |
|   tft.setTextColor(TFT_WHITE, TFT_BLACK);
 | |
|     drawTime = millis();
 | |
| 
 | |
|   for (int i = 0; i < 1000; i++) {
 | |
|     tft.drawNumber(i, 0, 0, 6);
 | |
|   }
 | |
| 
 | |
|   drawTime = millis() - drawTime;
 | |
| 
 | |
|   tft.setTextColor(TFT_RED, TFT_BLACK);
 | |
|   tft.drawFloat(drawTime / 2890.0, 3, 0, 80, 4);
 | |
|   if (drawTime < 200) tft.drawString("Font 6 not loaded!", 0, 108, 2);
 | |
|   
 | |
|   delay(4000);
 | |
|   tft.fillScreen(TFT_BLACK);
 | |
|   tft.setTextColor(TFT_WHITE, TFT_BLACK);
 | |
|     drawTime = millis();
 | |
| 
 | |
|   for (int i = 0; i < 1000; i++) {
 | |
|     tft.drawNumber(i, 0, 0, 7);
 | |
|   }
 | |
| 
 | |
|   drawTime = millis() - drawTime;
 | |
| 
 | |
|   tft.setTextColor(TFT_RED, TFT_BLACK);
 | |
|   tft.drawFloat(drawTime / 2890.0, 3, 0, 80, 4);
 | |
|   if (drawTime < 200) tft.drawString("Font 7 not loaded!", 0, 108, 2);
 | |
|   
 | |
|   delay(4000);
 | |
|   tft.fillScreen(TFT_BLACK);
 | |
|   tft.setTextColor(TFT_WHITE, TFT_BLACK);
 | |
|     drawTime = millis();
 | |
| 
 | |
|   for (int i = 0; i < 100; i++) {
 | |
|     tft.drawNumber(i, 0, 0, 8);
 | |
|   }
 | |
| 
 | |
|   drawTime = millis() - drawTime;
 | |
| 
 | |
|   tft.setTextColor(TFT_RED, TFT_BLACK);
 | |
|   tft.drawFloat(drawTime / 190.0, 3, 0, 80, 4);
 | |
|   if (drawTime < 200) tft.drawString("Font 8 not loaded!", 0, 108, 2);
 | |
|   
 | |
|   delay(4000);
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 |