Library to control a Graphics TFT connected to 4-wire SPI - revised for the Raio RA8875 Display Controller.

Dependents:   FRDM_RA8875_mPaint RA8875_Demo RA8875_KeyPadDemo SignalGenerator ... more

Fork of SPI_TFT by Peter Drescher

See Components - RA8875 Based Display

Enhanced touch-screen support - where it previous supported both the Resistive Touch and Capacitive Touch based on the FT5206 Touch Controller, now it also has support for the GSL1680 Touch Controller.

Offline Help Manual (Windows chm)

/media/uploads/WiredHome/ra8875.zip.bin (download, rename to .zip and unzip)

Revision:
25:9556a3a9b7cc
Parent:
24:8ca861acf12d
Child:
28:ed102fc442c4
--- a/RA8875.cpp	Fri Jan 17 02:10:18 2014 +0000
+++ b/RA8875.cpp	Fri Jan 17 03:16:51 2014 +0000
@@ -647,30 +647,36 @@
     return ret;
 }
 
-RetCode_t RA8875::ellipse(unsigned int x, unsigned int y, unsigned int R1, unsigned int R2, color_t color, fill_t fillit)
+RetCode_t RA8875::ellipse(unsigned int x, unsigned int y, unsigned int radius1, unsigned int radius2, color_t color, fill_t fillit)
 {
     foreground(color);
-    return ellipse(x,y,R1,R2,fillit);
+    return ellipse(x,y,radius1,radius2,fillit);
 }
 
-RetCode_t RA8875::ellipse(unsigned int x, unsigned int y, unsigned int R1, unsigned int R2, fill_t fillit)
+RetCode_t RA8875::fillellipse(unsigned int x, unsigned int y, unsigned int radius1, unsigned int radius2, color_t color, fill_t fillit)
+{
+    foreground(color);
+    return ellipse(x,y,radius1,radius2,fillit);
+}
+        
+RetCode_t RA8875::ellipse(unsigned int x, unsigned int y, unsigned int radius1, unsigned int radius2, fill_t fillit)
 {
     RetCode_t ret = noerror;
     
     PERFORMANCE_RESET;
-    if (R1 <= 0 || R2 <= 0) {
+    if (radius1 <= 0 || radius2 <= 0) {
         ;   // do nothing
-    } else if (R1 == 1 && R2 == 1) {
+    } else if (radius1 == 1 && radius2 == 1) {
         pixel(x, y);
     } else {
         WriteCommand(0xA5, x & 0xFF);
         WriteCommand(0xA6, x >> 8);
         WriteCommand(0xA7, y & 0xFF);
         WriteCommand(0xA8, y >> 8);
-        WriteCommand(0xA1, R1 & 0xFF);
-        WriteCommand(0xA2, R1 >> 8);
-        WriteCommand(0xA3, R2 & 0xFF);
-        WriteCommand(0xA4, R2 >> 8);
+        WriteCommand(0xA1, radius1 & 0xFF);
+        WriteCommand(0xA2, radius1 >> 8);
+        WriteCommand(0xA3, radius2 & 0xFF);
+        WriteCommand(0xA4, radius2 >> 8);
         
         unsigned char drawCmd = 0x00;   // Ellipse
         if (fillit == FILL)
@@ -903,42 +909,6 @@
 //
 //    Everything from here down is test code.
 
-void ValentineMessage(RA8875 & display, Serial & pc) 
-{
-    pc.printf("Write Sample text\r\n");
-    display.background(BrightRed);
-    display.foreground(White);
-    display.cls();
-    display.SetTextFontControl(NOFILL);
-    for (int i=0; i<20 ; i++) {
-        int sz = rand() & 1 + 1;
-        int rx = rand() % 360 + 0;
-        int ry = rand() % 250 + 0;
-        if (sz == 1)
-            rx /= 2;
-        display.SetTextCursor(rx, ry);
-        display.SetTextFontSize(sz, sz);
-        display.puts("David loves Louize");
-        wait_ms(50);
-    }
-    display.SetTextFontSize(2,2);
-    wait_ms(1000);
-    // Make a heart shape
-    display.ellipse(300, 120, 40, 50, FILL);
-    display.ellipse(370, 120, 40, 50, FILL);
-    display.triangle(265,145, 405,145, 335,230, FILL);
-    wait_ms(2500);
-    display.foreground(Blue);
-    display.puts(300,90, "Be My");
-    wait_ms(500);
-    display.puts(262,118, "Valentine");
-    // put a few things back the way they were
-    display.SetTextFontControl(FILL);
-    display.SetTextFontSize(1,1);
-    display.background(Black);
-}
-
-
 void TextCursorTest(RA8875 & display, Serial & pc)
 {
     const char * iCursor = "The I-Beam cursor should be visible for this text, but it should not be blinking while writing this text.\r\n";
@@ -948,10 +918,10 @@
     const char * p;
     
     pc.printf("Text Cursor Test\r\n");
-    display.Backlight_u8(255);
     display.background(Black);
     display.foreground(Blue);
     display.cls();
+    display.Backlight_u8(255);
     display.puts(0,0, "Text Cursor Test.");
     
     // visible, non-blinking
@@ -1277,8 +1247,7 @@
                   "R - Rectangles      O - rOund rectangles\r\n"
                   "T - Triangles                        \r\n"
                   "C - Circles         E - Ellipses\r\n"
-                  "V - Valentine       r - reset  \r\n"
-                  "A - Auto Test mode                  \r\n"
+                  "A - Auto Test mode  r - reset  \r\n"
                   "> ");
         if (automode == -1 || pc.readable()) {
             automode = -1;
@@ -1326,9 +1295,6 @@
             case 'E':
                 EllipseTest(lcd, pc);
                 break;
-            case 'V':
-                ValentineMessage(lcd, pc);
-                break;
             case 'r':
                 pc.printf("Resetting ...\r\n");
                 wait_ms(20);