TFT_ILI9163C test A fork of https://github.com/sumotoy/TFT_ILI9163C
Dependencies: Adafruit-GFX-Library TFT_ILI9163C mbed
Fork of IL9163C_test by
Revision 11:b838083e66f0, committed 2016-03-04
- Comitter:
- billycorgan123
- Date:
- Fri Mar 04 08:58:51 2016 +0000
- Parent:
- 10:ca55ed33bb27
- Commit message:
- program with Arduino TFT LCD Screen, 128x160, ILI9163
Changed in this revision
TFT_ILI9163C.lib | Show annotated file Show diff for this revision Revisions of this file |
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r ca55ed33bb27 -r b838083e66f0 TFT_ILI9163C.lib --- a/TFT_ILI9163C.lib Mon Mar 02 12:02:11 2015 +0000 +++ b/TFT_ILI9163C.lib Fri Mar 04 08:58:51 2016 +0000 @@ -1,1 +1,1 @@ -http://developer.mbed.org/users/peu605/code/TFT_ILI9163C/#4dd4a2f7b7f6 +https://developer.mbed.org/users/billycorgan123/code/TFT_ILI9163C/#f0799be044ff
diff -r ca55ed33bb27 -r b838083e66f0 main.cpp --- a/main.cpp Mon Mar 02 12:02:11 2015 +0000 +++ b/main.cpp Fri Mar 04 08:58:51 2016 +0000 @@ -1,8 +1,13 @@ +/*-----( Import needed libraries )-----*/ #include "mbed.h" - #include <Adafruit_GFX.h> #include <TFT_ILI9163C.h> +/* to connect Arduino TFT LCD Screen follow as described in +https://www.arduino.cc/en/Guide/TFTtoBoards +*/ + +/* define pin used*/ #define __MOSI D11 #define __MISO NC #define __SCLK D13 @@ -10,6 +15,7 @@ #define __DC D9 #define __RST D8 +/*-----( Declare Constants )-----*/ // Color definitions #define BLACK 0x0000 #define BLUE 0x001F @@ -23,397 +29,41 @@ #define SPI_BITRATE 50000000L +/*-----( Declare objects )-----*/ TFT_ILI9163C tft(__MOSI, __MISO, __SCLK, __CS, __DC, __RST); -Serial pc(SERIAL_TX, SERIAL_RX); -Timer t; - -uint32_t results[12]; - -void delay(uint32_t ms) -{ - wait_ms(ms); -} - -uint32_t micros() -{ - return t.read_us(); -} - -int min(int a, int b) -{ - return a < b ? a : b; -} - -unsigned long testFillScreen() -{ - unsigned long start = micros(); - tft.fillScreen(); - tft.fillScreen(RED); - tft.fillScreen(GREEN); - tft.fillScreen(BLUE); - tft.fillScreen(); - return micros() - start; -} - -unsigned long testText() -{ - tft.fillScreen(); - unsigned long start = micros(); - tft.setCursor(0, 0); - tft.setTextColor(WHITE); - tft.setTextSize(1); - tft.printf("Hello World!\n"); - tft.setTextColor(YELLOW); - tft.setTextSize(2); - tft.printf("%.2f\n", 1234.56); - tft.setTextColor(RED); - tft.setTextSize(3); - tft.printf("%x", 0xABCD); - tft.printf("\n"); - tft.setTextColor(GREEN); - tft.setTextSize(4); - tft.printf("Hello\n"); - tft.setTextSize(2); - tft.printf("I implore thee,\n"); - tft.setTextSize(1); - tft.printf("my foonting turlingdromes.\n"); - tft.printf("And hooptiously drangle me\n"); - tft.printf("with crinkly bindlewurdles,\n"); - tft.printf("Or I will rend thee\n"); - tft.printf("in the gobberwarts\n"); - tft.printf("with my blurglecruncheon,\n"); - tft.printf("see if I don't!\n"); - return micros() - start; -} - -unsigned long testLines(uint16_t color) -{ - unsigned long start, t; - int x1, y1, x2, y2, - w = tft.width(), - h = tft.height(); - - tft.fillScreen(); - - x1 = y1 = 0; - y2 = h - 1; - start = micros(); - for(x2=0; x2<w; x2+=6) tft.drawLine(x1, y1, x2, y2, color); - x2 = w - 1; - for(y2=0; y2<h; y2+=6) tft.drawLine(x1, y1, x2, y2, color); - t = micros() - start; // fillScreen doesn't count against timing - - tft.fillScreen(); - - x1 = w - 1; - y1 = 0; - y2 = h - 1; - start = micros(); - for(x2=0; x2<w; x2+=6) tft.drawLine(x1, y1, x2, y2, color); - x2 = 0; - for(y2=0; y2<h; y2+=6) tft.drawLine(x1, y1, x2, y2, color); - t += micros() - start; - - tft.fillScreen(); - - x1 = 0; - y1 = h - 1; - y2 = 0; - start = micros(); - for(x2=0; x2<w; x2+=6) tft.drawLine(x1, y1, x2, y2, color); - x2 = w - 1; - for(y2=0; y2<h; y2+=6) tft.drawLine(x1, y1, x2, y2, color); - t += micros() - start; - - tft.fillScreen(); - - x1 = w - 1; - y1 = h - 1; - y2 = 0; - start = micros(); - for(x2=0; x2<w; x2+=6) tft.drawLine(x1, y1, x2, y2, color); - x2 = 0; - for(y2=0; y2<h; y2+=6) tft.drawLine(x1, y1, x2, y2, color); - - return micros() - start; -} - -unsigned long testFastLines(uint16_t color1, uint16_t color2) -{ - unsigned long start; - int x, y, w = tft.width(), h = tft.height(); - - tft.fillScreen(); - start = micros(); - for(y=0; y<h; y+=5) tft.drawFastHLine(0, y, w, color1); - for(x=0; x<w; x+=5) tft.drawFastVLine(x, 0, h, color2); - - return micros() - start; -} - -unsigned long testRects(uint16_t color) -{ - unsigned long start; - int n, i, i2, - cx = tft.width() / 2, - cy = tft.height() / 2; - - tft.fillScreen(); - n = min(tft.width(), tft.height()); - start = micros(); - for(i=2; i<n; i+=6) { - i2 = i / 2; - tft.drawRect(cx-i2, cy-i2, i, i, color); - } - - return micros() - start; -} - -unsigned long testFilledRects(uint16_t color1, uint16_t color2) -{ - unsigned long start, t = 0; - int n, i, i2, - cx = (tft.width() / 2) - 1, - cy = (tft.height() / 2) - 1; - - tft.fillScreen(); - n = min(tft.width(), tft.height()); - for(i=n; i>0; i-=6) { - i2 = i / 2; - start = micros(); - tft.fillRect(cx-i2, cy-i2, i, i, color1); - t += micros() - start; - // Outlines are not included in timing results - tft.drawRect(cx-i2, cy-i2, i, i, color2); - } - - return t; -} - -unsigned long testFilledCircles(uint8_t radius, uint16_t color) -{ - unsigned long start; - int x, y, w = tft.width(), h = tft.height(), r2 = radius * 2; - - tft.fillScreen(); - start = micros(); - for(x=radius; x<w; x+=r2) { - for(y=radius; y<h; y+=r2) { - tft.fillCircle(x, y, radius, color); - } - } - - return micros() - start; -} - -unsigned long testCircles(uint8_t radius, uint16_t color) -{ - unsigned long start; - int x, y, r2 = radius * 2, - w = tft.width() + radius, - h = tft.height() + radius; - - // Screen is not cleared for this one -- this is - // intentional and does not affect the reported time. - start = micros(); - for(x=0; x<w; x+=r2) { - for(y=0; y<h; y+=r2) { - tft.drawCircle(x, y, radius, color); - } - } - - return micros() - start; -} - -unsigned long testTriangles() -{ - unsigned long start; - int n, i, cx = tft.width() / 2 - 1, - cy = (tft.height() / 2) - 1; - - tft.fillScreen(); - n = min(cx, cy); - start = micros(); - for(i=0; i<n; i+=5) { - tft.drawTriangle( - cx , cy - i, // peak - cx - i, cy + i, // bottom left - cx + i, cy + i, // bottom right - tft.Color565(0, 0, i)); - } - - return micros() - start; -} - -unsigned long testFilledTriangles() -{ - unsigned long start, t = 0; - int i, cx = (tft.width() / 2) - 1, - cy = tft.height() / 2 - 1; - - tft.fillScreen(); - start = micros(); - for(i=min(cx,cy); i>10; i-=5) { - start = micros(); - tft.fillTriangle(cx, cy - i, cx - i, cy + i, cx + i, cy + i, - tft.Color565(0, i, i)); - t += micros() - start; - tft.drawTriangle(cx, cy - i, cx - i, cy + i, cx + i, cy + i, - tft.Color565(i, i, 0)); - } - - return t; -} - -unsigned long testRoundRects() -{ - unsigned long start; - int w, i, i2, - cx = (tft.width() / 2) - 1, - cy = (tft.height() / 2) - 1; - - tft.fillScreen(); - w = min(tft.width(), tft.height()); - start = micros(); - for(i=0; i<w; i+=6) { - i2 = i / 2; - tft.drawRoundRect(cx-i2, cy-i2, i, i, i/8, tft.Color565(i, 0, 0)); - } - - return micros() - start; -} - -unsigned long testFilledRoundRects() -{ - unsigned long start; - int i, i2, - cx = (tft.width() / 2) - 1, - cy = (tft.height() / 2) - 1; - - tft.fillScreen(); - start = micros(); - for(i=min(tft.width(), tft.height()); i>20; i-=6) { - i2 = i / 2; - tft.fillRoundRect(cx-i2, cy-i2, i, i, i/8, tft.Color565(0, i, 0)); - } - - return micros() - start; -} - - -void doBenchmark(void) -{ - uint8_t testNumber = 0; - pc.printf("Benchmark Time (microseconds)\n"); - results[testNumber] = testFillScreen(); - pc.printf("Screen fill %d\n", results[testNumber++]); - delay(500); - - results[testNumber] = testText(); - pc.printf("Text %d\n", results[testNumber++]); - delay(500); - - results[testNumber] = testLines(CYAN); - pc.printf("Lines %d\n", results[testNumber++]); - delay(500); - - results[testNumber] = testFastLines(RED, BLUE); - pc.printf("Horiz/Vert Lines %d\n", results[testNumber++]); - delay(500); - - results[testNumber] = testRects(GREEN); - pc.printf("Rectangles (outline) %d\n", results[testNumber++]); - delay(500); - - results[testNumber] = testFilledRects(YELLOW,MAGENTA); - pc.printf("Rectangles (filled) %d\n", results[testNumber++]); - delay(500); - - results[testNumber] = testFilledCircles(10,MAGENTA); - pc.printf("Circles (filled) %d\n", results[testNumber++]); - delay(500); - - results[testNumber] = testCircles(10,WHITE); - pc.printf("Circles (outline) %d\n", results[testNumber++]); - delay(500); - - results[testNumber] = testTriangles(); - pc.printf("Triangles (outline) %d\n", results[testNumber++]); - delay(500); - - results[testNumber] = testFilledTriangles(); - pc.printf("Triangles (filled) %d\n", results[testNumber++]); - delay(500); - - results[testNumber] = testRoundRects(); - pc.printf("Rounded rects (outline) %d\n", results[testNumber++]); - delay(500); - - results[testNumber] = testFilledRoundRects(); - pc.printf("Rounded rects (filled) %d\n", results[testNumber++]); - delay(500); - - pc.printf("Done!\n"); -} - -void dispResults() { - - tft.fillScreen(); - tft.setCursor(0, 0); - tft.setTextColor(WHITE); - tft.setTextSize(1); - - uint8_t testNumber = 0; - tft.printf("Benchmark msec\n"); - tft.printf("Screen fill %d\n", results[testNumber++]); - tft.printf("Text %d\n", results[testNumber++]); - tft.printf("Lines %d\n", results[testNumber++]); - tft.printf("H/V Lines %d\n", results[testNumber++]); - tft.printf("Rect(outline) %d\n", results[testNumber++]); - tft.printf("Rect(filled) %d\n", results[testNumber++]); - tft.printf("Circ(filled) %d\n", results[testNumber++]); - tft.printf("Circ(outline) %d\n", results[testNumber++]); - tft.printf("Tria(outline) %d\n", results[testNumber++]); - tft.printf("Tria(filled) %d\n", results[testNumber++]); - tft.printf("Round(outline) %d\n", results[testNumber++]); - tft.printf("Round(filled) %d\n", results[testNumber++]); - -} - -void loop(void) -{ - for(uint8_t rotation=0; rotation<4; rotation++) { - tft.setRotation(rotation); - dispResults(); - for (int16_t i = 0; i <= _TFTHEIGHT; ++i) { - tft.scroll(i); - delay(5); - } - delay(500); - - for (int16_t i = _TFTHEIGHT; i >= 0; --i) { - tft.scroll(i); - delay(5); - } - delay(1000); - } -} - int main() -{ - t.start(); - +{ tft.begin(); tft.setBitrate(50000000); - tft.setRotation(0); -// tft.setRotation(2); - doBenchmark(); - delay(1000); - - while (true) { - loop(); - } + for(int i= 0; i<3; i++){ + tft.setRotation(0); + tft.fillScreen(RED); + wait(1.0); + tft.fillScreen(BLUE); + wait(1.0); + tft.fillScreen(GREEN); + wait(1.0); + tft.fillScreen(CYAN); + wait(1.0); + tft.fillScreen(MAGENTA); + wait(1.0); + } + + for(int i= 0; i<10; i++){ + tft.fillRect(0,0,128,80, GREEN); + tft.fillRect(0,80,128,160, YELLOW); + wait(0.5); + tft.fillRect(0,0,128,80, YELLOW); + tft.fillRect(0,80,128,160, GREEN); + wait(0.5); + } + + tft.fillScreen(BLACK); + tft.fillRect(20,60,60,80,CYAN); + + + } \ No newline at end of file