Uses the same fonts as the SPI_TFT_ILI9341 Library (I have many, and a html/php font editor for that)
Diff: SPI_TFT_ILI9225.cpp
- 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) {