diff --git a/examples/rotationtest/rotationtft.pde b/examples/rotationtest/rotationtft.pde new file mode 100644 index 0000000..7bdd557 --- /dev/null +++ b/examples/rotationtest/rotationtft.pde @@ -0,0 +1,201 @@ +// The control pins can connect to any pins but we'll use the +// analog lines since that means we can double up the pins +// with the touch screen (see the TFT paint example) +#define LCD_CS A3 // Chip Select goes to Analog 3 +#define LCD_CD A2 // Command/Data goes to Analog 2 +#define LCD_WR A1 // LCD Write goes to Analog 1 +#define LCD_RD A0 // LCD Read goes to Analog 0 + +// you can also just connect RESET to the arduino RESET pin +#define LCD_RESET A4 + +/* For the 8 data pins: +Duemilanove/Diecimila/UNO/etc ('168 and '328 chips) microcontoller: +D0 connects to digital 8 +D1 connects to digital 9 +D2 connects to digital 2 +D3 connects to digital 3 +D4 connects to digital 4 +D5 connects to digital 5 +D6 connects to digital 6 +D7 connects to digital 7 + +For Mega's use pins 22 thru 29 (on the double header at the end) +*/ + +// Color definitions +#define BLACK 0x0000 +#define BLUE 0x001F +#define RED 0xF800 +#define GREEN 0x07E0 +#define CYAN 0x07FF +#define MAGENTA 0xF81F +#define YELLOW 0xFFE0 +#define WHITE 0xFFFF + +#include "TFTLCD.h" + +TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); + +void setup(void) { + Serial.begin(9600); + Serial.println("8 Bit LCD test!"); + + tft.reset(); + + uint16_t identifier = tft.readRegister(0x0); + if (identifier == 0x9325) { + Serial.println("Found ILI9325"); + } else if (identifier == 0x9328) { + Serial.println("Found ILI9328"); + } else { + Serial.print("Unknown driver chip "); + Serial.println(identifier, HEX); + while (1); + } + + tft.initDisplay(); + + tft.fillScreen(BLACK); + + Serial.println("This is a test of the rotation capabilities of the TFT library!"); + Serial.println("Press (or type a character) to advance"); +} + +void loop(void) { + rotatePixel(); + rotateLine(); + rotateFastline(); + rotateDrawrect(); + rotateFillrect(); + rotateDrawcircle(); + rotateFillcircle(); + rotateText(); +} + +void rotateText() { + for (uint8_t i=0; i<4; i++) { + tft.fillScreen(BLACK); + Serial.println(tft.getRotation(), DEC); + + tft.setCursor(0, 30); + tft.setTextColor(RED); + tft.setTextSize(1); + tft.println("Hello World!"); + tft.setTextColor(YELLOW); + tft.setTextSize(2); + tft.println("Hello World!"); + tft.setTextColor(GREEN); + tft.setTextSize(3); + tft.println("Hello World!"); + tft.setTextColor(BLUE); + tft.setTextSize(4); + tft.print(1234.567); + + while (!Serial.available()); + Serial.read(); Serial.read(); Serial.read(); + + tft.setRotation(tft.getRotation()+1); + } +} + +void rotateFillcircle(void) { + for (uint8_t i=0; i<4; i++) { + tft.fillScreen(BLACK); + Serial.println(tft.getRotation(), DEC); + + tft.fillCircle(10, 30, 10, YELLOW); + + while (!Serial.available()); + Serial.read(); Serial.read(); Serial.read(); + + tft.setRotation(tft.getRotation()+1); + } +} + +void rotateDrawcircle(void) { + for (uint8_t i=0; i<4; i++) { + tft.fillScreen(BLACK); + Serial.println(tft.getRotation(), DEC); + + tft.drawCircle(10, 30, 10, YELLOW); + + while (!Serial.available()); + Serial.read(); Serial.read(); Serial.read(); + + tft.setRotation(tft.getRotation()+1); + } +} + +void rotateFillrect(void) { + for (uint8_t i=0; i<4; i++) { + tft.fillScreen(BLACK); + Serial.println(tft.getRotation(), DEC); + + tft.fillRect(10, 20, 10, 20, GREEN); + + while (!Serial.available()); + Serial.read(); Serial.read(); Serial.read(); + + tft.setRotation(tft.getRotation()+1); + } +} + + +void rotateDrawrect(void) { + for (uint8_t i=0; i<4; i++) { + tft.fillScreen(BLACK); + Serial.println(tft.getRotation(), DEC); + + + tft.drawRect(10, 20, 10, 20, GREEN); + + while (!Serial.available()); + Serial.read(); Serial.read(); Serial.read(); + + tft.setRotation(tft.getRotation()+1); + } +} + + +void rotateFastline(void) { + for (uint8_t i=0; i<4; i++) { + tft.fillScreen(BLACK); + Serial.println(tft.getRotation(), DEC); + + tft.drawHorizontalLine(0, 20, tft.width(), RED); + tft.drawVerticalLine(20, 0, tft.height(), BLUE); + + while (!Serial.available()); + Serial.read(); Serial.read(); Serial.read(); + + tft.setRotation(tft.getRotation()+1); + } +} + + +void rotateLine(void) { + for (uint8_t i=0; i<4; i++) { + tft.fillScreen(BLACK); + Serial.println(tft.getRotation(), DEC); + + tft.drawLine(tft.width()/2, tft.height()/2, 0, 0, RED); + while (!Serial.available()); + Serial.read(); Serial.read(); Serial.read(); + + tft.setRotation(tft.getRotation()+1); + } +} + +void rotatePixel(void) { + for (uint8_t i=0; i<4; i++) { + tft.fillScreen(BLACK); + Serial.println(tft.getRotation(), DEC); + + tft.drawPixel(10,20, RED); + while (!Serial.available()); + Serial.read(); Serial.read(); Serial.read(); + + tft.setRotation(tft.getRotation()+1); + } +}