fixed clearScreen V2, added idle mode

This commit is contained in:
sumotoy 2015-03-03 22:40:01 +01:00
parent 3a707debdf
commit 8ea48b902e
3 changed files with 32 additions and 10 deletions

View file

@ -417,6 +417,26 @@ void TFT_ILI9163C::display(boolean onOff) {
} }
} }
void TFT_ILI9163C::idleMode(boolean onOff) {
if (onOff){
#if defined(__MK20DX128__) || defined(__MK20DX256__)
SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE0));
writecommand_last(CMD_IDLEON);
endProc();
#else
writecommand(CMD_IDLEON);
#endif
} else {
#if defined(__MK20DX128__) || defined(__MK20DX256__)
SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE0));
writecommand_last(CMD_IDLEOF);
endProc();
#else
writecommand(CMD_IDLEOF);
#endif
}
}
void TFT_ILI9163C::sleepMode(boolean mode) { void TFT_ILI9163C::sleepMode(boolean mode) {
if (mode){ if (mode){
if (sleep == 1) return;//already sleeping if (sleep == 1) return;//already sleeping
@ -464,38 +484,38 @@ void TFT_ILI9163C::defineScrollArea(uint16_t tfa, uint16_t bfa){
} }
void TFT_ILI9163C::scroll(uint16_t adrs) { void TFT_ILI9163C::scroll(uint16_t adrs) {
if (adrs <= _GRAMHEIGH) {
#if defined(__MK20DX128__) || defined(__MK20DX256__) #if defined(__MK20DX128__) || defined(__MK20DX256__)
SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE0)); SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE0));
writecommand_cont(CMD_VSSTADRS); writecommand_cont(CMD_VSSTADRS);
writedata16_last(adrs); writedata16_last(adrs + __OFFSET);
endProc(); endProc();
#else #else
writecommand(CMD_VSSTADRS); writecommand(CMD_VSSTADRS);
writedata16(adrs); writedata16(adrs + __OFFSET);
#endif #endif
} }
}
//corrected! //corrected! v2
void TFT_ILI9163C::clearScreen(uint16_t color) { void TFT_ILI9163C::clearScreen(uint16_t color) {
int px; int px;
#if defined(__MK20DX128__) || defined(__MK20DX256__) #if defined(__MK20DX128__) || defined(__MK20DX256__)
//SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE0)); SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE0));
setAddr(0x00,0x00,_GRAMWIDTH,_GRAMHEIGH);//go home writecommand_cont(CMD_RAMWR);//this was missed!
//writecommand_cont(CMD_RAMWR);//this was missed! _setAddrWindow(0x00,0x00,_GRAMWIDTH,_GRAMHEIGH);
for (px = 0;px < _GRAMSIZE; px++){ for (px = 0;px < _GRAMSIZE; px++){
writedata16_cont(color); writedata16_cont(color);
} }
_setAddrWindow(0x00,0x00,_GRAMWIDTH,_GRAMHEIGH);//go home
writecommand_last(CMD_NOP); writecommand_last(CMD_NOP);
endProc(); endProc();
#else #else
writecommand(CMD_RAMWR);
setAddr(0x00,0x00,_GRAMWIDTH,_GRAMHEIGH);//go home setAddr(0x00,0x00,_GRAMWIDTH,_GRAMHEIGH);//go home
//writecommand(CMD_RAMWR);
for (px = 0;px < _GRAMSIZE; px++){ for (px = 0;px < _GRAMSIZE; px++){
writedata16(color); writedata16(color);
} }
#endif #endif
} }

View file

@ -77,6 +77,7 @@
0.6: Small fix, added SD example and subroutines 0.6: Small fix, added SD example and subroutines
0.6b1: Fix clearscreen, missed a parameter. 0.6b1: Fix clearscreen, missed a parameter.
0.6b2: Scroll completed. (thanks Masuda) 0.6b2: Scroll completed. (thanks Masuda)
0.6b3: Clear Screen fix v2.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
BugList of the current version: BugList of the current version:
@ -265,6 +266,7 @@ class TFT_ILI9163C : public Adafruit_GFX {
fillRect(int16_t x, int16_t y, int16_t w, int16_t h,uint16_t color), fillRect(int16_t x, int16_t y, int16_t w, int16_t h,uint16_t color),
setRotation(uint8_t r), setRotation(uint8_t r),
invertDisplay(boolean i); invertDisplay(boolean i);
void idleMode(boolean onOff);
void display(boolean onOff); void display(boolean onOff);
void sleepMode(boolean mode); void sleepMode(boolean mode);
void defineScrollArea(uint16_t tfa, uint16_t bfa); void defineScrollArea(uint16_t tfa, uint16_t bfa);

View file

@ -16,5 +16,5 @@ pushData KEYWORD2
endPushData KEYWORD2 endPushData KEYWORD2
defineScrollArea KEYWORD2 defineScrollArea KEYWORD2
writeScreen24 KEYWORD2 writeScreen24 KEYWORD2
idleMode KEYWORD2