for Arduino TFT LCD Screen 160x128

Dependents:   TFTLCDSCREEN Pong_ILI9163C

Fork of TFT_ILI9163C by _ peu605

Revision:
10:1ebc27775d92
Parent:
8:8dea70cf3ae8
Child:
11:4dd4a2f7b7f6
--- a/TFT_ILI9163C_BASE.cpp	Wed Feb 04 10:58:53 2015 +0000
+++ b/TFT_ILI9163C_BASE.cpp	Mon Mar 02 11:38:50 2015 +0000
@@ -270,6 +270,7 @@
   
     colorSpace(_colorspaceData);
     setRotation(0);
+    defineScrollArea(0, 0); // top, bottom
     wait_ms(1);
 
     fillScreen(BLACK);
@@ -421,3 +422,44 @@
 void TFT_ILI9163C_BASE::invertDisplay(bool i) {
     writecommand(i ? CMD_DINVON : CMD_DINVOF);
 }
+
+void TFT_ILI9163C_BASE::display(bool onOff) {
+    if (onOff){
+        writecommand(CMD_DISPON);
+    } else {
+        writecommand(CMD_DISPOFF);
+    }
+}
+
+void TFT_ILI9163C_BASE::sleepMode(bool mode) {
+    if (mode){
+        if (sleep == 1) return;//already sleeping
+        sleep = 1;
+        writecommand(CMD_SLPIN);
+        wait_ms(5);//needed
+    } else {
+        if (sleep == 0) return; //Already awake
+        sleep = 0;
+        writecommand(CMD_SLPOUT);
+        wait_ms(120);//needed
+    }
+}
+
+
+void TFT_ILI9163C_BASE::defineScrollArea(uint16_t tfa, uint16_t bfa){
+    tfa += __OFFSET ;
+    int16_t vsa = _GRAMHEIGH - tfa - bfa;
+    if (vsa >= 0) {
+        writecommand(CMD_VSCLLDEF);
+        writedata16(tfa);
+        writedata16(vsa);
+        writedata16(bfa);
+    }
+}
+
+void TFT_ILI9163C_BASE::scroll(uint16_t ssa) {
+    if (ssa <= _TFTHEIGHT) {
+        writecommand(CMD_VSSTADRS);
+        writedata16(ssa + __OFFSET);
+    }
+}