diff --git a/TFT_ILI9163C.cpp b/TFT_ILI9163C.cpp index 2d87729..c90fc1b 100644 --- a/TFT_ILI9163C.cpp +++ b/TFT_ILI9163C.cpp @@ -443,29 +443,25 @@ void TFT_ILI9163C::sleepMode(boolean mode) { } } -/* -void TFT_ILI9163C::defineScrollArea(uint16_t a,uint16_t c){ - //0,2 - uint16_t b; - if ((a+c) > _TFTWIDTH) return; - b = (_TFTWIDTH - (a+c)); +void TFT_ILI9163C::defineScrollArea(uint16_t tfa, uint16_t bfa){ + tfa += __OFFSET; + int16_t vsa = _GRAMHEIGH - tfa - bfa; + if (vsa >= 0) { + #if defined(__MK20DX128__) || defined(__MK20DX256__) SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE0)); - writecommand_cont(0x33); - if (rotation == 0 || rotation > 1){ - writedata16_cont(a); - writedata16_cont(b); - writedata16_last(c); - } else { - writedata16_cont(a + __OFFSET); - writedata16_cont(b + __OFFSET); - writedata16_last(c + __OFFSET); - } + writecommand_cont(CMD_VSCLLDEF); + writedata16_cont(tfa); + writedata16_cont(vsa); + writedata16_last(bfa); endProc(); - setAddr(0x00,0x00,_GRAMWIDTH-1,_GRAMHEIGH-1); - setRotation(0); - + #else + writecommand(CMD_VSCLLDEF); + writedata16(tfa); + writedata16(vsa); + writedata16(bfa); + #endif + } } -*/ void TFT_ILI9163C::scroll(uint16_t adrs) { #if defined(__MK20DX128__) || defined(__MK20DX256__) diff --git a/TFT_ILI9163C.h b/TFT_ILI9163C.h index a377886..45f2ff3 100644 --- a/TFT_ILI9163C.h +++ b/TFT_ILI9163C.h @@ -76,6 +76,7 @@ Fixed a nasty bug in fill screen! 0.6: Small fix, added SD example and subroutines 0.6b1: Fix clearscreen, missed a parameter. + 0.6b2: Scroll completed. (thanks Masuda) +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BugList of the current version: @@ -266,7 +267,7 @@ class TFT_ILI9163C : public Adafruit_GFX { invertDisplay(boolean i); void display(boolean onOff); void sleepMode(boolean mode); - //void defineScrollArea(uint16_t a,uint16_t c); + void defineScrollArea(uint16_t tfa, uint16_t bfa); void scroll(uint16_t adrs); void startPushData(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1); void pushData(uint16_t color); diff --git a/examples/easyScroll/easyScroll.ino b/examples/easyScroll/easyScroll.ino index 474b6f5..dc8be80 100644 --- a/examples/easyScroll/easyScroll.ino +++ b/examples/easyScroll/easyScroll.ino @@ -64,6 +64,8 @@ void setup() { tft.println("in the gobberwarts"); tft.println("with my blurglecruncheon,"); tft.println("see if I don't!"); + tft.defineScrollArea(23,50); + //try load again with this commented out! } @@ -93,4 +95,4 @@ void testFilledRects() { tft.fillRect(cx-i2, cy-i2, i, i, random(0x0000,0xFFFF)); tft.drawRect(cx-i2, cy-i2, i, i, random(0x0000,0xFFFF)); } -} +} \ No newline at end of file diff --git a/keywords.txt b/keywords.txt index 103b1d8..613cf18 100644 --- a/keywords.txt +++ b/keywords.txt @@ -14,6 +14,7 @@ display KEYWORD2 startPushData KEYWORD2 pushData KEYWORD2 endPushData KEYWORD2 +defineScrollArea KEYWORD2 writeScreen24 KEYWORD2