system
7
void printChar(byte c, byte x, byte y) {
byte bitmask, *pf, bitstart = 128;
int cindex, iFont, count;
setXY(x, y, 5, 9);
iFont = (c - ' ') * 45 / 8;
bitstart = 128 >> (((c - ' ') * 45) % 8);
pf = &Font5x9Mono[iFont];
count = 0;
for (cindex=0; cindex<6; cindex++) {
for (bitmask=bitstart; bitmask>0; bitmask=bitmask>>1) {
if (count > 45) return;
if (*pf&bitmask)
setPixel(gr, gg, gb);
else
setPixel(0, 0, 0);
count++;
}
bitstart = 128;
pf++;
}
}
void setColor(byte r, byte g, byte b) {
gr = r;
gg = g;
gb = b;
}
void lcdInit() {
digitalWrite(CS, 0);
digitalWrite(SDA2, 0);
digitalWrite(CLK, 1);
digitalWrite(RESET, 1);
digitalWrite(RESET, 0);
digitalWrite(RESET, 1);
digitalWrite(CLK, 1);
digitalWrite(SDA2, 1);
digitalWrite(CLK, 1);
delay(10);
//Software Reset
sendCMD(0x01);
// Write Contrast
sendCMD(0x25);
sendData(64);
//Sleep Out and booster on
sendCMD(0x11);
// Booster on
//sendCMD(0x03);
delay(10);
// Display Inversion off
sendCMD(0x20);
// Idle Mode off
sendCMD(0x38);
// Display on
sendCMD(0x29);
// Normal Mode on
sendCMD(0x13);
// Memory Data Access control
sendCMD(0x36);
sendData(0x60);
// sendData(0x00);
//sendData(8|128);
sendCMD(0x3A);
sendData(5); //16-Bit per Pixel
// Color set
// sendCMD(0x2D);
// sendDATA(0x00);
// X_Address or Column Address Area
sendCMD(0x2A);
sendData(0);
sendData(127);
// Frame Frequency Select
sendCMD(0xB4);
sendData(0x03);
sendData(0x08);
sendData(0x0b);
sendData(0x0e);
// Display Control
sendCMD(0xBA);
sendData(0x07);
sendData(0x0D);
//Page Adress Set
sendCMD(0x2B);
sendData(0);
sendData(127);
}