Gitakichi Tokyo / Mbed 2 deprecated ATM0177B3A

Dependencies:   mbed

Revision:
5:570ba49da81c
Parent:
4:016fae067de1
Child:
6:7abe5999dc1c
--- a/ili9163lcd.cpp	Sat Jan 02 01:49:33 2021 +0000
+++ b/ili9163lcd.cpp	Sat Jan 02 06:51:11 2021 +0000
@@ -215,6 +215,8 @@
 void lcdClearDisplay(uint16_t colour)
 {
     uint16_t pixel;
+    uint8_t dataByte1, dataByte2;
+    uint8_t i;
   
     // Set the column address to 0-127
     lcdWriteCommand(SET_COLUMN_ADDRESS);
@@ -234,16 +236,36 @@
     // Plot the pixels
     lcdWriteCommand(WRITE_MEMORY_START);
     //for(pixel = 0; pixel < 16385; pixel++) lcdWriteData(colour >> 8, colour);
-    for(pixel = 0; pixel < 20480; pixel++) lcdWriteData(colour >> 8, colour);
-    //128x128=16,384
-    //128x160=20,480
+    //for(pixel = 0; pixel < 20480; pixel++) lcdWriteData(colour >> 8, colour);
+    
+    CS_ = 0;
+    A0_ = 1;
+    for(pixel = 0; pixel < 20480; pixel++){
+        dataByte1 = colour >> 8;
+        dataByte2 = colour;
+        for(i=0;i<8;i++){
+            if(dataByte1 & 128)SDA_= 1; else SDA_ = 0;
+            SCK_ = 0;//TBD
+            dataByte1 <<= 1;
+            SCK_ = 1;//TBD
+        }
+        for(i=0;i<8;i++){
+            if(dataByte2 & 128)SDA_= 1; else SDA_ = 0;
+            SCK_ = 0;//TBD
+            dataByte2 <<= 1;
+            SCK_ = 1;//TBD
+        }
+    }
+    wait_us(1);
+    CS_ = 1;
 }
 
 void grade(void)
 {
     uint16_t line_buf[128];
-    uint16_t pixel;
-    uint16_t colour;
+    uint16_t pixel,page;
+    uint8_t dataByte1, dataByte2;
+    uint8_t i;
   
     // Set the column address to 0-127
     lcdWriteCommand(SET_COLUMN_ADDRESS);
@@ -261,19 +283,46 @@
     lcdWriteParameter(PAGE_MAX);
      
      for(pixel = 0; pixel < 128; pixel++){
-        if(pixel < 32)          colour = decodeRgbValue((pixel&0b11111)>>1, 0, 0);
-        else if(pixel < 64)     colour = decodeRgbValue(0, (pixel&0b11111)>>1, 0);
-        else if(pixel < 96)     colour = decodeRgbValue(0, 0, (pixel&0b11111)>>1);
-        else colour = 0;
-        line_buf[pixel]=colour;
+        if(pixel < 32)          line_buf[pixel] = decodeRgbValue((pixel&0b11111)>>1, 0, 0);
+        else if(pixel < 64)     line_buf[pixel] = decodeRgbValue(0, (pixel&0b11111)>>1, 0);
+        else if(pixel < 96)     line_buf[pixel] = decodeRgbValue(0, 0, (pixel&0b11111)>>1);
+        //if(pixel < 32)          line_buf[pixel] = decodeRgbValue(31, 0, 0);
+        //else if(pixel < 64)     line_buf[pixel] = decodeRgbValue(0, 31, 0);
+        //else if(pixel < 96)     line_buf[pixel] = decodeRgbValue(0, 0, 31);
+        else                    line_buf[pixel] = decodeRgbValue(0, 0, 0);
     }
     // Plot the pixels
     lcdWriteCommand(WRITE_MEMORY_START);
-    for(uint16_t page = 0;page < 160;page++){
+    //for(uint16_t page = 0;page < 160;page++){
+    //    for(pixel = 0; pixel < 128; pixel++){
+    //        lcdWriteData(line_buf[pixel] >> 8, line_buf[pixel]);
+    //    }
+    //}
+    
+    
+    CS_ = 0;
+    A0_ = 1;
+    for(page = 0;page < 160;page++){
         for(pixel = 0; pixel < 128; pixel++){
-            lcdWriteData(line_buf[pixel] >> 8, line_buf[pixel]);
+            dataByte1 = line_buf[pixel] >> 8;
+            dataByte2 = line_buf[pixel];
+            for(i=0;i<8;i++){
+                if(dataByte1 & 128)SDA_= 1; else SDA_ = 0;
+                SCK_ = 0;//TBD
+                dataByte1 <<= 1;
+                SCK_ = 1;//TBD
+            }
+            for(i=0;i<8;i++){
+                if(dataByte2 & 128)SDA_= 1; else SDA_ = 0;
+                SCK_ = 0;//TBD
+                dataByte2 <<= 1;
+                SCK_ = 1;//TBD
+            }
         }
     }
+    wait_us(1);
+    CS_ = 1;
+    
 }
 
 void colorbar(void)