mirror of
https://github.com/adafruit/TFTLCD-Library.git
synced 2026-09-11 17:13:09 +00:00
Fix for recent Adafruit_GFX change and PROGMEM kludges
This commit is contained in:
+5
-4
@@ -4,7 +4,9 @@
|
||||
// Graphics library by ladyada/adafruit with init code from Rossum
|
||||
// MIT license
|
||||
|
||||
#ifdef __AVR__
|
||||
#include <avr/pgmspace.h>
|
||||
#endif
|
||||
#include "pins_arduino.h"
|
||||
#include "wiring_private.h"
|
||||
#include "Adafruit_TFTLCD.h"
|
||||
@@ -83,7 +85,8 @@
|
||||
// Constructor for breakout board (configurable LCD control lines).
|
||||
// Can still use this w/shield, but parameters are ignored.
|
||||
Adafruit_TFTLCD::Adafruit_TFTLCD(
|
||||
uint8_t cs, uint8_t cd, uint8_t wr, uint8_t rd, uint8_t reset) {
|
||||
uint8_t cs, uint8_t cd, uint8_t wr, uint8_t rd, uint8_t reset) :
|
||||
Adafruit_GFX(TFTWIDTH, TFTHEIGHT) {
|
||||
|
||||
#ifndef USE_ADAFRUIT_SHIELD_PINOUT
|
||||
// Convert pin numbers to registers and bitmasks
|
||||
@@ -118,7 +121,7 @@ Adafruit_TFTLCD::Adafruit_TFTLCD(
|
||||
}
|
||||
|
||||
// Constructor for shield (fixed LCD control lines)
|
||||
Adafruit_TFTLCD::Adafruit_TFTLCD(void) {
|
||||
Adafruit_TFTLCD::Adafruit_TFTLCD(void) : Adafruit_GFX(TFTWIDTH, TFTHEIGHT) {
|
||||
init();
|
||||
}
|
||||
|
||||
@@ -259,8 +262,6 @@ static const uint16_t ILI932x_regValues[] PROGMEM = {
|
||||
void Adafruit_TFTLCD::begin(uint16_t id) {
|
||||
uint8_t i = 0;
|
||||
|
||||
constructor(TFTWIDTH, TFTHEIGHT);
|
||||
|
||||
reset();
|
||||
|
||||
if((id == 0x9325) || (id == 0x9328)) {
|
||||
|
||||
@@ -45,12 +45,12 @@ Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
|
||||
|
||||
void setup(void) {
|
||||
Serial.begin(9600);
|
||||
progmemPrintln(PSTR("TFT LCD test"));
|
||||
Serial.println(F("TFT LCD test"));
|
||||
|
||||
#ifdef USE_ADAFRUIT_SHIELD_PINOUT
|
||||
progmemPrintln(PSTR("Using Adafruit 2.8\" TFT Arduino Shield Pinout"));
|
||||
Serial.println(F("Using Adafruit 2.8\" TFT Arduino Shield Pinout"));
|
||||
#else
|
||||
progmemPrintln(PSTR("Using Adafruit 2.8\" TFT Breakout Board Pinout"));
|
||||
Serial.println(F("Using Adafruit 2.8\" TFT Breakout Board Pinout"));
|
||||
#endif
|
||||
|
||||
tft.reset();
|
||||
@@ -58,75 +58,75 @@ void setup(void) {
|
||||
uint16_t identifier = tft.readID();
|
||||
|
||||
if(identifier == 0x9325) {
|
||||
progmemPrintln(PSTR("Found ILI9325 LCD driver"));
|
||||
Serial.println(F("Found ILI9325 LCD driver"));
|
||||
} else if(identifier == 0x9328) {
|
||||
progmemPrintln(PSTR("Found ILI9328 LCD driver"));
|
||||
Serial.println(F("Found ILI9328 LCD driver"));
|
||||
} else if(identifier == 0x7575) {
|
||||
progmemPrintln(PSTR("Found HX8347G LCD driver"));
|
||||
Serial.println(F("Found HX8347G LCD driver"));
|
||||
} else {
|
||||
progmemPrint(PSTR("Unknown LCD driver chip: "));
|
||||
Serial.print(F("Unknown LCD driver chip: "));
|
||||
Serial.println(identifier, HEX);
|
||||
progmemPrintln(PSTR("If using the Adafruit 2.8\" TFT Arduino shield, the line:"));
|
||||
progmemPrintln(PSTR(" #define USE_ADAFRUIT_SHIELD_PINOUT"));
|
||||
progmemPrintln(PSTR("should appear in the library header (Adafruit_TFT.h)."));
|
||||
progmemPrintln(PSTR("If using the breakout board, it should NOT be #defined!"));
|
||||
progmemPrintln(PSTR("Also if using the breakout, double-check that all wiring"));
|
||||
progmemPrintln(PSTR("matches the tutorial."));
|
||||
Serial.println(F("If using the Adafruit 2.8\" TFT Arduino shield, the line:"));
|
||||
Serial.println(F(" #define USE_ADAFRUIT_SHIELD_PINOUT"));
|
||||
Serial.println(F("should appear in the library header (Adafruit_TFT.h)."));
|
||||
Serial.println(F("If using the breakout board, it should NOT be #defined!"));
|
||||
Serial.println(F("Also if using the breakout, double-check that all wiring"));
|
||||
Serial.println(F("matches the tutorial."));
|
||||
return;
|
||||
}
|
||||
|
||||
tft.begin(identifier);
|
||||
|
||||
progmemPrintln(PSTR("Benchmark Time (microseconds)"));
|
||||
Serial.println(F("Benchmark Time (microseconds)"));
|
||||
|
||||
progmemPrint(PSTR("Screen fill "));
|
||||
Serial.print(F("Screen fill "));
|
||||
Serial.println(testFillScreen());
|
||||
delay(500);
|
||||
|
||||
progmemPrint(PSTR("Text "));
|
||||
Serial.print(F("Text "));
|
||||
Serial.println(testText());
|
||||
delay(3000);
|
||||
|
||||
progmemPrint(PSTR("Lines "));
|
||||
Serial.print(F("Lines "));
|
||||
Serial.println(testLines(CYAN));
|
||||
delay(500);
|
||||
|
||||
progmemPrint(PSTR("Horiz/Vert Lines "));
|
||||
Serial.print(F("Horiz/Vert Lines "));
|
||||
Serial.println(testFastLines(RED, BLUE));
|
||||
delay(500);
|
||||
|
||||
progmemPrint(PSTR("Rectangles (outline) "));
|
||||
Serial.print(F("Rectangles (outline) "));
|
||||
Serial.println(testRects(GREEN));
|
||||
delay(500);
|
||||
|
||||
progmemPrint(PSTR("Rectangles (filled) "));
|
||||
Serial.print(F("Rectangles (filled) "));
|
||||
Serial.println(testFilledRects(YELLOW, MAGENTA));
|
||||
delay(500);
|
||||
|
||||
progmemPrint(PSTR("Circles (filled) "));
|
||||
Serial.print(F("Circles (filled) "));
|
||||
Serial.println(testFilledCircles(10, MAGENTA));
|
||||
|
||||
progmemPrint(PSTR("Circles (outline) "));
|
||||
Serial.print(F("Circles (outline) "));
|
||||
Serial.println(testCircles(10, WHITE));
|
||||
delay(500);
|
||||
|
||||
progmemPrint(PSTR("Triangles (outline) "));
|
||||
Serial.print(F("Triangles (outline) "));
|
||||
Serial.println(testTriangles());
|
||||
delay(500);
|
||||
|
||||
progmemPrint(PSTR("Triangles (filled) "));
|
||||
Serial.print(F("Triangles (filled) "));
|
||||
Serial.println(testFilledTriangles());
|
||||
delay(500);
|
||||
|
||||
progmemPrint(PSTR("Rounded rects (outline) "));
|
||||
Serial.print(F("Rounded rects (outline) "));
|
||||
Serial.println(testRoundRects());
|
||||
delay(500);
|
||||
|
||||
progmemPrint(PSTR("Rounded rects (filled) "));
|
||||
Serial.print(F("Rounded rects (filled) "));
|
||||
Serial.println(testFilledRoundRects());
|
||||
delay(500);
|
||||
|
||||
progmemPrintln(PSTR("Done!"));
|
||||
Serial.println(F("Done!"));
|
||||
}
|
||||
|
||||
void loop(void) {
|
||||
@@ -378,16 +378,3 @@ unsigned long testFilledRoundRects() {
|
||||
return micros() - start;
|
||||
}
|
||||
|
||||
// Copy string from flash to serial port
|
||||
// Source string MUST be inside a PSTR() declaration!
|
||||
void progmemPrint(const char *str) {
|
||||
char c;
|
||||
while(c = pgm_read_byte(str++)) Serial.print(c);
|
||||
}
|
||||
|
||||
// Same as above, with trailing newline
|
||||
void progmemPrintln(const char *str) {
|
||||
progmemPrint(str);
|
||||
Serial.println();
|
||||
}
|
||||
|
||||
|
||||
@@ -45,12 +45,12 @@ Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
|
||||
|
||||
void setup(void) {
|
||||
Serial.begin(9600);
|
||||
progmemPrintln(PSTR("TFT LCD test"));
|
||||
Serial.println(F("TFT LCD test"));
|
||||
|
||||
#ifdef USE_ADAFRUIT_SHIELD_PINOUT
|
||||
progmemPrintln(PSTR("Using Adafruit 2.8\" TFT Arduino Shield Pinout"));
|
||||
Serial.println(F("Using Adafruit 2.8\" TFT Arduino Shield Pinout"));
|
||||
#else
|
||||
progmemPrintln(PSTR("Using Adafruit 2.8\" TFT Breakout Board Pinout"));
|
||||
Serial.println(F("Using Adafruit 2.8\" TFT Breakout Board Pinout"));
|
||||
#endif
|
||||
|
||||
tft.reset();
|
||||
@@ -58,20 +58,20 @@ void setup(void) {
|
||||
uint16_t identifier = tft.readID();
|
||||
|
||||
if(identifier == 0x9325) {
|
||||
progmemPrintln(PSTR("Found ILI9325 LCD driver"));
|
||||
Serial.println(F("Found ILI9325 LCD driver"));
|
||||
} else if(identifier == 0x9328) {
|
||||
progmemPrintln(PSTR("Found ILI9328 LCD driver"));
|
||||
Serial.println(F("Found ILI9328 LCD driver"));
|
||||
} else if(identifier == 0x7575) {
|
||||
progmemPrintln(PSTR("Found HX8347G LCD driver"));
|
||||
Serial.println(F("Found HX8347G LCD driver"));
|
||||
} else {
|
||||
progmemPrint(PSTR("Unknown LCD driver chip: "));
|
||||
Serial.print(F("Unknown LCD driver chip: "));
|
||||
Serial.println(identifier, HEX);
|
||||
progmemPrintln(PSTR("If using the Adafruit 2.8\" TFT Arduino shield, the line:"));
|
||||
progmemPrintln(PSTR(" #define USE_ADAFRUIT_SHIELD_PINOUT"));
|
||||
progmemPrintln(PSTR("should appear in the library header (Adafruit_TFT.h)."));
|
||||
progmemPrintln(PSTR("If using the breakout board, it should NOT be #defined!"));
|
||||
progmemPrintln(PSTR("Also if using the breakout, double-check that all wiring"));
|
||||
progmemPrintln(PSTR("matches the tutorial."));
|
||||
Serial.println(F("If using the Adafruit 2.8\" TFT Arduino shield, the line:"));
|
||||
Serial.println(F(" #define USE_ADAFRUIT_SHIELD_PINOUT"));
|
||||
Serial.println(F("should appear in the library header (Adafruit_TFT.h)."));
|
||||
Serial.println(F("If using the breakout board, it should NOT be #defined!"));
|
||||
Serial.println(F("Also if using the breakout, double-check that all wiring"));
|
||||
Serial.println(F("matches the tutorial."));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -79,8 +79,8 @@ void setup(void) {
|
||||
|
||||
tft.fillScreen(BLACK);
|
||||
|
||||
progmemPrintln(PSTR("This is a test of the rotation capabilities of the TFT library!"));
|
||||
progmemPrintln(PSTR("Press <SEND> (or type a character) to advance"));
|
||||
Serial.println(F("This is a test of the rotation capabilities of the TFT library!"));
|
||||
Serial.println(F("Press <SEND> (or type a character) to advance"));
|
||||
}
|
||||
|
||||
void loop(void) {
|
||||
@@ -217,16 +217,3 @@ void rotatePixel(void) {
|
||||
}
|
||||
}
|
||||
|
||||
// Copy string from flash to serial port
|
||||
// Source string MUST be inside a PSTR() declaration!
|
||||
void progmemPrint(const char *str) {
|
||||
char c;
|
||||
while(c = pgm_read_byte(str++)) Serial.print(c);
|
||||
}
|
||||
|
||||
// Same as above, with trailing newline
|
||||
void progmemPrintln(const char *str) {
|
||||
progmemPrint(str);
|
||||
Serial.println();
|
||||
}
|
||||
|
||||
|
||||
+22
-35
@@ -48,31 +48,31 @@ void setup()
|
||||
uint16_t identifier = tft.readID();
|
||||
|
||||
if(identifier == 0x9325) {
|
||||
progmemPrintln(PSTR("Found ILI9325 LCD driver"));
|
||||
Serial.println(F("Found ILI9325 LCD driver"));
|
||||
} else if(identifier == 0x9328) {
|
||||
progmemPrintln(PSTR("Found ILI9328 LCD driver"));
|
||||
Serial.println(F("Found ILI9328 LCD driver"));
|
||||
} else if(identifier == 0x7575) {
|
||||
progmemPrintln(PSTR("Found HX8347G LCD driver"));
|
||||
Serial.println(F("Found HX8347G LCD driver"));
|
||||
} else {
|
||||
progmemPrint(PSTR("Unknown LCD driver chip: "));
|
||||
Serial.print(F("Unknown LCD driver chip: "));
|
||||
Serial.println(identifier, HEX);
|
||||
progmemPrintln(PSTR("If using the Adafruit 2.8\" TFT Arduino shield, the line:"));
|
||||
progmemPrintln(PSTR(" #define USE_ADAFRUIT_SHIELD_PINOUT"));
|
||||
progmemPrintln(PSTR("should appear in the library header (Adafruit_TFT.h)."));
|
||||
progmemPrintln(PSTR("If using the breakout board, it should NOT be #defined!"));
|
||||
progmemPrintln(PSTR("Also if using the breakout, double-check that all wiring"));
|
||||
progmemPrintln(PSTR("matches the tutorial."));
|
||||
Serial.println(F("If using the Adafruit 2.8\" TFT Arduino shield, the line:"));
|
||||
Serial.println(F(" #define USE_ADAFRUIT_SHIELD_PINOUT"));
|
||||
Serial.println(F("should appear in the library header (Adafruit_TFT.h)."));
|
||||
Serial.println(F("If using the breakout board, it should NOT be #defined!"));
|
||||
Serial.println(F("Also if using the breakout, double-check that all wiring"));
|
||||
Serial.println(F("matches the tutorial."));
|
||||
return;
|
||||
}
|
||||
|
||||
tft.begin(identifier);
|
||||
|
||||
progmemPrint(PSTR("Initializing SD card..."));
|
||||
Serial.print(F("Initializing SD card..."));
|
||||
if (!SD.begin(SD_CS)) {
|
||||
progmemPrintln(PSTR("failed!"));
|
||||
Serial.println(F("failed!"));
|
||||
return;
|
||||
}
|
||||
progmemPrintln(PSTR("OK!"));
|
||||
Serial.println(F("OK!"));
|
||||
|
||||
bmpDraw("woof.bmp", 0, 0);
|
||||
delay(1000);
|
||||
@@ -121,32 +121,32 @@ void bmpDraw(char *filename, int x, int y) {
|
||||
if((x >= tft.width()) || (y >= tft.height())) return;
|
||||
|
||||
Serial.println();
|
||||
progmemPrint(PSTR("Loading image '"));
|
||||
Serial.print(F("Loading image '"));
|
||||
Serial.print(filename);
|
||||
Serial.println('\'');
|
||||
// Open requested file on SD card
|
||||
if ((bmpFile = SD.open(filename)) == NULL) {
|
||||
progmemPrintln(PSTR("File not found"));
|
||||
Serial.println(F("File not found"));
|
||||
return;
|
||||
}
|
||||
|
||||
// Parse BMP header
|
||||
if(read16(bmpFile) == 0x4D42) { // BMP signature
|
||||
progmemPrint(PSTR("File size: ")); Serial.println(read32(bmpFile));
|
||||
Serial.println(F("File size: ")); Serial.println(read32(bmpFile));
|
||||
(void)read32(bmpFile); // Read & ignore creator bytes
|
||||
bmpImageoffset = read32(bmpFile); // Start of image data
|
||||
progmemPrint(PSTR("Image Offset: ")); Serial.println(bmpImageoffset, DEC);
|
||||
Serial.print(F("Image Offset: ")); Serial.println(bmpImageoffset, DEC);
|
||||
// Read DIB header
|
||||
progmemPrint(PSTR("Header size: ")); Serial.println(read32(bmpFile));
|
||||
Serial.print(F("Header size: ")); Serial.println(read32(bmpFile));
|
||||
bmpWidth = read32(bmpFile);
|
||||
bmpHeight = read32(bmpFile);
|
||||
if(read16(bmpFile) == 1) { // # planes -- must be '1'
|
||||
bmpDepth = read16(bmpFile); // bits per pixel
|
||||
progmemPrint(PSTR("Bit Depth: ")); Serial.println(bmpDepth);
|
||||
Serial.print(F("Bit Depth: ")); Serial.println(bmpDepth);
|
||||
if((bmpDepth == 24) && (read32(bmpFile) == 0)) { // 0 = uncompressed
|
||||
|
||||
goodBmp = true; // Supported BMP format -- proceed!
|
||||
progmemPrint(PSTR("Image size: "));
|
||||
Serial.print(F("Image size: "));
|
||||
Serial.print(bmpWidth);
|
||||
Serial.print('x');
|
||||
Serial.println(bmpHeight);
|
||||
@@ -210,7 +210,7 @@ void bmpDraw(char *filename, int x, int y) {
|
||||
if(lcdidx > 0) {
|
||||
tft.pushColors(lcdbuffer, lcdidx, first);
|
||||
}
|
||||
progmemPrint(PSTR("Loaded in "));
|
||||
Serial.print(F("Loaded in "));
|
||||
Serial.print(millis() - startTime);
|
||||
Serial.println(" ms");
|
||||
} // end goodBmp
|
||||
@@ -218,7 +218,7 @@ void bmpDraw(char *filename, int x, int y) {
|
||||
}
|
||||
|
||||
bmpFile.close();
|
||||
if(!goodBmp) progmemPrintln(PSTR("BMP format not recognized."));
|
||||
if(!goodBmp) Serial.println(F("BMP format not recognized."));
|
||||
}
|
||||
|
||||
// These read 16- and 32-bit types from the SD card file.
|
||||
@@ -241,16 +241,3 @@ uint32_t read32(File f) {
|
||||
return result;
|
||||
}
|
||||
|
||||
// Copy string from flash to serial port
|
||||
// Source string MUST be inside a PSTR() declaration!
|
||||
void progmemPrint(const char *str) {
|
||||
char c;
|
||||
while(c = pgm_read_byte(str++)) Serial.print(c);
|
||||
}
|
||||
|
||||
// Same as above, with trailing newline
|
||||
void progmemPrintln(const char *str) {
|
||||
progmemPrint(str);
|
||||
Serial.println();
|
||||
}
|
||||
|
||||
|
||||
@@ -24,31 +24,31 @@ void setup()
|
||||
uint16_t identifier = tft.readID();
|
||||
|
||||
if(identifier == 0x9325) {
|
||||
progmemPrintln(PSTR("Found ILI9325 LCD driver"));
|
||||
Serial.println(F("Found ILI9325 LCD driver"));
|
||||
} else if(identifier == 0x9328) {
|
||||
progmemPrintln(PSTR("Found ILI9328 LCD driver"));
|
||||
Serial.println(F("Found ILI9328 LCD driver"));
|
||||
} else if(identifier == 0x7575) {
|
||||
progmemPrintln(PSTR("Found HX8347G LCD driver"));
|
||||
Serial.println(F("Found HX8347G LCD driver"));
|
||||
} else {
|
||||
progmemPrint(PSTR("Unknown LCD driver chip: "));
|
||||
Serial.print(F("Unknown LCD driver chip: "));
|
||||
Serial.println(identifier, HEX);
|
||||
progmemPrintln(PSTR("If using the Adafruit 2.8\" TFT Arduino shield, the line:"));
|
||||
progmemPrintln(PSTR(" #define USE_ADAFRUIT_SHIELD_PINOUT"));
|
||||
progmemPrintln(PSTR("should appear in the library header (Adafruit_TFT.h)."));
|
||||
progmemPrintln(PSTR("If using the breakout board, it should NOT be #defined!"));
|
||||
progmemPrintln(PSTR("Also if using the breakout, double-check that all wiring"));
|
||||
progmemPrintln(PSTR("matches the tutorial."));
|
||||
Serial.println(F("If using the Adafruit 2.8\" TFT Arduino shield, the line:"));
|
||||
Serial.println(F(" #define USE_ADAFRUIT_SHIELD_PINOUT"));
|
||||
Serial.println(F("should appear in the library header (Adafruit_TFT.h)."));
|
||||
Serial.println(F("If using the breakout board, it should NOT be #defined!"));
|
||||
Serial.println(F("Also if using the breakout, double-check that all wiring"));
|
||||
Serial.println(F("matches the tutorial."));
|
||||
return;
|
||||
}
|
||||
|
||||
tft.begin(identifier);
|
||||
|
||||
progmemPrint(PSTR("Initializing SD card..."));
|
||||
Serial.print(F("Initializing SD card..."));
|
||||
if (!SD.begin(SD_CS)) {
|
||||
progmemPrintln(PSTR("failed!"));
|
||||
Serial.println(F("failed!"));
|
||||
return;
|
||||
}
|
||||
progmemPrintln(PSTR("OK!"));
|
||||
Serial.println(F("OK!"));
|
||||
spi_save = SPCR;
|
||||
|
||||
bmpDraw("woof.bmp", 0, 0);
|
||||
@@ -109,21 +109,21 @@ void bmpDraw(char *filename, int x, int y) {
|
||||
|
||||
// Parse BMP header
|
||||
if(read16(bmpFile) == 0x4D42) { // BMP signature
|
||||
progmemPrint(PSTR("File size: ")); Serial.println(read32(bmpFile));
|
||||
Serial.print(F("File size: ")); Serial.println(read32(bmpFile));
|
||||
(void)read32(bmpFile); // Read & ignore creator bytes
|
||||
bmpImageoffset = read32(bmpFile); // Start of image data
|
||||
progmemPrint(PSTR("Image Offset: ")); Serial.println(bmpImageoffset, DEC);
|
||||
Serial.print(F("Image Offset: ")); Serial.println(bmpImageoffset, DEC);
|
||||
// Read DIB header
|
||||
progmemPrint(PSTR("Header size: ")); Serial.println(read32(bmpFile));
|
||||
Serial.print(F("Header size: ")); Serial.println(read32(bmpFile));
|
||||
bmpWidth = read32(bmpFile);
|
||||
bmpHeight = read32(bmpFile);
|
||||
if(read16(bmpFile) == 1) { // # planes -- must be '1'
|
||||
bmpDepth = read16(bmpFile); // bits per pixel
|
||||
progmemPrint(PSTR("Bit Depth: ")); Serial.println(bmpDepth);
|
||||
Serial.print(F("Bit Depth: ")); Serial.println(bmpDepth);
|
||||
if((bmpDepth == 24) && (read32(bmpFile) == 0)) { // 0 = uncompressed
|
||||
|
||||
goodBmp = true; // Supported BMP format -- proceed!
|
||||
progmemPrint(PSTR("Image size: "));
|
||||
Serial.print(F("Image size: "));
|
||||
Serial.print(bmpWidth);
|
||||
Serial.print('x');
|
||||
Serial.println(bmpHeight);
|
||||
@@ -192,7 +192,7 @@ void bmpDraw(char *filename, int x, int y) {
|
||||
SPCR = 0;
|
||||
tft.pushColors(lcdbuffer, lcdidx, first);
|
||||
}
|
||||
progmemPrint(PSTR("Loaded in "));
|
||||
Serial.print(F("Loaded in "));
|
||||
Serial.print(millis() - startTime);
|
||||
Serial.println(" ms");
|
||||
} // end goodBmp
|
||||
@@ -223,16 +223,3 @@ uint32_t read32(File f) {
|
||||
return result;
|
||||
}
|
||||
|
||||
// Copy string from flash to serial port
|
||||
// Source string MUST be inside a PSTR() declaration!
|
||||
void progmemPrint(const char *str) {
|
||||
char c;
|
||||
while(c = pgm_read_byte(str++)) Serial.print(c);
|
||||
}
|
||||
|
||||
// Same as above, with trailing newline
|
||||
void progmemPrintln(const char *str) {
|
||||
progmemPrint(str);
|
||||
Serial.println();
|
||||
}
|
||||
|
||||
|
||||
@@ -60,20 +60,20 @@ int oldcolor, currentcolor;
|
||||
|
||||
void setup(void) {
|
||||
Serial.begin(9600);
|
||||
progmemPrintln(PSTR("Paint!"));
|
||||
Serial.println(F("Paint!"));
|
||||
|
||||
tft.reset();
|
||||
|
||||
uint16_t identifier = tft.readID();
|
||||
|
||||
if(identifier == 0x9325) {
|
||||
progmemPrintln(PSTR("Found ILI9325 LCD driver"));
|
||||
Serial.println(F("Found ILI9325 LCD driver"));
|
||||
} else if(identifier == 0x9328) {
|
||||
progmemPrintln(PSTR("Found ILI9328 LCD driver"));
|
||||
Serial.println(F("Found ILI9328 LCD driver"));
|
||||
} else if(identifier == 0x7575) {
|
||||
progmemPrintln(PSTR("Found HX8347G LCD driver"));
|
||||
Serial.println(F("Found HX8347G LCD driver"));
|
||||
} else {
|
||||
progmemPrint(PSTR("Unknown LCD driver chip: "));
|
||||
Serial.print(F("Unknown LCD driver chip: "));
|
||||
Serial.println(identifier, HEX);
|
||||
return;
|
||||
}
|
||||
@@ -172,16 +172,3 @@ void loop()
|
||||
}
|
||||
}
|
||||
|
||||
// Copy string from flash to serial port
|
||||
// Source string MUST be inside a PSTR() declaration!
|
||||
void progmemPrint(const char *str) {
|
||||
char c;
|
||||
while(c = pgm_read_byte(str++)) Serial.print(c);
|
||||
}
|
||||
|
||||
// Same as above, with trailing newline
|
||||
void progmemPrintln(const char *str) {
|
||||
progmemPrint(str);
|
||||
Serial.println();
|
||||
}
|
||||
|
||||
|
||||
@@ -49,20 +49,20 @@ int oldcolor, currentcolor;
|
||||
|
||||
void setup(void) {
|
||||
Serial.begin(9600);
|
||||
progmemPrintln(PSTR("Paint!"));
|
||||
Serial.println(F("Paint!"));
|
||||
|
||||
tft.reset();
|
||||
|
||||
uint16_t identifier = tft.readID();
|
||||
|
||||
if(identifier == 0x9325) {
|
||||
progmemPrintln(PSTR("Found ILI9325 LCD driver"));
|
||||
Serial.println(F("Found ILI9325 LCD driver"));
|
||||
} else if(identifier == 0x9328) {
|
||||
progmemPrintln(PSTR("Found ILI9328 LCD driver"));
|
||||
Serial.println(F("Found ILI9328 LCD driver"));
|
||||
} else if(identifier == 0x7575) {
|
||||
progmemPrintln(PSTR("Found HX8347G LCD driver"));
|
||||
Serial.println(F("Found HX8347G LCD driver"));
|
||||
} else {
|
||||
progmemPrint(PSTR("Unknown LCD driver chip: "));
|
||||
Serial.print(F("Unknown LCD driver chip: "));
|
||||
Serial.println(identifier, HEX);
|
||||
return;
|
||||
}
|
||||
@@ -161,16 +161,3 @@ void loop()
|
||||
}
|
||||
}
|
||||
|
||||
// Copy string from flash to serial port
|
||||
// Source string MUST be inside a PSTR() declaration!
|
||||
void progmemPrint(const char *str) {
|
||||
char c;
|
||||
while(c = pgm_read_byte(str++)) Serial.print(c);
|
||||
}
|
||||
|
||||
// Same as above, with trailing newline
|
||||
void progmemPrintln(const char *str) {
|
||||
progmemPrint(str);
|
||||
Serial.println();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user