Uses the same fonts as the SPI_TFT_ILI9341 Library (I have many, and a html/php font editor for that)

Revision:
9:680f6c9940b3
Parent:
8:a569bc50b552
Child:
10:a640680b5309
--- a/SPI_TFT_ILI9225.cpp	Wed Nov 23 11:31:45 2016 +0000
+++ b/SPI_TFT_ILI9225.cpp	Wed Nov 23 11:57:11 2016 +0000
@@ -262,34 +262,34 @@
     // 0x1018 AM = 1: Vertical,   I/D[1:0] = 01: Horizontal: increment, Vertical: decrement - ILI9225_LANDSCAPE_T
     // 0x1028 AM = 1: Vertical,   I/D[1:0] = 10: Horizontal: decrement, Vertical: increment - ILI9225_LANDSCAPE_B
     // 0x1038 AM = 1: Vertical,   I/D[1:0] = 11: Horizontal: increment, Vertical: increment
-    uint16_t entryMode;
+
     switch (_orientation) {
         case ILI9225_PORTRAIT_L:
             // 0x1030 AM = 0: Horizontal, I/D[1:0] = 11: Horizontal: increment, Vertical: increment
-            entryMode = 0x1030;
+            _entryMode = 0x1030;
             _maxX = ILI9225_LCD_WIDTH;
             _maxY = ILI9225_LCD_HEIGHT;
             break;
         case ILI9225_LANDSCAPE_B:
             // 0x1028 AM = 1: Vertical,   I/D[1:0] = 10: Horizontal: decrement, Vertical: increment
-            entryMode = 0x1028;
+            _entryMode = 0x1028;
             _maxX = ILI9225_LCD_HEIGHT;
             _maxY = ILI9225_LCD_WIDTH;
             break;
         case ILI9225_PORTRAIT_R:
             // 0x1000 AM = 0: Horizontal, I/D[1:0] = 00: Horizontal: decrement, Vertical: decrement
-            entryMode = 0x1000;
+            _entryMode = 0x1000;
             _maxX = ILI9225_LCD_WIDTH;
             _maxY = ILI9225_LCD_HEIGHT;
             break;
         case ILI9225_LANDSCAPE_T:
             // 0x1018 AM = 1: Vertical,   I/D[1:0] = 01: Horizontal: increment, Vertical: decrement
-            entryMode = 0x1018;
+            _entryMode = 0x1018;
             _maxX = ILI9225_LCD_HEIGHT;
             _maxY = ILI9225_LCD_WIDTH;
             break;
     }
-    _writeRegister(ILI9225_ENTRY_MODE, entryMode); // set GRAM write direction and BGR=1.
+    _writeRegister(ILI9225_ENTRY_MODE, _entryMode); // set GRAM write direction and BGR=1.
 }
 
 uint8_t TFT_22_ILI9225::getOrientation() {
@@ -349,16 +349,38 @@
     }
 }
 
-void TFT_22_ILI9225::hline(uint16_t x0, uint16_t x1, uint16_t y, uint16_t color) {
-    for (uint16_t x = x0; x < x1; x++) {
-        pixel(x, y, color);
+void TFT_22_ILI9225::hline(uint16_t x1, uint16_t x2, uint16_t y, uint16_t color)
+{
+    _writeRegister(ILI9225_ENTRY_MODE, 0x1028); // set GRAM write direction and BGR=1.
+    _setWindow(x1, y, x2 + 1, y + 1);
+    if (x2 < x1) {
+        _swap(x1, x2);
+    }
+    _rs = 1;
+    _cs = 0;
+    for (uint16_t x = x1; x <= x2; x++) {
+        spi.write(color >> 8);
+        spi.write(color & 0xff);
     } 
+    _cs = 1;
+    _writeRegister(ILI9225_ENTRY_MODE, _entryMode); // set GRAM write direction and BGR=1.
 }
 
-void TFT_22_ILI9225::vline(uint16_t x, uint16_t y0, uint16_t y1, uint16_t color) {
-    for (uint16_t y = y0; y < y1; y++) {
-        pixel(x, y, color);
+void TFT_22_ILI9225::vline(uint16_t x, uint16_t y1, uint16_t y2, uint16_t color)
+{
+    _writeRegister(ILI9225_ENTRY_MODE, 0x1010); // set GRAM write direction and BGR=1.
+    _setWindow(x, y1, x + 1, y2 + 1);
+    if (y2 < y1) {
+        _swap(y1, y2);
+    }
+    _rs = 1;
+    _cs = 0;
+    for (uint16_t y = y1; y <= y2; y++) {
+        spi.write(color >> 8);
+        spi.write(color & 0xff);
     } 
+    _cs = 1;
+    _writeRegister(ILI9225_ENTRY_MODE, _entryMode); // set GRAM write direction and BGR=1.
 }
 
 void TFT_22_ILI9225::rect(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color) {