Add new scene controller with touch display example.

Upgraded RF24 to latest version which supports SoftSPI. 
Added DigitalIO and UTFT libraries to support the new example.
Fix problem reported in RelayWithButtonActuator example.
This commit is contained in:
Henrik Ekblad
2014-10-17 00:01:55 +02:00
parent 27885fad9b
commit 2fd948fc66
276 changed files with 28573 additions and 4061 deletions
+10
View File
@@ -0,0 +1,10 @@
case CPLD:
if (orient==LANDSCAPE)
orient = PORTRAIT;
else
orient = LANDSCAPE;
LCD_Write_COM(0x0F);
LCD_Write_COM_DATA(0x01,0x0010);
LCD_Write_COM(0x0F);
break;
+7
View File
@@ -0,0 +1,7 @@
case CPLD:
LCD_Write_COM_DATA(0x02, y1);
LCD_Write_COM_DATA(0x03, x1);
LCD_Write_COM_DATA(0x06, y2);
LCD_Write_COM_DATA(0x07, x2);
LCD_Write_COM(0x0F);
break;
@@ -0,0 +1,80 @@
case HX8340B_8:
LCD_Write_COM_DATA(0x26,0x0084); //PT=10,GON=0, DTE=0, D=0100
delay(40);
LCD_Write_COM_DATA(0x26,0x00B8); //PT=10,GON=1, DTE=1, D=1000
delay(40);
LCD_Write_COM_DATA(0x26,0x00BC); //PT=10,GON=1, DTE=1, D=1100
delay(20);
// LCD_Write_COM_DATA(0x0001,0x0000); // PTL='1' Enter Partail mode
//Driving ability Setting
LCD_Write_COM_DATA(0x60,0x0000);
LCD_Write_COM_DATA(0x61,0x0006);
LCD_Write_COM_DATA(0x62,0x0000);
LCD_Write_COM_DATA(0x63,0x00C8);
delay(20);
//Gamma Setting
LCD_Write_COM_DATA(0x73,0x0070);
LCD_Write_COM_DATA(0x40,0x0000);
LCD_Write_COM_DATA(0x41,0x0040);
LCD_Write_COM_DATA(0x42,0x0045);
LCD_Write_COM_DATA(0x43,0x0001);
LCD_Write_COM_DATA(0x44,0x0060);
LCD_Write_COM_DATA(0x45,0x0005);
LCD_Write_COM_DATA(0x46,0x000C);
LCD_Write_COM_DATA(0x47,0x00D1);
LCD_Write_COM_DATA(0x48,0x0005);
LCD_Write_COM_DATA(0x50,0x0075);
LCD_Write_COM_DATA(0x51,0x0001);
LCD_Write_COM_DATA(0x52,0x0067);
LCD_Write_COM_DATA(0x53,0x0014);
LCD_Write_COM_DATA(0x54,0x00F2);
LCD_Write_COM_DATA(0x55,0x0007);
LCD_Write_COM_DATA(0x56,0x0003);
LCD_Write_COM_DATA(0x57,0x0049);
delay(20);
//Power Setting
LCD_Write_COM_DATA(0x1F,0x0003); //VRH=4.65V VREG1?GAMMA? 00~1E 080421
LCD_Write_COM_DATA(0x20,0x0000); //BT (VGH~15V,VGL~-12V,DDVDH~5V)
LCD_Write_COM_DATA(0x24,0x0024); //VCOMH(VCOM High voltage3.2V) 0024/12 080421 11~40
LCD_Write_COM_DATA(0x25,0x0034); //VCOML(VCOM Low voltage -1.2V) 0034/4A 080421 29~3F
//****VCOM offset**///
LCD_Write_COM_DATA(0x23,0x002F); //VMF(no offset)
delay(20);
//##################################################################
// Power Supply Setting
LCD_Write_COM_DATA(0x18,0x0044); //I/P_RADJ,N/P_RADJ Noraml mode 60Hz
LCD_Write_COM_DATA(0x21,0x0001); //OSC_EN='1' start osc
LCD_Write_COM_DATA(0x01,0x0000); //SLP='0' out sleep
LCD_Write_COM_DATA(0x1C,0x0003); //AP=011
LCD_Write_COM_DATA(0x19,0x0006); // VOMG=1,PON=1, DK=0,
delay(20);
//##################################################################
// Display ON Setting
LCD_Write_COM_DATA(0x26,0x0084); //PT=10,GON=0, DTE=0, D=0100
delay(40);
LCD_Write_COM_DATA(0x26,0x00B8); //PT=10,GON=1, DTE=1, D=1000
delay(40);
LCD_Write_COM_DATA(0x26,0x00BC); //PT=10,GON=1, DTE=1, D=1100
delay(20);
//SET GRAM AREA
LCD_Write_COM_DATA(0x02,0x0000);
LCD_Write_COM_DATA(0x03,0x0000);
LCD_Write_COM_DATA(0x04,0x0000);
LCD_Write_COM_DATA(0x05,0x00AF);
LCD_Write_COM_DATA(0x06,0x0000);
LCD_Write_COM_DATA(0x07,0x0000);
LCD_Write_COM_DATA(0x08,0x0000);
LCD_Write_COM_DATA(0x09,0x00DB);
delay(20);
LCD_Write_COM_DATA(0x16,0x0008); //MV MX MY ML SET 0028
LCD_Write_COM_DATA(0x17,0x0005);//COLMOD Control Register (R17h)
LCD_Write_COM(0x21);
LCD_Write_COM(0x22);
break;
@@ -0,0 +1,11 @@
case HX8340B_8:
LCD_Write_COM_DATA(0x02,0x0000);
LCD_Write_COM_DATA(0x03,x1);
LCD_Write_COM_DATA(0x04,0x0000);
LCD_Write_COM_DATA(0x05,x2);
LCD_Write_COM_DATA(0x06,0x0000);
LCD_Write_COM_DATA(0x07,y1);
LCD_Write_COM_DATA(0x08,0x0000);
LCD_Write_COM_DATA(0x09,y2);
LCD_Write_COM(0x22);
break;
@@ -0,0 +1,71 @@
case HX8340B_S:
LCD_Write_COM(0xC1);
LCD_Write_DATA(0xFF);
LCD_Write_DATA(0x83);
LCD_Write_DATA(0x40);
LCD_Write_COM(0x11);
delay(100);
LCD_Write_COM(0xCA);
LCD_Write_DATA(0x70);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0xD9);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x11);
LCD_Write_COM(0xC9);
LCD_Write_DATA(0x90);
LCD_Write_DATA(0x49);
LCD_Write_DATA(0x10);
LCD_Write_DATA(0x28);
LCD_Write_DATA(0x28);
LCD_Write_DATA(0x10);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x06);
delay(20);
LCD_Write_COM(0xC2);
LCD_Write_DATA(0x60);
LCD_Write_DATA(0x71);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x0E);
LCD_Write_DATA(0x05);
LCD_Write_DATA(0x02);
LCD_Write_DATA(0x09);
LCD_Write_DATA(0x31);
LCD_Write_DATA(0x0A);
LCD_Write_COM(0xc3);
LCD_Write_DATA(0x67);
LCD_Write_DATA(0x30);
LCD_Write_DATA(0x61);
LCD_Write_DATA(0x17);
LCD_Write_DATA(0x48);
LCD_Write_DATA(0x07);
LCD_Write_DATA(0x05);
LCD_Write_DATA(0x33);
delay(10);
LCD_Write_COM(0xB5);
LCD_Write_DATA(0x35);
LCD_Write_DATA(0x20);
LCD_Write_DATA(0x45);
LCD_Write_COM(0xB4);
LCD_Write_DATA(0x33);
LCD_Write_DATA(0x25);
LCD_Write_DATA(0x4c);
delay(10);
LCD_Write_COM(0x3a);
LCD_Write_DATA(0x05);
LCD_Write_COM(0x29);
delay(10);
LCD_Write_COM(0x2a);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0xaf);
LCD_Write_COM(0x2b);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0xdb);
LCD_Write_COM(0x2c);
break;
@@ -0,0 +1,13 @@
case HX8340B_S:
LCD_Write_COM(0x2a);
LCD_Write_DATA(x1>>8);
LCD_Write_DATA(x1);
LCD_Write_DATA(x2>>8);
LCD_Write_DATA(x2);
LCD_Write_COM(0x2b);
LCD_Write_DATA(y1>>8);
LCD_Write_DATA(y1);
LCD_Write_DATA(y2>>8);
LCD_Write_DATA(y2);
LCD_Write_COM(0x2c);
break;
@@ -0,0 +1,88 @@
case HX8347A:
LCD_Write_COM_DATA(0x46,0x00A4);
LCD_Write_COM_DATA(0x47,0x0053);
LCD_Write_COM_DATA(0x48,0x0000);
LCD_Write_COM_DATA(0x49,0x0044);
LCD_Write_COM_DATA(0x4a,0x0004);
LCD_Write_COM_DATA(0x4b,0x0067);
LCD_Write_COM_DATA(0x4c,0x0033);
LCD_Write_COM_DATA(0x4d,0x0077);
LCD_Write_COM_DATA(0x4e,0x0012);
LCD_Write_COM_DATA(0x4f,0x004C);
LCD_Write_COM_DATA(0x50,0x0046);
LCD_Write_COM_DATA(0x51,0x0044);
//240x320 window setting
LCD_Write_COM_DATA(0x02,0x0000); // Column address start2
LCD_Write_COM_DATA(0x03,0x0000); // Column address start1
LCD_Write_COM_DATA(0x04,0x0000); // Column address end2
LCD_Write_COM_DATA(0x05,0x00ef); // Column address end1
LCD_Write_COM_DATA(0x06,0x0000); // Row address start2
LCD_Write_COM_DATA(0x07,0x0000); // Row address start1
LCD_Write_COM_DATA(0x08,0x0001); // Row address end2
LCD_Write_COM_DATA(0x09,0x003f); // Row address end1
// Display Setting
LCD_Write_COM_DATA(0x01,0x0006); // IDMON=0, INVON=1, NORON=1, PTLON=0
LCD_Write_COM_DATA(0x16,0x00C8); // MY=0, MX=0, MV=0, ML=1, BGR=0, TEON=0 0048
LCD_Write_COM_DATA(0x23,0x0095); // N_DC=1001 0101
LCD_Write_COM_DATA(0x24,0x0095); // PI_DC=1001 0101
LCD_Write_COM_DATA(0x25,0x00FF); // I_DC=1111 1111
LCD_Write_COM_DATA(0x27,0x0002); // N_BP=0000 0010
LCD_Write_COM_DATA(0x28,0x0002); // N_FP=0000 0010
LCD_Write_COM_DATA(0x29,0x0002); // PI_BP=0000 0010
LCD_Write_COM_DATA(0x2a,0x0002); // PI_FP=0000 0010
LCD_Write_COM_DATA(0x2C,0x0002); // I_BP=0000 0010
LCD_Write_COM_DATA(0x2d,0x0002); // I_FP=0000 0010
LCD_Write_COM_DATA(0x3a,0x0001); // N_RTN=0000, N_NW=001 0001
LCD_Write_COM_DATA(0x3b,0x0000); // P_RTN=0000, P_NW=001
LCD_Write_COM_DATA(0x3c,0x00f0); // I_RTN=1111, I_NW=000
LCD_Write_COM_DATA(0x3d,0x0000); // DIV=00
delay(1);
LCD_Write_COM_DATA(0x35,0x0038); // EQS=38h
LCD_Write_COM_DATA(0x36,0x0078); // EQP=78h
LCD_Write_COM_DATA(0x3E,0x0038); // SON=38h
LCD_Write_COM_DATA(0x40,0x000F); // GDON=0Fh
LCD_Write_COM_DATA(0x41,0x00F0); // GDOFF
// Power Supply Setting
LCD_Write_COM_DATA(0x19,0x0049); // CADJ=0100, CUADJ=100, OSD_EN=1 ,60Hz
LCD_Write_COM_DATA(0x93,0x000F); // RADJ=1111, 100%
delay(1);
LCD_Write_COM_DATA(0x20,0x0040); // BT=0100
LCD_Write_COM_DATA(0x1D,0x0007); // VC1=111 0007
LCD_Write_COM_DATA(0x1E,0x0000); // VC3=000
LCD_Write_COM_DATA(0x1F,0x0004); // VRH=0011
//VCOM SETTING
LCD_Write_COM_DATA(0x44,0x004D); // VCM=101 0000 4D
LCD_Write_COM_DATA(0x45,0x000E); // VDV=1 0001 0011
delay(1);
LCD_Write_COM_DATA(0x1C,0x0004); // AP=100
delay(2);
LCD_Write_COM_DATA(0x1B,0x0018); // GASENB=0, PON=0, DK=1, XDK=0, VLCD_TRI=0, STB=0
delay(1);
LCD_Write_COM_DATA(0x1B,0x0010); // GASENB=0, PON=1, DK=0, XDK=0, VLCD_TRI=0, STB=0
delay(1);
LCD_Write_COM_DATA(0x43,0x0080); //set VCOMG=1
delay(2);
// Display ON Setting
LCD_Write_COM_DATA(0x90,0x007F); // SAP=0111 1111
LCD_Write_COM_DATA(0x26,0x0004); //GON=0, DTE=0, D=01
delay(1);
LCD_Write_COM_DATA(0x26,0x0024); //GON=1, DTE=0, D=01
LCD_Write_COM_DATA(0x26,0x002C); //GON=1, DTE=0, D=11
delay(1);
LCD_Write_COM_DATA(0x26,0x003C); //GON=1, DTE=1, D=11
// INTERNAL REGISTER SETTING
LCD_Write_COM_DATA(0x57,0x0002); // TEST_Mode=1: into TEST mode
LCD_Write_COM_DATA(0x95,0x0001); // SET DISPLAY CLOCK AND PUMPING CLOCK TO SYNCHRONIZE
LCD_Write_COM_DATA(0x57,0x0000); // TEST_Mode=0: exit TEST mode
//LCD_Write_COM_DATA(0x21,0x0000);
LCD_Write_COM(0x22);
break;
@@ -0,0 +1,11 @@
case HX8347A:
LCD_Write_COM_DATA(0x02,x1>>8);
LCD_Write_COM_DATA(0x03,x1);
LCD_Write_COM_DATA(0x04,x2>>8);
LCD_Write_COM_DATA(0x05,x2);
LCD_Write_COM_DATA(0x06,y1>>8);
LCD_Write_COM_DATA(0x07,y1);
LCD_Write_COM_DATA(0x08,y2>>8);
LCD_Write_COM_DATA(0x09,y2);
LCD_Write_COM(0x22);
break;
@@ -0,0 +1,131 @@
case HX8352A:
LCD_Write_COM(0x83);
LCD_Write_DATA(0x02); //TESTM=1
LCD_Write_COM(0x85);
LCD_Write_DATA(0x03); //VDC_SEL=011
LCD_Write_COM(0x8B);
LCD_Write_DATA(0x01);
LCD_Write_COM(0x8C);
LCD_Write_DATA(0x93); //STBA[7]=1,STBA[5:4]=01,STBA[1:0]=11
LCD_Write_COM(0x91);
LCD_Write_DATA(0x01); //DCDC_SYNC=1
LCD_Write_COM(0x83);
LCD_Write_DATA(0x00); //TESTM=0
//Gamma Setting
LCD_Write_COM(0x3E);
LCD_Write_DATA(0xB0);
LCD_Write_COM(0x3F);
LCD_Write_DATA(0x03);
LCD_Write_COM(0x40);
LCD_Write_DATA(0x10);
LCD_Write_COM(0x41);
LCD_Write_DATA(0x56);
LCD_Write_COM(0x42);
LCD_Write_DATA(0x13);
LCD_Write_COM(0x43);
LCD_Write_DATA(0x46);
LCD_Write_COM(0x44);
LCD_Write_DATA(0x23);
LCD_Write_COM(0x45);
LCD_Write_DATA(0x76);
LCD_Write_COM(0x46);
LCD_Write_DATA(0x00);
LCD_Write_COM(0x47);
LCD_Write_DATA(0x5E);
LCD_Write_COM(0x48);
LCD_Write_DATA(0x4F);
LCD_Write_COM(0x49);
LCD_Write_DATA(0x40);
//**********Power On sequence************
LCD_Write_COM(0x17);
LCD_Write_DATA(0x91);
LCD_Write_COM(0x2B);
LCD_Write_DATA(0xF9);
delay(10);
LCD_Write_COM(0x1B);
LCD_Write_DATA(0x14);
LCD_Write_COM(0x1A);
LCD_Write_DATA(0x11);
LCD_Write_COM(0x1C);
LCD_Write_DATA(0x06);
LCD_Write_COM(0x1F);
LCD_Write_DATA(0x42);
delay(20);
LCD_Write_COM(0x19);
LCD_Write_DATA(0x0A);
LCD_Write_COM(0x19);
LCD_Write_DATA(0x1A);
delay(40);
LCD_Write_COM(0x19);
LCD_Write_DATA(0x12);
delay(40);
LCD_Write_COM(0x1E);
LCD_Write_DATA(0x27);
delay(100);
//**********DISPLAY ON SETTING***********
LCD_Write_COM(0x24);
LCD_Write_DATA(0x60);
LCD_Write_COM(0x3D);
LCD_Write_DATA(0x40);
LCD_Write_COM(0x34);
LCD_Write_DATA(0x38);
LCD_Write_COM(0x35);
LCD_Write_DATA(0x38);
LCD_Write_COM(0x24);
LCD_Write_DATA(0x38);
delay(40);
LCD_Write_COM(0x24);
LCD_Write_DATA(0x3C);
LCD_Write_COM(0x16);
LCD_Write_DATA(0x1C);
LCD_Write_COM(0x01);
LCD_Write_DATA(0x06);
LCD_Write_COM(0x55);
LCD_Write_DATA(0x00);
LCD_Write_COM(0x02);
LCD_Write_DATA(0x00);
LCD_Write_COM(0x03);
LCD_Write_DATA(0x00);
LCD_Write_COM(0x04);
LCD_Write_DATA(0x00);
LCD_Write_COM(0x05);
LCD_Write_DATA(0xef);
LCD_Write_COM(0x06);
LCD_Write_DATA(0x00);
LCD_Write_COM(0x07);
LCD_Write_DATA(0x00);
LCD_Write_COM(0x08);
LCD_Write_DATA(0x01);
LCD_Write_COM(0x09);
LCD_Write_DATA(0x8f);
LCD_Write_COM(0x22);
break;
@@ -0,0 +1,11 @@
case HX8352A:
LCD_Write_COM_DATA(0x02,x1>>8);
LCD_Write_COM_DATA(0x03,x1);
LCD_Write_COM_DATA(0x04,x2>>8);
LCD_Write_COM_DATA(0x05,x2);
LCD_Write_COM_DATA(0x06,y1>>8);
LCD_Write_COM_DATA(0x07,y1);
LCD_Write_COM_DATA(0x08,y2>>8);
LCD_Write_COM_DATA(0x09,y2);
LCD_Write_COM(0x22);
break;
@@ -0,0 +1,69 @@
case HX8353C:
LCD_Write_COM(0xB9);//SETEXTC
LCD_Write_DATA(0xFF);
LCD_Write_DATA(0x83);
LCD_Write_DATA(0x53);
LCD_Write_COM(0xB0);//RADJ
LCD_Write_DATA(0x3C);
LCD_Write_DATA(0x01);
LCD_Write_COM(0xB6);//VCOM
LCD_Write_DATA(0x94);
LCD_Write_DATA(0x6C);
LCD_Write_DATA(0x50);
LCD_Write_COM(0xB1);//PWR
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x1B);
LCD_Write_DATA(0x03);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x08);
LCD_Write_DATA(0x77);
LCD_Write_DATA(0x89);
LCD_Write_COM(0xE0); //Gamma setting for tpo Panel
LCD_Write_DATA(0x50);
LCD_Write_DATA(0x77);
LCD_Write_DATA(0x40);
LCD_Write_DATA(0x08);
LCD_Write_DATA(0xBF);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x03);
LCD_Write_DATA(0x0F);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x73);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x72);
LCD_Write_DATA(0x03);
LCD_Write_DATA(0xB0);
LCD_Write_DATA(0x0F);
LCD_Write_DATA(0x08);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x0F);
LCD_Write_COM(0x3A);
LCD_Write_DATA(0x05); //05
LCD_Write_COM(0x36);
LCD_Write_DATA(0xC0); //83 //0B
LCD_Write_COM(0x11); // SLPOUT
delay(150);
LCD_Write_COM(0x29); // display on
delay(150);
LCD_Write_COM(0x2D); //Look up table
for(int j=0;j<32;j++)
{ LCD_Write_DATA(2*j); } //Red
for(int j=0;j<64;j++)
{ LCD_Write_DATA(1*j); } //Green
for(int j=0;j<32;j++)
{ LCD_Write_DATA(2*j); } //Blue
LCD_Write_COM(0x2c);
delay(150);
break;
@@ -0,0 +1,13 @@
case HX8353C:
LCD_Write_COM(0x2a);
LCD_Write_DATA(x1>>8);
LCD_Write_DATA(x1);
LCD_Write_DATA(x2>>8);
LCD_Write_DATA(x2);
LCD_Write_COM(0x2b);
LCD_Write_DATA(y1>>8);
LCD_Write_DATA(y1);
LCD_Write_DATA(y2>>8);
LCD_Write_DATA(y2);
LCD_Write_COM(0x2c);
break;
@@ -0,0 +1,67 @@
case ILI9320_8:
case ILI9320_16:
LCD_Write_COM_DATA(0xe5, 0x8000);
LCD_Write_COM_DATA(0x00, 0x0001);
LCD_Write_COM_DATA(0x01, 0x0100);
LCD_Write_COM_DATA(0x02, 0x0700);
LCD_Write_COM_DATA(0x03, 0x1030);
LCD_Write_COM_DATA(0x04, 0x0000);
LCD_Write_COM_DATA(0x08, 0x0202);
LCD_Write_COM_DATA(0x09, 0x0000);
LCD_Write_COM_DATA(0x0A, 0x0000);
LCD_Write_COM_DATA(0x0C, 0x0000);
LCD_Write_COM_DATA(0x0D, 0x0000);
LCD_Write_COM_DATA(0x0F, 0x0000);
//-----Power On sequence-----------------------
LCD_Write_COM_DATA(0x10, 0x0000);
LCD_Write_COM_DATA(0x11, 0x0007);
LCD_Write_COM_DATA(0x12, 0x0000);
LCD_Write_COM_DATA(0x13, 0x0000);
delay(50);
LCD_Write_COM_DATA(0x10, 0x17B0);
LCD_Write_COM_DATA(0x11, 0x0007);
delay(10);
LCD_Write_COM_DATA(0x12, 0x013A);
delay(10);
LCD_Write_COM_DATA(0x13, 0x1A00);
LCD_Write_COM_DATA(0x29, 0x000c);
delay(10);
//-----Gamma control-----------------------
LCD_Write_COM_DATA(0x30, 0x0000);
LCD_Write_COM_DATA(0x31, 0x0505);
LCD_Write_COM_DATA(0x32, 0x0004);
LCD_Write_COM_DATA(0x35, 0x0006);
LCD_Write_COM_DATA(0x36, 0x0707);
LCD_Write_COM_DATA(0x37, 0x0105);
LCD_Write_COM_DATA(0x38, 0x0002);
LCD_Write_COM_DATA(0x39, 0x0707);
LCD_Write_COM_DATA(0x3C, 0x0704);
LCD_Write_COM_DATA(0x3D, 0x0807);
//-----Set RAM area-----------------------
LCD_Write_COM_DATA(0x50, 0x0000);
LCD_Write_COM_DATA(0x51, 0x00EF);
LCD_Write_COM_DATA(0x52, 0x0000);
LCD_Write_COM_DATA(0x53, 0x013F);
LCD_Write_COM_DATA(0x60, 0x2700);
LCD_Write_COM_DATA(0x61, 0x0001);
LCD_Write_COM_DATA(0x6A, 0x0000);
LCD_Write_COM_DATA(0x21, 0x0000);
LCD_Write_COM_DATA(0x20, 0x0000);
//-----Partial Display Control------------
LCD_Write_COM_DATA(0x80, 0x0000);
LCD_Write_COM_DATA(0x81, 0x0000);
LCD_Write_COM_DATA(0x82, 0x0000);
LCD_Write_COM_DATA(0x83, 0x0000);
LCD_Write_COM_DATA(0x84, 0x0000);
LCD_Write_COM_DATA(0x85, 0x0000);
//-----Panel Control----------------------
LCD_Write_COM_DATA(0x90, 0x0010);
LCD_Write_COM_DATA(0x92, 0x0000);
LCD_Write_COM_DATA(0x93, 0x0003);
LCD_Write_COM_DATA(0x95, 0x0110);
LCD_Write_COM_DATA(0x97, 0x0000);
LCD_Write_COM_DATA(0x98, 0x0000);
//-----Display on-----------------------
LCD_Write_COM_DATA(0x07, 0x0173);
delay(50);
break;
@@ -0,0 +1,10 @@
case ILI9320_8:
case ILI9320_16:
LCD_Write_COM_DATA(0x20,x1);
LCD_Write_COM_DATA(0x21,y1);
LCD_Write_COM_DATA(0x50,x1);
LCD_Write_COM_DATA(0x52,y1);
LCD_Write_COM_DATA(0x51,x2);
LCD_Write_COM_DATA(0x53,y2);
LCD_Write_COM(0x22);
break;
@@ -0,0 +1,61 @@
case ILI9325C:
LCD_Write_COM_DATA(0xE5, 0x78F0); // set SRAM internal timing
LCD_Write_COM_DATA(0x01, 0x0100); // set Driver Output Control
LCD_Write_COM_DATA(0x02, 0x0700); // set 1 line inversion
LCD_Write_COM_DATA(0x03, 0x1030); // set GRAM write direction and BGR=1.
LCD_Write_COM_DATA(0x04, 0x0000); // Resize register
LCD_Write_COM_DATA(0x08, 0x0207); // set the back porch and front porch
LCD_Write_COM_DATA(0x09, 0x0000); // set non-display area refresh cycle ISC[3:0]
LCD_Write_COM_DATA(0x0A, 0x0000); // FMARK function
LCD_Write_COM_DATA(0x0C, 0x0000); // RGB interface setting
LCD_Write_COM_DATA(0x0D, 0x0000); // Frame marker Position
LCD_Write_COM_DATA(0x0F, 0x0000); // RGB interface polarity
//*************Power On sequence ****************//
LCD_Write_COM_DATA(0x10, 0x0000); // SAP, BT[3:0], AP, DSTB, SLP, STB
LCD_Write_COM_DATA(0x11, 0x0007); // DC1[2:0], DC0[2:0], VC[2:0]
LCD_Write_COM_DATA(0x12, 0x0000); // VREG1OUT voltage
LCD_Write_COM_DATA(0x13, 0x0000); // VDV[4:0] for VCOM amplitude
LCD_Write_COM_DATA(0x07, 0x0001);
delay(200); // Dis-charge capacitor power voltage
LCD_Write_COM_DATA(0x10, 0x1090); // SAP, BT[3:0], AP, DSTB, SLP, STB
LCD_Write_COM_DATA(0x11, 0x0227); // Set DC1[2:0], DC0[2:0], VC[2:0]
delay(50); // Delay 50ms
LCD_Write_COM_DATA(0x12, 0x001F); // 0012
delay(50); // Delay 50ms
LCD_Write_COM_DATA(0x13, 0x1500); // VDV[4:0] for VCOM amplitude
LCD_Write_COM_DATA(0x29, 0x0027); // 04 VCM[5:0] for VCOMH
LCD_Write_COM_DATA(0x2B, 0x000D); // Set Frame Rate
delay(50); // Delay 50ms
LCD_Write_COM_DATA(0x20, 0x0000); // GRAM horizontal Address
LCD_Write_COM_DATA(0x21, 0x0000); // GRAM Vertical Address
// ----------- Adjust the Gamma Curve ----------//
LCD_Write_COM_DATA(0x30, 0x0000);
LCD_Write_COM_DATA(0x31, 0x0707);
LCD_Write_COM_DATA(0x32, 0x0307);
LCD_Write_COM_DATA(0x35, 0x0200);
LCD_Write_COM_DATA(0x36, 0x0008);
LCD_Write_COM_DATA(0x37, 0x0004);
LCD_Write_COM_DATA(0x38, 0x0000);
LCD_Write_COM_DATA(0x39, 0x0707);
LCD_Write_COM_DATA(0x3C, 0x0002);
LCD_Write_COM_DATA(0x3D, 0x1D04);
//------------------ Set GRAM area ---------------//
LCD_Write_COM_DATA(0x50, 0x0000); // Horizontal GRAM Start Address
LCD_Write_COM_DATA(0x51, 0x00EF); // Horizontal GRAM End Address
LCD_Write_COM_DATA(0x52, 0x0000); // Vertical GRAM Start Address
LCD_Write_COM_DATA(0x53, 0x013F); // Vertical GRAM Start Address
LCD_Write_COM_DATA(0x60, 0xA700); // Gate Scan Line
LCD_Write_COM_DATA(0x61, 0x0001); // NDL,VLE, REV
LCD_Write_COM_DATA(0x6A, 0x0000); // set scrolling line
//-------------- Partial Display Control ---------//
LCD_Write_COM_DATA(0x80, 0x0000);
LCD_Write_COM_DATA(0x81, 0x0000);
LCD_Write_COM_DATA(0x82, 0x0000);
LCD_Write_COM_DATA(0x83, 0x0000);
LCD_Write_COM_DATA(0x84, 0x0000);
LCD_Write_COM_DATA(0x85, 0x0000);
//-------------- Panel Control -------------------//
LCD_Write_COM_DATA(0x90, 0x0010);
LCD_Write_COM_DATA(0x92, 0x0600);
LCD_Write_COM_DATA(0x07, 0x0133); // 262K color and display ON
break;
@@ -0,0 +1,9 @@
case ILI9325C:
LCD_Write_COM_DATA(0x20,x1);
LCD_Write_COM_DATA(0x21,y1);
LCD_Write_COM_DATA(0x50,x1);
LCD_Write_COM_DATA(0x52,y1);
LCD_Write_COM_DATA(0x51,x2);
LCD_Write_COM_DATA(0x53,y2);
LCD_Write_COM(0x22);
break;
@@ -0,0 +1,61 @@
case ILI9325D_16ALT:
LCD_Write_COM_DATA(0xE5, 0x78F0); // set SRAM internal timing
LCD_Write_COM_DATA(0x01, 0x0100); // set Driver Output Control
LCD_Write_COM_DATA(0x02, 0x0700); // set 1 line inversion
LCD_Write_COM_DATA(0x03, 0x1030); // set GRAM write direction and BGR=1.
LCD_Write_COM_DATA(0x04, 0x0000); // Resize register
LCD_Write_COM_DATA(0x08, 0x0207); // set the back porch and front porch
LCD_Write_COM_DATA(0x09, 0x0000); // set non-display area refresh cycle ISC[3:0]
LCD_Write_COM_DATA(0x0A, 0x0000); // FMARK function
LCD_Write_COM_DATA(0x0C, 0x0000); // RGB interface setting
LCD_Write_COM_DATA(0x0D, 0x0000); // Frame marker Position
LCD_Write_COM_DATA(0x0F, 0x0000); // RGB interface polarity
//*************Power On sequence ****************//
LCD_Write_COM_DATA(0x10, 0x0000); // SAP, BT[3:0], AP, DSTB, SLP, STB
LCD_Write_COM_DATA(0x11, 0x0007); // DC1[2:0], DC0[2:0], VC[2:0]
LCD_Write_COM_DATA(0x12, 0x0000); // VREG1OUT voltage
LCD_Write_COM_DATA(0x13, 0x0000); // VDV[4:0] for VCOM amplitude
LCD_Write_COM_DATA(0x07, 0x0001);
delay(200); // Dis-charge capacitor power voltage
LCD_Write_COM_DATA(0x10, 0x1590); // SAP, BT[3:0], AP, DSTB, SLP, STB
LCD_Write_COM_DATA(0x11, 0x0227); // Set DC1[2:0], DC0[2:0], VC[2:0]
delay(50); // Delay 50ms
LCD_Write_COM_DATA(0x12, 0x009C); // 0012
delay(50); // Delay 50ms
LCD_Write_COM_DATA(0x13, 0x1900); // VDV[4:0] for VCOM amplitude
LCD_Write_COM_DATA(0x29, 0x0023); // 04 VCM[5:0] for VCOMH
LCD_Write_COM_DATA(0x2B, 0x000E); // Set Frame Rate
delay(50); // Delay 50ms
LCD_Write_COM_DATA(0x20, 0x0000); // GRAM horizontal Address
LCD_Write_COM_DATA(0x21, 0x0000); // GRAM Vertical Address
// ----------- Adjust the Gamma Curve ----------//
LCD_Write_COM_DATA(0x30, 0x0000);
LCD_Write_COM_DATA(0x31, 0x0404);
LCD_Write_COM_DATA(0x32, 0x0003);
LCD_Write_COM_DATA(0x35, 0x0405);
LCD_Write_COM_DATA(0x36, 0x0808);
LCD_Write_COM_DATA(0x37, 0x0407);
LCD_Write_COM_DATA(0x38, 0x0303);
LCD_Write_COM_DATA(0x39, 0x0707);
LCD_Write_COM_DATA(0x3C, 0x0504);
LCD_Write_COM_DATA(0x3D, 0x0808);
//------------------ Set GRAM area ---------------//
LCD_Write_COM_DATA(0x50, 0x0000); // Horizontal GRAM Start Address
LCD_Write_COM_DATA(0x51, 0x00EF); // Horizontal GRAM End Address
LCD_Write_COM_DATA(0x52, 0x0000); // Vertical GRAM Start Address
LCD_Write_COM_DATA(0x53, 0x013F); // Vertical GRAM Start Address
LCD_Write_COM_DATA(0x60, 0xA700); // Gate Scan Line
LCD_Write_COM_DATA(0x61, 0x0001); // NDL,VLE, REV
LCD_Write_COM_DATA(0x6A, 0x0000); // set scrolling line
//-------------- Partial Display Control ---------//
LCD_Write_COM_DATA(0x80, 0x0000);
LCD_Write_COM_DATA(0x81, 0x0000);
LCD_Write_COM_DATA(0x82, 0x0000);
LCD_Write_COM_DATA(0x83, 0x0000);
LCD_Write_COM_DATA(0x84, 0x0000);
LCD_Write_COM_DATA(0x85, 0x0000);
//-------------- Panel Control -------------------//
LCD_Write_COM_DATA(0x90, 0x0010);
LCD_Write_COM_DATA(0x92, 0x0000);
LCD_Write_COM_DATA(0x07, 0x0133); // 262K color and display ON
break;
@@ -0,0 +1,9 @@
case ILI9325D_16ALT:
LCD_Write_COM_DATA(0x20,x1);
LCD_Write_COM_DATA(0x21,y1);
LCD_Write_COM_DATA(0x50,x1);
LCD_Write_COM_DATA(0x52,y1);
LCD_Write_COM_DATA(0x51,x2);
LCD_Write_COM_DATA(0x53,y2);
LCD_Write_COM(0x22);
break;
@@ -0,0 +1,62 @@
case ILI9325D_8:
case ILI9325D_16:
LCD_Write_COM_DATA(0xE5, 0x78F0); // set SRAM internal timing
LCD_Write_COM_DATA(0x01, 0x0100); // set Driver Output Control
LCD_Write_COM_DATA(0x02, 0x0200); // set 1 line inversion
LCD_Write_COM_DATA(0x03, 0x1030); // set GRAM write direction and BGR=1.
LCD_Write_COM_DATA(0x04, 0x0000); // Resize register
LCD_Write_COM_DATA(0x08, 0x0207); // set the back porch and front porch
LCD_Write_COM_DATA(0x09, 0x0000); // set non-display area refresh cycle ISC[3:0]
LCD_Write_COM_DATA(0x0A, 0x0000); // FMARK function
LCD_Write_COM_DATA(0x0C, 0x0000); // RGB interface setting
LCD_Write_COM_DATA(0x0D, 0x0000); // Frame marker Position
LCD_Write_COM_DATA(0x0F, 0x0000); // RGB interface polarity
//*************Power On sequence ****************//
LCD_Write_COM_DATA(0x10, 0x0000); // SAP, BT[3:0], AP, DSTB, SLP, STB
LCD_Write_COM_DATA(0x11, 0x0007); // DC1[2:0], DC0[2:0], VC[2:0]
LCD_Write_COM_DATA(0x12, 0x0000); // VREG1OUT voltage
LCD_Write_COM_DATA(0x13, 0x0000); // VDV[4:0] for VCOM amplitude
LCD_Write_COM_DATA(0x07, 0x0001);
delay(200); // Dis-charge capacitor power voltage
LCD_Write_COM_DATA(0x10, 0x1690); // SAP, BT[3:0], AP, DSTB, SLP, STB
LCD_Write_COM_DATA(0x11, 0x0227); // Set DC1[2:0], DC0[2:0], VC[2:0]
delay(50); // Delay 50ms
LCD_Write_COM_DATA(0x12, 0x000D); // 0012
delay(50); // Delay 50ms
LCD_Write_COM_DATA(0x13, 0x1200); // VDV[4:0] for VCOM amplitude
LCD_Write_COM_DATA(0x29, 0x000A); // 04 VCM[5:0] for VCOMH
LCD_Write_COM_DATA(0x2B, 0x000D); // Set Frame Rate
delay(50); // Delay 50ms
LCD_Write_COM_DATA(0x20, 0x0000); // GRAM horizontal Address
LCD_Write_COM_DATA(0x21, 0x0000); // GRAM Vertical Address
// ----------- Adjust the Gamma Curve ----------//
LCD_Write_COM_DATA(0x30, 0x0000);
LCD_Write_COM_DATA(0x31, 0x0404);
LCD_Write_COM_DATA(0x32, 0x0003);
LCD_Write_COM_DATA(0x35, 0x0405);
LCD_Write_COM_DATA(0x36, 0x0808);
LCD_Write_COM_DATA(0x37, 0x0407);
LCD_Write_COM_DATA(0x38, 0x0303);
LCD_Write_COM_DATA(0x39, 0x0707);
LCD_Write_COM_DATA(0x3C, 0x0504);
LCD_Write_COM_DATA(0x3D, 0x0808);
//------------------ Set GRAM area ---------------//
LCD_Write_COM_DATA(0x50, 0x0000); // Horizontal GRAM Start Address
LCD_Write_COM_DATA(0x51, 0x00EF); // Horizontal GRAM End Address
LCD_Write_COM_DATA(0x52, 0x0000); // Vertical GRAM Start Address
LCD_Write_COM_DATA(0x53, 0x013F); // Vertical GRAM Start Address
LCD_Write_COM_DATA(0x60, 0xA700); // Gate Scan Line
LCD_Write_COM_DATA(0x61, 0x0001); // NDL,VLE, REV
LCD_Write_COM_DATA(0x6A, 0x0000); // set scrolling line
//-------------- Partial Display Control ---------//
LCD_Write_COM_DATA(0x80, 0x0000);
LCD_Write_COM_DATA(0x81, 0x0000);
LCD_Write_COM_DATA(0x82, 0x0000);
LCD_Write_COM_DATA(0x83, 0x0000);
LCD_Write_COM_DATA(0x84, 0x0000);
LCD_Write_COM_DATA(0x85, 0x0000);
//-------------- Panel Control -------------------//
LCD_Write_COM_DATA(0x90, 0x0010);
LCD_Write_COM_DATA(0x92, 0x0000);
LCD_Write_COM_DATA(0x07, 0x0133); // 262K color and display ON
break;
@@ -0,0 +1,10 @@
case ILI9325D_8:
case ILI9325D_16:
LCD_Write_COM_DATA(0x20,x1);
LCD_Write_COM_DATA(0x21,y1);
LCD_Write_COM_DATA(0x50,x1);
LCD_Write_COM_DATA(0x52,y1);
LCD_Write_COM_DATA(0x51,x2);
LCD_Write_COM_DATA(0x53,y2);
LCD_Write_COM(0x22);
break;
@@ -0,0 +1,63 @@
case ILI9327:
LCD_Write_COM(0xE9);
LCD_Write_DATA(0x00,0x20);
LCD_Write_COM(0x11); //Exit Sleep
delay(100);
LCD_Write_COM(0xD1);
LCD_Write_DATA(0x00,0x00);
LCD_Write_DATA(0x00,0x71);
LCD_Write_DATA(0x00,0x19);
LCD_Write_COM(0xD0);
LCD_Write_DATA(0x00,0x07);
LCD_Write_DATA(0x00,0x01);
LCD_Write_DATA(0x00,0x08);
LCD_Write_COM(0x36);
LCD_Write_DATA(0x00,0x48);
LCD_Write_COM(0x3A);
LCD_Write_DATA(0x00,0x05);
LCD_Write_COM(0xC1);
LCD_Write_DATA(0x00,0x10);
LCD_Write_DATA(0x00,0x10);
LCD_Write_DATA(0x00,0x02);
LCD_Write_DATA(0x00,0x02);
LCD_Write_COM(0xC0); //Set Default Gamma
LCD_Write_DATA(0x00,0x00);
LCD_Write_DATA(0x00,0x35);
LCD_Write_DATA(0x00,0x00);
LCD_Write_DATA(0x00,0x00);
LCD_Write_DATA(0x00,0x01);
LCD_Write_DATA(0x00,0x02);
LCD_Write_COM(0xC5); //Set frame rate
LCD_Write_DATA(0x00,0x04);
LCD_Write_COM(0xD2); //power setting
LCD_Write_DATA(0x00,0x01);
LCD_Write_DATA(0x00,0x44);
LCD_Write_COM(0xC8); //Set Gamma
LCD_Write_DATA(0x00,0x04);
LCD_Write_DATA(0x00,0x67);
LCD_Write_DATA(0x00,0x35);
LCD_Write_DATA(0x00,0x04);
LCD_Write_DATA(0x00,0x08);
LCD_Write_DATA(0x00,0x06);
LCD_Write_DATA(0x00,0x24);
LCD_Write_DATA(0x00,0x01);
LCD_Write_DATA(0x00,0x37);
LCD_Write_DATA(0x00,0x40);
LCD_Write_DATA(0x00,0x03);
LCD_Write_DATA(0x00,0x10);
LCD_Write_DATA(0x00,0x08);
LCD_Write_DATA(0x00,0x80);
LCD_Write_DATA(0x00,0x00);
LCD_Write_COM(0x2A);
LCD_Write_DATA(0x00,0x00);
LCD_Write_DATA(0x00,0x00);
LCD_Write_DATA(0x00,0x00);
LCD_Write_DATA(0x00,0xeF);
LCD_Write_COM(0x2B);
LCD_Write_DATA(0x00,0x00);
LCD_Write_DATA(0x00,0x00);
LCD_Write_DATA(0x00,0x01);
LCD_Write_DATA(0x00,0x8F);
LCD_Write_COM(0x29); //display on
LCD_Write_COM(0x2C); //display on
break;
@@ -0,0 +1,13 @@
case ILI9327:
LCD_Write_COM(0x2a);
LCD_Write_DATA(0x00,x1>>8);
LCD_Write_DATA(0x00,x1);
LCD_Write_DATA(0x00,x2>>8);
LCD_Write_DATA(0x00,x2);
LCD_Write_COM(0x2b);
LCD_Write_DATA(0x00,y1>>8);
LCD_Write_DATA(0x00,y1);
LCD_Write_DATA(0x00,y2>>8);
LCD_Write_DATA(0x00,y2);
LCD_Write_COM(0x2c);
break;
@@ -0,0 +1,58 @@
case ILI9341_S4P:
LCD_Write_COM(0x11);//sleep out
delay(20);
//LCD_Write_COM(0x01); //reset
//delay(15);
LCD_Write_COM(0x28); //display off
delay(5);
LCD_Write_COM(0xCF); //power control b
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x83); //83 81 AA
LCD_Write_DATA(0x30);
LCD_Write_COM(0xED); //power on seq control
LCD_Write_DATA(0x64); //64 67
LCD_Write_DATA(0x03);
LCD_Write_DATA(0x12);
LCD_Write_DATA(0x81);
LCD_Write_COM(0xE8); //timing control a
LCD_Write_DATA(0x85);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x79); //79 78
LCD_Write_COM(0xCB); //power control a
LCD_Write_DATA(0x39);
LCD_Write_DATA(0X2C);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x34);
LCD_Write_DATA(0x02);
LCD_Write_COM(0xF7); //pump ratio control
LCD_Write_DATA(0x20);
LCD_Write_COM(0xEA); //timing control b
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_COM(0xC0); //power control 2
LCD_Write_DATA(0x26); //26 25
LCD_Write_COM(0xC1); //power control 2
LCD_Write_DATA(0x11);
LCD_Write_COM(0xC5); //vcom control 1
LCD_Write_DATA(0x35);
LCD_Write_DATA(0x3E);
LCD_Write_COM(0xC7); //vcom control 2
LCD_Write_DATA(0xBE); //BE 94
LCD_Write_COM(0xB1); //frame control
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x1B); //1B 70
LCD_Write_COM(0xB6); //display control
LCD_Write_DATA(0x0A);
LCD_Write_DATA(0x82);
LCD_Write_DATA(0x27);
LCD_Write_DATA(0x00);
LCD_Write_COM(0xB7); //emtry mode
LCD_Write_DATA(0x07);
LCD_Write_COM(0x3A); //pixel format
LCD_Write_DATA(0x55); //16bit
LCD_Write_COM(0x36); //mem access
LCD_Write_DATA((1<<3)|(1<<6));
//LCD_Write_DATA((1<<3)|(1<<7)); //rotate 180
LCD_Write_COM(0x29); //display on
delay(5);
break;
@@ -0,0 +1,13 @@
case ILI9341_S4P:
LCD_Write_COM(0x2A); //column
LCD_Write_DATA(x1>>8);
LCD_Write_DATA(x1);
LCD_Write_DATA(x2>>8);
LCD_Write_DATA(x2);
LCD_Write_COM(0x2B); //page
LCD_Write_DATA(y1>>8);
LCD_Write_DATA(y1);
LCD_Write_DATA(y2>>8);
LCD_Write_DATA(y2);
LCD_Write_COM(0x2C); //write
break;
@@ -0,0 +1,105 @@
case ILI9341_S5P:
LCD_Write_COM(0xCB);
LCD_Write_DATA(0x39);
LCD_Write_DATA(0x2C);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x34);
LCD_Write_DATA(0x02);
LCD_Write_COM(0xCF);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0XC1);
LCD_Write_DATA(0X30);
LCD_Write_COM(0xE8);
LCD_Write_DATA(0x85);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x78);
LCD_Write_COM(0xEA);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_COM(0xED);
LCD_Write_DATA(0x64);
LCD_Write_DATA(0x03);
LCD_Write_DATA(0X12);
LCD_Write_DATA(0X81);
LCD_Write_COM(0xF7);
LCD_Write_DATA(0x20);
LCD_Write_COM(0xC0); //Power control
LCD_Write_DATA(0x23); //VRH[5:0]
LCD_Write_COM(0xC1); //Power control
LCD_Write_DATA(0x10); //SAP[2:0];BT[3:0]
LCD_Write_COM(0xC5); //VCM control
LCD_Write_DATA(0x3e); //Contrast
LCD_Write_DATA(0x28);
LCD_Write_COM(0xC7); //VCM control2
LCD_Write_DATA(0x86); //--
LCD_Write_COM(0x36); // Memory Access Control
LCD_Write_DATA(0x48);
LCD_Write_COM(0x3A);
LCD_Write_DATA(0x55);
LCD_Write_COM(0xB1);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x18);
LCD_Write_COM(0xB6); // Display Function Control
LCD_Write_DATA(0x08);
LCD_Write_DATA(0x82);
LCD_Write_DATA(0x27);
/*
LCD_Write_COM(0xF2); // 3Gamma Function Disable
LCD_Write_DATA(0x00);
LCD_Write_COM(0x26); //Gamma curve selected
LCD_Write_DATA(0x01);
LCD_Write_COM(0xE0); //Set Gamma
LCD_Write_DATA(0x0F);
LCD_Write_DATA(0x31);
LCD_Write_DATA(0x2B);
LCD_Write_DATA(0x0C);
LCD_Write_DATA(0x0E);
LCD_Write_DATA(0x08);
LCD_Write_DATA(0x4E);
LCD_Write_DATA(0xF1);
LCD_Write_DATA(0x37);
LCD_Write_DATA(0x07);
LCD_Write_DATA(0x10);
LCD_Write_DATA(0x03);
LCD_Write_DATA(0x0E);
LCD_Write_DATA(0x09);
LCD_Write_DATA(0x00);
LCD_Write_COM(0XE1); //Set Gamma
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x0E);
LCD_Write_DATA(0x14);
LCD_Write_DATA(0x03);
LCD_Write_DATA(0x11);
LCD_Write_DATA(0x07);
LCD_Write_DATA(0x31);
LCD_Write_DATA(0xC1);
LCD_Write_DATA(0x48);
LCD_Write_DATA(0x08);
LCD_Write_DATA(0x0F);
LCD_Write_DATA(0x0C);
LCD_Write_DATA(0x31);
LCD_Write_DATA(0x36);
LCD_Write_DATA(0x0F);
*/
LCD_Write_COM(0x11); //Exit Sleep
delay(120);
LCD_Write_COM(0x29); //Display on
LCD_Write_COM(0x2c);
break;
@@ -0,0 +1,13 @@
case ILI9341_S5P:
LCD_Write_COM(0x2a);
LCD_Write_DATA(x1>>8);
LCD_Write_DATA(x1);
LCD_Write_DATA(x2>>8);
LCD_Write_DATA(x2);
LCD_Write_COM(0x2b);
LCD_Write_DATA(y1>>8);
LCD_Write_DATA(y1);
LCD_Write_DATA(y2>>8);
LCD_Write_DATA(y2);
LCD_Write_COM(0x2c);
break;
@@ -0,0 +1,62 @@
case ILI9481:
LCD_Write_COM(0x11);
delay(20);
LCD_Write_COM(0xD0);
LCD_Write_DATA(0x07);
LCD_Write_DATA(0x42);
LCD_Write_DATA(0x18);
LCD_Write_COM(0xD1);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x07);
LCD_Write_DATA(0x10);
LCD_Write_COM(0xD2);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x02);
LCD_Write_COM(0xC0);
LCD_Write_DATA(0x10);
LCD_Write_DATA(0x3B);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x02);
LCD_Write_DATA(0x11);
LCD_Write_COM(0xC5);
LCD_Write_DATA(0x03);
LCD_Write_COM(0xC8);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x32);
LCD_Write_DATA(0x36);
LCD_Write_DATA(0x45);
LCD_Write_DATA(0x06);
LCD_Write_DATA(0x16);
LCD_Write_DATA(0x37);
LCD_Write_DATA(0x75);
LCD_Write_DATA(0x77);
LCD_Write_DATA(0x54);
LCD_Write_DATA(0x0C);
LCD_Write_DATA(0x00);
LCD_Write_COM(0x36);
LCD_Write_DATA(0x0A);
LCD_Write_COM(0x3A);
LCD_Write_DATA(0x55);
LCD_Write_COM(0x2A);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x3F);
LCD_Write_COM(0x2B);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0xE0);
delay(120);
LCD_Write_COM(0x29);
break;
@@ -0,0 +1,13 @@
case ILI9481:
LCD_Write_COM(0x2a);
LCD_Write_DATA(x1>>8);
LCD_Write_DATA(x1);
LCD_Write_DATA(x2>>8);
LCD_Write_DATA(x2);
LCD_Write_COM(0x2b);
LCD_Write_DATA(y1>>8);
LCD_Write_DATA(y1);
LCD_Write_DATA(y2>>8);
LCD_Write_DATA(y2);
LCD_Write_COM(0x2c);
break;
@@ -0,0 +1,105 @@
case ILI9486:
LCD_Write_COM(0x11); // Sleep OUT
delay(50);
LCD_Write_COM(0xF2); // ?????
LCD_Write_DATA(0x1C);
LCD_Write_DATA(0xA3);
LCD_Write_DATA(0x32);
LCD_Write_DATA(0x02);
LCD_Write_DATA(0xb2);
LCD_Write_DATA(0x12);
LCD_Write_DATA(0xFF);
LCD_Write_DATA(0x12);
LCD_Write_DATA(0x00);
LCD_Write_COM(0xF1); // ?????
LCD_Write_DATA(0x36);
LCD_Write_DATA(0xA4);
LCD_Write_COM(0xF8); // ?????
LCD_Write_DATA(0x21);
LCD_Write_DATA(0x04);
LCD_Write_COM(0xF9); // ?????
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x08);
LCD_Write_COM(0xC0); // Power Control 1
LCD_Write_DATA(0x0d);
LCD_Write_DATA(0x0d);
LCD_Write_COM(0xC1); // Power Control 2
LCD_Write_DATA(0x43);
LCD_Write_DATA(0x00);
LCD_Write_COM(0xC2); // Power Control 3
LCD_Write_DATA(0x00);
LCD_Write_COM(0xC5); // VCOM Control
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x48);
LCD_Write_COM(0xB6); // Display Function Control
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x22); // 0x42 = Rotate display 180 deg.
LCD_Write_DATA(0x3B);
LCD_Write_COM(0xE0); // PGAMCTRL (Positive Gamma Control)
LCD_Write_DATA(0x0f);
LCD_Write_DATA(0x24);
LCD_Write_DATA(0x1c);
LCD_Write_DATA(0x0a);
LCD_Write_DATA(0x0f);
LCD_Write_DATA(0x08);
LCD_Write_DATA(0x43);
LCD_Write_DATA(0x88);
LCD_Write_DATA(0x32);
LCD_Write_DATA(0x0f);
LCD_Write_DATA(0x10);
LCD_Write_DATA(0x06);
LCD_Write_DATA(0x0f);
LCD_Write_DATA(0x07);
LCD_Write_DATA(0x00);
LCD_Write_COM(0xE1); // NGAMCTRL (Negative Gamma Control)
LCD_Write_DATA(0x0F);
LCD_Write_DATA(0x38);
LCD_Write_DATA(0x30);
LCD_Write_DATA(0x09);
LCD_Write_DATA(0x0f);
LCD_Write_DATA(0x0f);
LCD_Write_DATA(0x4e);
LCD_Write_DATA(0x77);
LCD_Write_DATA(0x3c);
LCD_Write_DATA(0x07);
LCD_Write_DATA(0x10);
LCD_Write_DATA(0x05);
LCD_Write_DATA(0x23);
LCD_Write_DATA(0x1b);
LCD_Write_DATA(0x00);
LCD_Write_COM(0x20); // Display Inversion OFF
LCD_Write_DATA(0x00);//C8
LCD_Write_COM(0x36); // Memory Access Control
LCD_Write_DATA(0x0A);
LCD_Write_COM(0x3A); // Interface Pixel Format
LCD_Write_DATA(0x55);
LCD_Write_COM(0x2A); // Column Addess Set
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0xDF);
LCD_Write_COM(0x002B); // Page Address Set
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x3f);
delay(50);
LCD_Write_COM(0x0029); // Display ON
LCD_Write_COM(0x002C); // Memory Write
break;
@@ -0,0 +1,13 @@
case ILI9486:
LCD_Write_COM(0x2a);
LCD_Write_DATA(x1>>8);
LCD_Write_DATA(x1);
LCD_Write_DATA(x2>>8);
LCD_Write_DATA(x2);
LCD_Write_COM(0x2b);
LCD_Write_DATA(y1>>8);
LCD_Write_DATA(y1);
LCD_Write_DATA(y2>>8);
LCD_Write_DATA(y2);
LCD_Write_COM(0x2c);
break;
@@ -0,0 +1,30 @@
case PCF8833:
LCD_Write_COM(0x01);
LCD_Write_COM(0x25);
LCD_Write_DATA(0x40);
LCD_Write_COM(0x11);
delay(10);
LCD_Write_COM(0x20);
LCD_Write_COM(0x38);
LCD_Write_COM(0x29);
LCD_Write_COM(0x13);
LCD_Write_COM(0x36);
LCD_Write_DATA(0x60);
LCD_Write_COM(0x3A);
LCD_Write_DATA(0x05);
LCD_Write_COM(0x2A);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x7F);
LCD_Write_COM(0xB4);
LCD_Write_DATA(0x03);
LCD_Write_DATA(0x08);
LCD_Write_DATA(0x0b);
LCD_Write_DATA(0x0e);
LCD_Write_COM(0xBA);
LCD_Write_DATA(0x07);
LCD_Write_DATA(0x0D);
LCD_Write_COM(0x2B);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x7F);
LCD_Write_COM(0x2C);
break;
@@ -0,0 +1,9 @@
case PCF8833:
LCD_Write_COM(0x2a);
LCD_Write_DATA(x1);
LCD_Write_DATA(x2);
LCD_Write_COM(0x2b);
LCD_Write_DATA(y1);
LCD_Write_DATA(y2);
LCD_Write_COM(0x2c);
break;
+110
View File
@@ -0,0 +1,110 @@
case R61581:
LCD_Write_COM(0xB0);
LCD_Write_DATA(0x1E);
LCD_Write_COM(0xB0);
LCD_Write_DATA(0x00);
LCD_Write_COM(0xB3);
LCD_Write_DATA(0x02);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x10);
LCD_Write_COM(0xB4);
LCD_Write_DATA(0x00);//0X10
// LCD_Write_COM(0xB9); //PWM Settings for Brightness Control
// LCD_Write_DATA(0x01);// Disabled by default.
// LCD_Write_DATA(0xFF); //0xFF = Max brightness
// LCD_Write_DATA(0xFF);
// LCD_Write_DATA(0x18);
LCD_Write_COM(0xC0);
LCD_Write_DATA(0x03);
LCD_Write_DATA(0x3B);//
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x00);//NW
LCD_Write_DATA(0x43);
LCD_Write_COM(0xC1);
LCD_Write_DATA(0x08);
LCD_Write_DATA(0x15);//CLOCK
LCD_Write_DATA(0x08);
LCD_Write_DATA(0x08);
LCD_Write_COM(0xC4);
LCD_Write_DATA(0x15);
LCD_Write_DATA(0x03);
LCD_Write_DATA(0x03);
LCD_Write_DATA(0x01);
LCD_Write_COM(0xC6);
LCD_Write_DATA(0x02);
LCD_Write_COM(0xC8);
LCD_Write_DATA(0x0c);
LCD_Write_DATA(0x05);
LCD_Write_DATA(0x0A);//0X12
LCD_Write_DATA(0x6B);//0x7D
LCD_Write_DATA(0x04);
LCD_Write_DATA(0x06);//0x08
LCD_Write_DATA(0x15);//0x0A
LCD_Write_DATA(0x10);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x60);//0x23
LCD_Write_COM(0x36);
LCD_Write_DATA(0x0A);
LCD_Write_COM(0x0C);
LCD_Write_DATA(0x55);
LCD_Write_COM(0x3A);
LCD_Write_DATA(0x55);
LCD_Write_COM(0x38);
LCD_Write_COM(0xD0);
LCD_Write_DATA(0x07);
LCD_Write_DATA(0x07);//VCI1
LCD_Write_DATA(0x14);//VRH 0x1D
LCD_Write_DATA(0xA2);//BT 0x06
LCD_Write_COM(0xD1);
LCD_Write_DATA(0x03);
LCD_Write_DATA(0x5A);//VCM 0x5A
LCD_Write_DATA(0x10);//VDV
LCD_Write_COM(0xD2);
LCD_Write_DATA(0x03);
LCD_Write_DATA(0x04);//0x24
LCD_Write_DATA(0x04);
LCD_Write_COM(0x11);
delay(150);
LCD_Write_COM(0x2A);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0xDF);//320
LCD_Write_COM(0x2B);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x3F);//480
delay(100);
LCD_Write_COM(0x29);
delay(30);
LCD_Write_COM(0x2C);
delay(30);
break;
+13
View File
@@ -0,0 +1,13 @@
case R61581:
LCD_Write_COM(0x2a);
LCD_Write_DATA(x1>>8);
LCD_Write_DATA(x1);
LCD_Write_DATA(x2>>8);
LCD_Write_DATA(x2);
LCD_Write_COM(0x2b);
LCD_Write_DATA(y1>>8);
LCD_Write_DATA(y1);
LCD_Write_DATA(y2>>8);
LCD_Write_DATA(y2);
LCD_Write_COM(0x2c);
break;
@@ -0,0 +1,183 @@
case S1D19122:
//************* Start Initial Sequence **********//
int i,R,G,B;
LCD_Write_COM(0x11);
LCD_Write_COM(0x13);
LCD_Write_COM(0x29);
//-------------- Display Control ---------//
LCD_Write_COM(0xB0);
LCD_Write_DATA(0x05);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0xF0);
LCD_Write_DATA(0x0A);
LCD_Write_DATA(0x41);
LCD_Write_DATA(0x02);
LCD_Write_DATA(0x0A);
LCD_Write_DATA(0x30);
LCD_Write_DATA(0x31);
LCD_Write_DATA(0x36);
LCD_Write_DATA(0x37);
LCD_Write_DATA(0x40);
LCD_Write_DATA(0x02);
LCD_Write_DATA(0x3F);
LCD_Write_DATA(0x40);
LCD_Write_DATA(0x02);
LCD_Write_DATA(0x81);
LCD_Write_DATA(0x04);
LCD_Write_DATA(0x05);
LCD_Write_DATA(0x64);
// ----------- Gamma Curve Set3 Postive----------//
LCD_Write_COM(0xFC);
LCD_Write_DATA(0x88);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x10);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x10);
LCD_Write_DATA(0x42);
LCD_Write_DATA(0x42);
LCD_Write_DATA(0x22);
LCD_Write_DATA(0x11);
LCD_Write_DATA(0x11);
LCD_Write_DATA(0x22);
LCD_Write_DATA(0x99);
LCD_Write_DATA(0xAA);
LCD_Write_DATA(0xAA);
LCD_Write_DATA(0xAA);
LCD_Write_DATA(0xBB);
LCD_Write_DATA(0xBB);
LCD_Write_DATA(0xAA);
LCD_Write_DATA(0x33);
LCD_Write_DATA(0x33);
LCD_Write_DATA(0x11);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0xC0);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
// ----------- Gamma Curve Set3 Negative----------//
LCD_Write_COM(0xFD);
LCD_Write_DATA(0x88);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x10);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x10);
LCD_Write_DATA(0x42);
LCD_Write_DATA(0x42);
LCD_Write_DATA(0x22);
LCD_Write_DATA(0x11);
LCD_Write_DATA(0x11);
LCD_Write_DATA(0x22);
LCD_Write_DATA(0x99);
LCD_Write_DATA(0xAA);
LCD_Write_DATA(0xAA);
LCD_Write_DATA(0xAA);
LCD_Write_DATA(0xBB);
LCD_Write_DATA(0xBB);
LCD_Write_DATA(0xAA);
LCD_Write_DATA(0x33);
LCD_Write_DATA(0x33);
LCD_Write_DATA(0x11);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x03);
// ----------- EVRSER Regulator Voltage Setting---------//
LCD_Write_COM(0xBE);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x15);
LCD_Write_DATA(0x16);
LCD_Write_DATA(0x08);
LCD_Write_DATA(0x09);
LCD_Write_DATA(0x15);
LCD_Write_DATA(0x10);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
// -----------Module Definiton Setting---------//
LCD_Write_COM(0xC0);
LCD_Write_DATA(0x0E);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
// -----------PWRDEF Power Ability Ddfinition----------//
LCD_Write_COM(0xC1);
LCD_Write_DATA(0x2F);
LCD_Write_DATA(0x23);
LCD_Write_DATA(0xB4);
LCD_Write_DATA(0xFF);
LCD_Write_DATA(0x24);
LCD_Write_DATA(0x03);
LCD_Write_DATA(0x20);
LCD_Write_DATA(0x02);
LCD_Write_DATA(0x02);
LCD_Write_DATA(0x02);
LCD_Write_DATA(0x20);
LCD_Write_DATA(0x20);
LCD_Write_DATA(0x00);
// -----------Other Setting----------//
LCD_Write_COM(0xC2);
LCD_Write_DATA(0x03);
LCD_Write_COM(0x26);
LCD_Write_DATA(0x08);
LCD_Write_COM(0x35);
LCD_Write_COM(0x36);
LCD_Write_DATA(0x64);
LCD_Write_COM(0x3A);
LCD_Write_DATA(0x05);
LCD_Write_COM(0x2A);
LCD_Write_DATA(0x01,0x3f);
LCD_Write_COM(0x2B);
LCD_Write_DATA(0xEF);
LCD_Write_COM(0x2c);
// -----------RGB Setting----------//
LCD_Write_COM(0x2D);
R=0;
G=0;
B=0;
for(i=0;i<32;i++)
{
LCD_Write_DATA(R);
R=R+2;
}
for(i=0;i<64;i++)
{
LCD_Write_DATA(G);
G=G+1;
}
for(i=0;i<32;i++)
{
LCD_Write_DATA(B);
B=B+2;
}
break;
@@ -0,0 +1,13 @@
case S1D19122:
LCD_Write_COM(0x2a);
LCD_Write_DATA(x1>>8);
LCD_Write_DATA(x1);
LCD_Write_DATA(x2>>8);
LCD_Write_DATA(x2);
LCD_Write_COM(0x2b);
LCD_Write_DATA(y1>>8);
LCD_Write_DATA(y1);
LCD_Write_DATA(y2>>8);
LCD_Write_DATA(y2);
LCD_Write_COM(0x2c);
break;
@@ -0,0 +1,44 @@
case S6D0164:
LCD_Write_COM_DATA(0x11,0x001A);
LCD_Write_COM_DATA(0x12,0x3121);
LCD_Write_COM_DATA(0x13,0x006C);
LCD_Write_COM_DATA(0x14,0x4249);
LCD_Write_COM_DATA(0x10,0x0800);
delay(10);
LCD_Write_COM_DATA(0x11,0x011A);
delay(10);
LCD_Write_COM_DATA(0x11,0x031A);
delay(10);
LCD_Write_COM_DATA(0x11,0x071A);
delay(10);
LCD_Write_COM_DATA(0x11,0x0F1A);
delay(10);
LCD_Write_COM_DATA(0x11,0x0F3A);
delay(30);
LCD_Write_COM_DATA(0x01,0x011C);
LCD_Write_COM_DATA(0x02,0x0100);
LCD_Write_COM_DATA(0x03,0x1030);
LCD_Write_COM_DATA(0x07,0x0000);
LCD_Write_COM_DATA(0x08,0x0808);
LCD_Write_COM_DATA(0x0B,0x1100);
LCD_Write_COM_DATA(0x0C,0x0000);
LCD_Write_COM_DATA(0x0F,0x1401);
LCD_Write_COM_DATA(0x15,0x0000);
LCD_Write_COM_DATA(0x20,0x0000);
LCD_Write_COM_DATA(0x21,0x0000);
LCD_Write_COM_DATA(0x36,0x00AF);
LCD_Write_COM_DATA(0x37,0x0000);
LCD_Write_COM_DATA(0x38,0x00DB);
LCD_Write_COM_DATA(0x39,0x0000);
LCD_Write_COM_DATA(0x0F,0x0B01);
LCD_Write_COM_DATA(0x07,0x0016);
LCD_Write_COM_DATA(0x07,0x0017);
LCD_Write_COM(0x22);
break;
@@ -0,0 +1,9 @@
case S6D0164:
LCD_Write_COM_DATA(0x36,x2);
LCD_Write_COM_DATA(0x37,x1);
LCD_Write_COM_DATA(0x38,y2);
LCD_Write_COM_DATA(0x39,y1);
LCD_Write_COM_DATA(0x20,x1);
LCD_Write_COM_DATA(0x21,y1);
LCD_Write_COM(0x22);
break;
@@ -0,0 +1,47 @@
case S6D1121_8:
case S6D1121_16:
LCD_Write_COM_DATA(0x11,0x2004);
LCD_Write_COM_DATA(0x13,0xCC00);
LCD_Write_COM_DATA(0x15,0x2600);
LCD_Write_COM_DATA(0x14,0x252A);
LCD_Write_COM_DATA(0x12,0x0033);
LCD_Write_COM_DATA(0x13,0xCC04);
LCD_Write_COM_DATA(0x13,0xCC06);
LCD_Write_COM_DATA(0x13,0xCC4F);
LCD_Write_COM_DATA(0x13,0x674F);
LCD_Write_COM_DATA(0x11,0x2003);
LCD_Write_COM_DATA(0x30,0x2609);
LCD_Write_COM_DATA(0x31,0x242C);
LCD_Write_COM_DATA(0x32,0x1F23);
LCD_Write_COM_DATA(0x33,0x2425);
LCD_Write_COM_DATA(0x34,0x2226);
LCD_Write_COM_DATA(0x35,0x2523);
LCD_Write_COM_DATA(0x36,0x1C1A);
LCD_Write_COM_DATA(0x37,0x131D);
LCD_Write_COM_DATA(0x38,0x0B11);
LCD_Write_COM_DATA(0x39,0x1210);
LCD_Write_COM_DATA(0x3A,0x1315);
LCD_Write_COM_DATA(0x3B,0x3619);
LCD_Write_COM_DATA(0x3C,0x0D00);
LCD_Write_COM_DATA(0x3D,0x000D);
LCD_Write_COM_DATA(0x16,0x0007);
LCD_Write_COM_DATA(0x02,0x0013);
LCD_Write_COM_DATA(0x03,0x0003);
LCD_Write_COM_DATA(0x01,0x0127);
LCD_Write_COM_DATA(0x08,0x0303);
LCD_Write_COM_DATA(0x0A,0x000B);
LCD_Write_COM_DATA(0x0B,0x0003);
LCD_Write_COM_DATA(0x0C,0x0000);
LCD_Write_COM_DATA(0x41,0x0000);
LCD_Write_COM_DATA(0x50,0x0000);
LCD_Write_COM_DATA(0x60,0x0005);
LCD_Write_COM_DATA(0x70,0x000B);
LCD_Write_COM_DATA(0x71,0x0000);
LCD_Write_COM_DATA(0x78,0x0000);
LCD_Write_COM_DATA(0x7A,0x0000);
LCD_Write_COM_DATA(0x79,0x0007);
LCD_Write_COM_DATA(0x07,0x0051);
LCD_Write_COM_DATA(0x07,0x0053);
LCD_Write_COM_DATA(0x79,0x0000);
LCD_Write_COM(0x22);
break;
@@ -0,0 +1,9 @@
case S6D1121_8:
case S6D1121_16:
LCD_Write_COM_DATA(0x46,(x2 << 8) | x1);
LCD_Write_COM_DATA(0x47,y2);
LCD_Write_COM_DATA(0x48,y1);
LCD_Write_COM_DATA(0x20,x1);
LCD_Write_COM_DATA(0x21,y1);
LCD_Write_COM(0x22);
break;
@@ -0,0 +1,46 @@
case SSD1289:
case SSD1289_8:
case SSD1289LATCHED:
LCD_Write_COM_DATA(0x00,0x0001);
LCD_Write_COM_DATA(0x03,0xA8A4);
LCD_Write_COM_DATA(0x0C,0x0000);
LCD_Write_COM_DATA(0x0D,0x080C);
LCD_Write_COM_DATA(0x0E,0x2B00);
LCD_Write_COM_DATA(0x1E,0x00B7);
LCD_Write_COM_DATA(0x01,0x2B3F);
LCD_Write_COM_DATA(0x02,0x0600);
LCD_Write_COM_DATA(0x10,0x0000);
LCD_Write_COM_DATA(0x11,0x6070);
LCD_Write_COM_DATA(0x05,0x0000);
LCD_Write_COM_DATA(0x06,0x0000);
LCD_Write_COM_DATA(0x16,0xEF1C);
LCD_Write_COM_DATA(0x17,0x0003);
LCD_Write_COM_DATA(0x07,0x0233);
LCD_Write_COM_DATA(0x0B,0x0000);
LCD_Write_COM_DATA(0x0F,0x0000);
LCD_Write_COM_DATA(0x41,0x0000);
LCD_Write_COM_DATA(0x42,0x0000);
LCD_Write_COM_DATA(0x48,0x0000);
LCD_Write_COM_DATA(0x49,0x013F);
LCD_Write_COM_DATA(0x4A,0x0000);
LCD_Write_COM_DATA(0x4B,0x0000);
LCD_Write_COM_DATA(0x44,0xEF00);
LCD_Write_COM_DATA(0x45,0x0000);
LCD_Write_COM_DATA(0x46,0x013F);
LCD_Write_COM_DATA(0x30,0x0707);
LCD_Write_COM_DATA(0x31,0x0204);
LCD_Write_COM_DATA(0x32,0x0204);
LCD_Write_COM_DATA(0x33,0x0502);
LCD_Write_COM_DATA(0x34,0x0507);
LCD_Write_COM_DATA(0x35,0x0204);
LCD_Write_COM_DATA(0x36,0x0204);
LCD_Write_COM_DATA(0x37,0x0502);
LCD_Write_COM_DATA(0x3A,0x0302);
LCD_Write_COM_DATA(0x3B,0x0302);
LCD_Write_COM_DATA(0x23,0x0000);
LCD_Write_COM_DATA(0x24,0x0000);
LCD_Write_COM_DATA(0x25,0x8000);
LCD_Write_COM_DATA(0x4f,0x0000);
LCD_Write_COM_DATA(0x4e,0x0000);
LCD_Write_COM(0x22);
break;
@@ -0,0 +1,10 @@
case SSD1289:
case SSD1289_8:
case SSD1289LATCHED:
LCD_Write_COM_DATA(0x44,(x2<<8)+x1);
LCD_Write_COM_DATA(0x45,y1);
LCD_Write_COM_DATA(0x46,y2);
LCD_Write_COM_DATA(0x4e,x1);
LCD_Write_COM_DATA(0x4f,y1);
LCD_Write_COM(0x22);
break;
@@ -0,0 +1,78 @@
case SSD1963_480:
LCD_Write_COM(0xE2); //PLL multiplier, set PLL clock to 120M
LCD_Write_DATA(0x23); //N=0x36 for 6.5M, 0x23 for 10M crystal
LCD_Write_DATA(0x02);
LCD_Write_DATA(0x54);
LCD_Write_COM(0xE0); // PLL enable
LCD_Write_DATA(0x01);
delay(10);
LCD_Write_COM(0xE0);
LCD_Write_DATA(0x03);
delay(10);
LCD_Write_COM(0x01); // software reset
delay(100);
LCD_Write_COM(0xE6); //PLL setting for PCLK, depends on resolution
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x1F);
LCD_Write_DATA(0xFF);
LCD_Write_COM(0xB0); //LCD SPECIFICATION
LCD_Write_DATA(0x20);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x01); //Set HDP 479
LCD_Write_DATA(0xDF);
LCD_Write_DATA(0x01); //Set VDP 271
LCD_Write_DATA(0x0F);
LCD_Write_DATA(0x00);
LCD_Write_COM(0xB4); //HSYNC
LCD_Write_DATA(0x02); //Set HT 531
LCD_Write_DATA(0x13);
LCD_Write_DATA(0x00); //Set HPS 8
LCD_Write_DATA(0x08);
LCD_Write_DATA(0x2B); //Set HPW 43
LCD_Write_DATA(0x00); //Set LPS 2
LCD_Write_DATA(0x02);
LCD_Write_DATA(0x00);
LCD_Write_COM(0xB6); //VSYNC
LCD_Write_DATA(0x01); //Set VT 288
LCD_Write_DATA(0x20);
LCD_Write_DATA(0x00); //Set VPS 4
LCD_Write_DATA(0x04);
LCD_Write_DATA(0x0c); //Set VPW 12
LCD_Write_DATA(0x00); //Set FPS 2
LCD_Write_DATA(0x02);
LCD_Write_COM(0xBA);
LCD_Write_DATA(0x0F); //GPIO[3:0] out 1
LCD_Write_COM(0xB8);
LCD_Write_DATA(0x07); //GPIO3=input, GPIO[2:0]=output
LCD_Write_DATA(0x01); //GPIO0 normal
LCD_Write_COM(0x36); //rotation
LCD_Write_DATA(0x22);
LCD_Write_COM(0xF0); //pixel data interface
LCD_Write_DATA(0x03);
delay(1);
setXY(0, 0, 479, 271);
LCD_Write_COM(0x29); //display on
LCD_Write_COM(0xBE); //set PWM for B/L
LCD_Write_DATA(0x06);
LCD_Write_DATA(0xf0);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0xf0);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_COM(0xd0);
LCD_Write_DATA(0x0d);
LCD_Write_COM(0x2C);
break;
@@ -0,0 +1,15 @@
case SSD1963_480:
swap(word, x1, y1);
swap(word, x2, y2);
LCD_Write_COM(0x2a);
LCD_Write_DATA(x1>>8);
LCD_Write_DATA(x1);
LCD_Write_DATA(x2>>8);
LCD_Write_DATA(x2);
LCD_Write_COM(0x2b);
LCD_Write_DATA(y1>>8);
LCD_Write_DATA(y1);
LCD_Write_DATA(y2>>8);
LCD_Write_DATA(y2);
LCD_Write_COM(0x2c);
break;
@@ -0,0 +1,78 @@
case SSD1963_800:
LCD_Write_COM(0xE2); //PLL multiplier, set PLL clock to 120M
LCD_Write_DATA(0x1E); //N=0x36 for 6.5M, 0x23 for 10M crystal
LCD_Write_DATA(0x02);
LCD_Write_DATA(0x54);
LCD_Write_COM(0xE0); // PLL enable
LCD_Write_DATA(0x01);
delay(10);
LCD_Write_COM(0xE0);
LCD_Write_DATA(0x03);
delay(10);
LCD_Write_COM(0x01); // software reset
delay(100);
LCD_Write_COM(0xE6); //PLL setting for PCLK, depends on resolution
LCD_Write_DATA(0x03);
LCD_Write_DATA(0xFF);
LCD_Write_DATA(0xFF);
LCD_Write_COM(0xB0); //LCD SPECIFICATION
LCD_Write_DATA(0x24);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x03); //Set HDP 799
LCD_Write_DATA(0x1F);
LCD_Write_DATA(0x01); //Set VDP 479
LCD_Write_DATA(0xDF);
LCD_Write_DATA(0x00);
LCD_Write_COM(0xB4); //HSYNC
LCD_Write_DATA(0x03); //Set HT 928
LCD_Write_DATA(0xA0);
LCD_Write_DATA(0x00); //Set HPS 46
LCD_Write_DATA(0x2E);
LCD_Write_DATA(0x30); //Set HPW 48
LCD_Write_DATA(0x00); //Set LPS 15
LCD_Write_DATA(0x0F);
LCD_Write_DATA(0x00);
LCD_Write_COM(0xB6); //VSYNC
LCD_Write_DATA(0x02); //Set VT 525
LCD_Write_DATA(0x0D);
LCD_Write_DATA(0x00); //Set VPS 16
LCD_Write_DATA(0x10);
LCD_Write_DATA(0x10); //Set VPW 16
LCD_Write_DATA(0x00); //Set FPS 8
LCD_Write_DATA(0x08);
LCD_Write_COM(0xBA);
LCD_Write_DATA(0x0F); //GPIO[3:0] out 1
LCD_Write_COM(0xB8);
LCD_Write_DATA(0x07); //GPIO3=input, GPIO[2:0]=output
LCD_Write_DATA(0x01); //GPIO0 normal
LCD_Write_COM(0x36); //rotation
LCD_Write_DATA(0x22);
LCD_Write_COM(0xF0); //pixel data interface
LCD_Write_DATA(0x03);
delay(1);
setXY(0, 0, 799, 479);
LCD_Write_COM(0x29); //display on
LCD_Write_COM(0xBE); //set PWM for B/L
LCD_Write_DATA(0x06);
LCD_Write_DATA(0xf0);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0xf0);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_COM(0xd0);
LCD_Write_DATA(0x0d);
LCD_Write_COM(0x2C);
break;
@@ -0,0 +1,15 @@
case SSD1963_800:
swap(word, x1, y1);
swap(word, x2, y2);
LCD_Write_COM(0x2a);
LCD_Write_DATA(x1>>8);
LCD_Write_DATA(x1);
LCD_Write_DATA(x2>>8);
LCD_Write_DATA(x2);
LCD_Write_COM(0x2b);
LCD_Write_DATA(y1>>8);
LCD_Write_DATA(y1);
LCD_Write_DATA(y2>>8);
LCD_Write_DATA(y2);
LCD_Write_COM(0x2c);
break;
@@ -0,0 +1,78 @@
case SSD1963_800ALT:
LCD_Write_COM(0xE2); //PLL multiplier, set PLL clock to 120M
LCD_Write_DATA(0x23); //N=0x36 for 6.5M, 0x23 for 10M crystal
LCD_Write_DATA(0x02);
LCD_Write_DATA(0x04);
LCD_Write_COM(0xE0); // PLL enable
LCD_Write_DATA(0x01);
delay(10);
LCD_Write_COM(0xE0);
LCD_Write_DATA(0x03);
delay(10);
LCD_Write_COM(0x01); // software reset
delay(100);
LCD_Write_COM(0xE6); //PLL setting for PCLK, depends on resolution
LCD_Write_DATA(0x04);
LCD_Write_DATA(0x93);
LCD_Write_DATA(0xE0);
LCD_Write_COM(0xB0); //LCD SPECIFICATION
LCD_Write_DATA(0x00); // 0x24
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x03); //Set HDP 799
LCD_Write_DATA(0x1F);
LCD_Write_DATA(0x01); //Set VDP 479
LCD_Write_DATA(0xDF);
LCD_Write_DATA(0x00);
LCD_Write_COM(0xB4); //HSYNC
LCD_Write_DATA(0x03); //Set HT 928
LCD_Write_DATA(0xA0);
LCD_Write_DATA(0x00); //Set HPS 46
LCD_Write_DATA(0x2E);
LCD_Write_DATA(0x30); //Set HPW 48
LCD_Write_DATA(0x00); //Set LPS 15
LCD_Write_DATA(0x0F);
LCD_Write_DATA(0x00);
LCD_Write_COM(0xB6); //VSYNC
LCD_Write_DATA(0x02); //Set VT 525
LCD_Write_DATA(0x0D);
LCD_Write_DATA(0x00); //Set VPS 16
LCD_Write_DATA(0x10);
LCD_Write_DATA(0x10); //Set VPW 16
LCD_Write_DATA(0x00); //Set FPS 8
LCD_Write_DATA(0x08);
LCD_Write_COM(0xBA);
LCD_Write_DATA(0x05); //GPIO[3:0] out 1
LCD_Write_COM(0xB8);
LCD_Write_DATA(0x07); //GPIO3=input, GPIO[2:0]=output
LCD_Write_DATA(0x01); //GPIO0 normal
LCD_Write_COM(0x36); //rotation
LCD_Write_DATA(0x22); // -- Set to 0x21 to rotate 180 degrees
LCD_Write_COM(0xF0); //pixel data interface
LCD_Write_DATA(0x03);
delay(10);
setXY(0, 0, 799, 479);
LCD_Write_COM(0x29); //display on
LCD_Write_COM(0xBE); //set PWM for B/L
LCD_Write_DATA(0x06);
LCD_Write_DATA(0xF0);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0xF0);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_COM(0xD0);
LCD_Write_DATA(0x0D);
LCD_Write_COM(0x2C);
break;
@@ -0,0 +1,15 @@
case SSD1963_800ALT:
swap(word, x1, y1);
swap(word, x2, y2);
LCD_Write_COM(0x2a);
LCD_Write_DATA(x1>>8);
LCD_Write_DATA(x1);
LCD_Write_DATA(x2>>8);
LCD_Write_DATA(x2);
LCD_Write_COM(0x2b);
LCD_Write_DATA(y1>>8);
LCD_Write_DATA(y1);
LCD_Write_DATA(y2>>8);
LCD_Write_DATA(y2);
LCD_Write_COM(0x2c);
break;
+104
View File
@@ -0,0 +1,104 @@
case ST7735:
LCD_Write_COM(0x11);//Sleep exit
delay(12);
//ST7735R Frame Rate
LCD_Write_COM(0xB1);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x2C);
LCD_Write_DATA(0x2D);
LCD_Write_COM(0xB2);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x2C);
LCD_Write_DATA(0x2D);
LCD_Write_COM(0xB3);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x2C);
LCD_Write_DATA(0x2D);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x2C);
LCD_Write_DATA(0x2D);
LCD_Write_COM(0xB4); //Column inversion
LCD_Write_DATA(0x07);
//ST7735R Power Sequence
LCD_Write_COM(0xC0);
LCD_Write_DATA(0xA2);
LCD_Write_DATA(0x02);
LCD_Write_DATA(0x84);
LCD_Write_COM(0xC1);
LCD_Write_DATA(0xC5);
LCD_Write_COM(0xC2);
LCD_Write_DATA(0x0A);
LCD_Write_DATA(0x00);
LCD_Write_COM(0xC3);
LCD_Write_DATA(0x8A);
LCD_Write_DATA(0x2A);
LCD_Write_COM(0xC4);
LCD_Write_DATA(0x8A);
LCD_Write_DATA(0xEE);
LCD_Write_COM(0xC5); //VCOM
LCD_Write_DATA(0x0E);
LCD_Write_COM(0x36); //MX, MY, RGB mode
LCD_Write_DATA(0xC8);
//ST7735R Gamma Sequence
LCD_Write_COM(0xe0);
LCD_Write_DATA(0x0f);
LCD_Write_DATA(0x1a);
LCD_Write_DATA(0x0f);
LCD_Write_DATA(0x18);
LCD_Write_DATA(0x2f);
LCD_Write_DATA(0x28);
LCD_Write_DATA(0x20);
LCD_Write_DATA(0x22);
LCD_Write_DATA(0x1f);
LCD_Write_DATA(0x1b);
LCD_Write_DATA(0x23);
LCD_Write_DATA(0x37);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x07);
LCD_Write_DATA(0x02);
LCD_Write_DATA(0x10);
LCD_Write_COM(0xe1);
LCD_Write_DATA(0x0f);
LCD_Write_DATA(0x1b);
LCD_Write_DATA(0x0f);
LCD_Write_DATA(0x17);
LCD_Write_DATA(0x33);
LCD_Write_DATA(0x2c);
LCD_Write_DATA(0x29);
LCD_Write_DATA(0x2e);
LCD_Write_DATA(0x30);
LCD_Write_DATA(0x30);
LCD_Write_DATA(0x39);
LCD_Write_DATA(0x3f);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x07);
LCD_Write_DATA(0x03);
LCD_Write_DATA(0x10);
LCD_Write_COM(0x2a);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x7f);
LCD_Write_COM(0x2b);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x9f);
LCD_Write_COM(0xF0); //Enable test command
LCD_Write_DATA(0x01);
LCD_Write_COM(0xF6); //Disable ram power save mode
LCD_Write_DATA(0x00);
LCD_Write_COM(0x3A); //65k mode
LCD_Write_DATA(0x05);
LCD_Write_COM(0x29);//Display on
break;
+13
View File
@@ -0,0 +1,13 @@
case ST7735:
LCD_Write_COM(0x2a);
LCD_Write_DATA(x1>>8);
LCD_Write_DATA(x1);
LCD_Write_DATA(x2>>8);
LCD_Write_DATA(x2);
LCD_Write_COM(0x2b);
LCD_Write_DATA(y1>>8);
LCD_Write_DATA(y1);
LCD_Write_DATA(y2>>8);
LCD_Write_DATA(y2);
LCD_Write_COM(0x2c);
break;
@@ -0,0 +1,98 @@
case ST7735S:
LCD_Write_COM(0x11);//Sleep exit
delay(120);
//ST7735R Frame Rate
LCD_Write_COM(0xB1);
LCD_Write_DATA(0x05);
LCD_Write_DATA(0x3C);
LCD_Write_DATA(0x3C);
LCD_Write_COM(0xB2);
LCD_Write_DATA(0x05);
LCD_Write_DATA(0x3C);
LCD_Write_DATA(0x3C);
LCD_Write_COM(0xB3);
LCD_Write_DATA(0x05);
LCD_Write_DATA(0x3C);
LCD_Write_DATA(0x3C);
LCD_Write_DATA(0x05);
LCD_Write_DATA(0x3C);
LCD_Write_DATA(0x3C);
LCD_Write_COM(0xB4); //Column inversion
LCD_Write_DATA(0x03);
//ST7735R Power Sequence
LCD_Write_COM(0xC0);
LCD_Write_DATA(0x28);
LCD_Write_DATA(0x08);
LCD_Write_DATA(0x04);
LCD_Write_COM(0xC1);
LCD_Write_DATA(0xC0);
LCD_Write_COM(0xC2);
LCD_Write_DATA(0x0D);
LCD_Write_DATA(0x00);
LCD_Write_COM(0xC3);
LCD_Write_DATA(0x8D);
LCD_Write_DATA(0x2A);
LCD_Write_COM(0xC4);
LCD_Write_DATA(0x8D);
LCD_Write_DATA(0xEE);
LCD_Write_COM(0xC5); //VCOM
LCD_Write_DATA(0x1A);
LCD_Write_COM(0x36); //MX, MY, RGB mode
LCD_Write_DATA(0xC0);
//ST7735R Gamma Sequence
LCD_Write_COM(0xE0);
LCD_Write_DATA(0x03);
LCD_Write_DATA(0x22);
LCD_Write_DATA(0x07);
LCD_Write_DATA(0x0A);
LCD_Write_DATA(0x2E);
LCD_Write_DATA(0x30);
LCD_Write_DATA(0x25);
LCD_Write_DATA(0x2A);
LCD_Write_DATA(0x28);
LCD_Write_DATA(0x26);
LCD_Write_DATA(0x2E);
LCD_Write_DATA(0x3A);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x03);
LCD_Write_DATA(0x13);
LCD_Write_COM(0xE1);
LCD_Write_DATA(0x04);
LCD_Write_DATA(0x16);
LCD_Write_DATA(0x06);
LCD_Write_DATA(0x0D);
LCD_Write_DATA(0x2D);
LCD_Write_DATA(0x26);
LCD_Write_DATA(0x23);
LCD_Write_DATA(0x27);
LCD_Write_DATA(0x27);
LCD_Write_DATA(0x25);
LCD_Write_DATA(0x2D);
LCD_Write_DATA(0x3B);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x04);
LCD_Write_DATA(0x13);
//LCD_Write_COM(0x2A);
//LCD_Write_DATA(0x00);
//LCD_Write_DATA(0x00);
//LCD_Write_DATA(0x00);
//LCD_Write_DATA(0x7F);
//LCD_Write_COM(0x2B);
//LCD_Write_DATA(0x00);
//LCD_Write_DATA(0x00);
//LCD_Write_DATA(0x00);
//LCD_Write_DATA(0x9F);
LCD_Write_COM(0x3A); //65k mode
LCD_Write_DATA(0x05);
LCD_Write_COM(0x29);//Display on
break;
@@ -0,0 +1,13 @@
case ST7735S:
LCD_Write_COM(0x2a);
LCD_Write_DATA(x1>>8);
LCD_Write_DATA(x1);
LCD_Write_DATA(x2>>8);
LCD_Write_DATA(x2);
LCD_Write_COM(0x2b);
LCD_Write_DATA(y1>>8);
LCD_Write_DATA(y1);
LCD_Write_DATA(y2>>8);
LCD_Write_DATA(y2);
LCD_Write_COM(0x2c);
break;