test for the SPI_TFT Lib

Dependencies:   SPI_TFT TFT_fonts mbed

Fork of TFT_Test1 by Peter Drescher

Revision:
5:a6e8dc7bd7e3
Parent:
2:64fbd5e91109
--- a/main.cpp	Fri Sep 16 22:32:10 2011 +0000
+++ b/main.cpp	Tue Feb 21 13:50:14 2017 +0000
@@ -1,5 +1,5 @@
- // example to test the TFT Display
- // Thanks to the GraphicsDisplay and TextDisplay classes from 
+// example to test the TFT Display
+// Thanks to the GraphicsDisplay and TextDisplay classes from
 
 #include "stdio.h"
 #include "mbed.h"
@@ -12,76 +12,175 @@
 
 extern unsigned char p1[];  // the mbed logo
 
-// the TFT is connected to SPI pin 5-7 
-SPI_TFT TFT(p11, p12, p13, p14, p15,"TFT"); // mosi, miso, sclk, cs, reset
+// the TFT is connected to SPI pin 5-7
+//SPI_TFT TFT(p11, p12, p13, p14, p15,"TFT"); // mosi, miso, sclk, cs, reset
+SPI_TFT TFT(CLCD_MOSI, CLCD_MISO, CLCD_SCLK, CLCD_SSEL , CLCD_RESET, "TFT"); // mosi, miso, sclk, cs, reset
+Serial pc(USBTX, USBRX);
+
+const uint16_t colorTable[18] = {
+    Black,
+    Navy,
+    DarkGreen,
+    DarkCyan,
+    Maroon,
+    Purple,
+    Olive,
+    LightGrey,
+    DarkGrey,
+    Blue,
+    Green,
+    Cyan,
+    Red,
+    Magenta,
+    Yellow,
+    White,
+    Orange,
+    GreenYellow
+};
+
+void screen2(void) // Graphics
+{
+    //Draw some graphics
+    int i, x[2], y[2] ;
+
+    TFT.background(Black);
+    TFT.foreground(White);
+    TFT.cls() ;
+    TFT.set_font((unsigned char*) Arial12x12);
+    TFT.locate(90,0);
+    TFT.printf("Graphics");
 
-int main() {
-    int i;
-    TFT.claim(stdout);      // send stdout to the TFT display 
+    x[0] = 25 ;
+    x[1] = 224 ;
+    y[0] = 20 ;
+    y[1] = 219 ;
+    for (i = 20 ; i < 220 ; i += 10) {
+        TFT.line(i+5, y[0], i+5, y[1], Blue) ;
+        TFT.line(x[0], i, x[1], i, Blue) ;
+    }
+    TFT.line(125, y[0], 125, y[1], Green) ;
+    TFT.line(x[0], 120, x[1], 120, Green) ;
+    TFT.rect(x[0],y[0], x[1], y[1], Green) ;
+    TFT.locate(10, 20) ;
+    TFT.printf("V") ;
+    TFT.locate(0, 115) ;
+    TFT.printf("0.0") ;
+    TFT.locate(115, 225) ;
+    TFT.printf("0.0") ;
+    TFT.locate(215, 225) ;
+    TFT.printf("T") ;
+
+    double s;
+    for (int i = x[0]; i < 225; i++) {
+        s = 40 * sin((long double)i / 20);
+        TFT.pixel(i, 120 + (int)s, White);
+    }
+#if 0
+    TFT.fillrect(10, 240, 229, 309, White) ;
+    TFT.rect(10, 240, 229, 309, Red) ;
+    TFT.rect(11, 241, 228, 308, Red) ;
+
+    TFT.background(White) ;
+    TFT.foreground(Black) ;
+    TFT.locate(20, 250) ;
+    TFT.printf("With QVGA resolution") ;
+    TFT.locate(20, 270) ;
+    TFT.printf("simple graphics drawing") ;
+    TFT.locate(20, 290) ;
+    TFT.printf("capability is provided") ;
+#endif
+}
+
+int main()
+{
+    pc.baud(38400);
+    pc.printf("Hello, mbed world.\n");
+    pc.printf("System core lock : %d\n", SystemCoreClock);
+
+    TFT.claim(stdout);      // send stdout to the TFT display
     //TFT.claim(stderr);      // send stderr to the TFT display
 
-    TFT.background(Black);    // set background to black
-    TFT.foreground(White);    // set chars to white
-    TFT.cls();                // clear the screen
-    TFT.set_font((unsigned char*) Arial12x12);  // select the font
-      
-    // first show the 4 directions  
-    TFT.set_orientation(0);
-    TFT.locate(0,0);
-    printf("  Hello Mbed 0");
-    TFT.set_orientation(1);
-    TFT.locate(0,0);
-    printf("  Hello Mbed 1");
-    TFT.set_orientation(2);
-    TFT.locate(0,0);
-    printf("  Hello Mbed 2");
-    TFT.set_orientation(3);
-    TFT.locate(0,0);
-    printf("  Hello Mbed 3");
-    TFT.set_orientation(1);
-    TFT.set_font((unsigned char*) Arial24x23);
-    TFT.locate(50,100);
-    TFT.printf("TFT orientation");
-       
-    wait(5);        // wait two seconds 
-    
-    // draw some graphics 
-    TFT.cls();          
-    TFT.set_orientation(1);
-    TFT.set_font((unsigned char*) Arial24x23);
-    TFT.locate(100,100);
-    TFT.printf("Graphic");
-     
-    TFT.line(0,0,100,200,Green);
-    TFT.rect(100,50,150,100,Red);
-    TFT.fillrect(180,25,220,70,Blue);
-    TFT.circle(80,150,33,White);
-    
-    wait(5);        // wait two seconds
-    
-    // bigger text
-    TFT.foreground(White);
-    TFT.background(Blue);
-    TFT.cls();
-    TFT.set_font((unsigned char*) Arial24x23);
-    TFT.locate(0,0);
-    TFT.printf("Different Fonts :");
-    
-    TFT.set_font((unsigned char*) Neu42x35);
-    TFT.locate(0,30);
-    TFT.printf("Hello Mbed 1");
-    TFT.set_font((unsigned char*) Arial24x23);
-    TFT.locate(20,80);
-    TFT.printf("Hello Mbed 2");
-    TFT.set_font((unsigned char*) Arial12x12);
-    TFT.locate(35,120);
-    TFT.printf("Hello Mbed 3");
-    wait(5);
-  
-    // mbed logo  
-    TFT.set_orientation(1);
-    TFT.background(Black);
-    TFT.cls();
-    TFT.Bitmap(90,90,172,55,p1);
+    while(1) {
+        TFT.background(Black);    // set background to black
+        TFT.foreground(White);    // set chars to white
+        TFT.cls();                // clear the screen
+        TFT.set_font((unsigned char*) Arial12x12);  // select the font
+
+        // first show the 4 directions
+        TFT.set_orientation(0);
+        TFT.locate(0,0);
+        printf("  Hello Mbed 0");
+        TFT.set_orientation(1);
+        TFT.locate(0,0);
+        printf("  Hello Mbed 1");
+        TFT.set_orientation(2);
+        TFT.locate(0,0);
+        printf("  Hello Mbed 2");
+        TFT.set_orientation(3);
+        TFT.locate(0,0);
+        printf("  Hello Mbed 3");
+        TFT.set_orientation(1);
+        TFT.set_font((unsigned char*) Arial24x23);
+        TFT.locate(50,100);
+        TFT.printf("TFT orientation");
+
+        wait(5);        // wait two seconds
+
+        screen2();
+        wait(5);
+
+        // draw some graphics
+        TFT.background(Black);    // set background to black
+        TFT.foreground(White);    // set chars to white
+        TFT.cls();
+        TFT.set_orientation(1);
+        TFT.set_font((unsigned char*) Arial24x23);
+        TFT.locate(120,30);
+        TFT.printf("Graphic");
+
+        /*
+        TFT.line(0,0,100,200,Green);
+        TFT.rect(100,50,150,100,Red);
+        TFT.fillrect(180,25,220,70,Blue);
+        TFT.circle(80,150,33,White);
+        */
+        
+        int c = 0;
+        for(int i = 0; i < 32; i++) {
+            TFT.fillrect(i*10, i*7, i*10 + 20, i*7 + 20, colorTable[c++]);
+            TFT.rect(i*10, 240 - i*7,i*10 + 20, 240 - i*7 - 20, colorTable[c++]);
+            TFT.circle(i*10, 120, 20, colorTable[c++]);
+            if (c > 18)
+                c = 0;
+        }
+
+        wait(5);        // wait two seconds
+
+        // bigger text
+        TFT.foreground(White);
+        TFT.background(Blue);
+        TFT.cls();
+        TFT.set_font((unsigned char*) Arial24x23);
+        TFT.locate(0,0);
+        TFT.printf("Different Fonts :");
+
+        TFT.set_font((unsigned char*) Neu42x35);
+        TFT.locate(0,30);
+        TFT.printf("Hello Mbed 1");
+        TFT.set_font((unsigned char*) Arial24x23);
+        TFT.locate(20,80);
+        TFT.printf("Hello Mbed 2");
+        TFT.set_font((unsigned char*) Arial12x12);
+        TFT.locate(35,120);
+        TFT.printf("Hello Mbed 3");
+        wait(5);
+
+        // mbed logo
+        TFT.set_orientation(1);
+        TFT.background(Black);
+        TFT.cls();
+        TFT.Bitmap(90,90,172,55,p1);
+        wait(5);
+    }
 }