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) {
if (mode){
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) {
if (adrs <= _GRAMHEIGH) {
#if defined(__MK20DX128__) || defined(__MK20DX256__)
SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE0));
writecommand_cont(CMD_VSSTADRS);
writedata16_last(adrs);
writedata16_last(adrs + __OFFSET);
endProc();
#else
writecommand(CMD_VSSTADRS);
writedata16(adrs);
writedata16(adrs + __OFFSET);
#endif
}
}
//corrected!
//corrected! v2
void TFT_ILI9163C::clearScreen(uint16_t color) {
int px;
#if defined(__MK20DX128__) || defined(__MK20DX256__)
//SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE0));
setAddr(0x00,0x00,_GRAMWIDTH,_GRAMHEIGH);//go home
//writecommand_cont(CMD_RAMWR);//this was missed!
SPI.beginTransaction(SPISettings(SPICLOCK, MSBFIRST, SPI_MODE0));
writecommand_cont(CMD_RAMWR);//this was missed!
_setAddrWindow(0x00,0x00,_GRAMWIDTH,_GRAMHEIGH);
for (px = 0;px < _GRAMSIZE; px++){
writedata16_cont(color);
}
_setAddrWindow(0x00,0x00,_GRAMWIDTH,_GRAMHEIGH);//go home
writecommand_last(CMD_NOP);
endProc();
#else
writecommand(CMD_RAMWR);
setAddr(0x00,0x00,_GRAMWIDTH,_GRAMHEIGH);//go home
//writecommand(CMD_RAMWR);
for (px = 0;px < _GRAMSIZE; px++){
writedata16(color);
}
#endif
}

View file

@ -77,6 +77,7 @@
0.6: Small fix, added SD example and subroutines
0.6b1: Fix clearscreen, missed a parameter.
0.6b2: Scroll completed. (thanks Masuda)
0.6b3: Clear Screen fix v2.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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),
setRotation(uint8_t r),
invertDisplay(boolean i);
void idleMode(boolean onOff);
void display(boolean onOff);
void sleepMode(boolean mode);
void defineScrollArea(uint16_t tfa, uint16_t bfa);

View file

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