Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: ili9163lcd.cpp
- 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)