?? lcd.c
字號:
kal_uint8 LCD_Partial_line_HX8306A(void)
{
return 1; /* partial display in 1 line alignment */
}
void LCD_blockClear_HX8306A(kal_uint16 x1,kal_uint16 y1,kal_uint16 x2,kal_uint16 y2,kal_uint16 data)
{
}
void LCD_ClearAll_HX8306A(kal_uint16 data)
{
}
void LCD_Init_HX8306A(kal_uint32 bkground, void **buf_addr)
{
CLEAR_LCD_CTRL_RESET_PIN;
LCD_Delay(100);
LCD_Delay(100);
LCD_Delay(100);
SET_LCD_CTRL_RESET_PIN;
LCD_Delay(100);
LCD_Delay(100);
LCD_Delay(100);
read_lcd_module_id();
if(lcd_id==_LGDP4531_240x320)
{
#if 1
/*----------------------------------*/ //SKWORTH BOTH LCD
Init_data(0x0010,0x1628);
Init_data(0x0012,0x000a); //0006
Init_data(0x0013,0x0a39);
DelayX1mS(50);
Init_data(0x0011,0x0510);
Init_data(0x0015,0x0050);
DelayX1mS(40);
Init_data(0x0012,0x001a); //0016
DelayX1mS(50);
Init_data(0x0010,0x2620);//1620
Init_data(0x0013,0x2d4d);//0x2a39
DelayX1mS(10);
Init_data(0x0008,0x0303); //202
Init_data(0x0001,0x0100);
Init_data(0x0002,0x0300);
Init_data(0x0003,0x1030);
Init_data(0x000a,0x0008);
//Init_data(0x0015,0x0050);
//Init_data(0x0016,0x0000);
Init_data(0x0030,0x0004);
Init_data(0x0031,0x0307);
Init_data(0x0032,0x0007);
Init_data(0x0033,0x0405);
Init_data(0x0034,0x0707);
Init_data(0x0035,0x0707);
Init_data(0x0036,0x0704);
Init_data(0x0037,0x0504);
Init_data(0x0038,0x0308);
Init_data(0x0039,0x0308);
/*-------------------------------*/
Init_data(0x0041,0x0002);
Init_data(0x0060,0x2700);
Init_data(0x0061,0x0001);
Init_data(0x0090,0x011d);//0112
Init_data(0x0093,0x0001);
//Init_data(0x0090,0x0210);
Init_data(0x0092,0x010a);
//Init_data(0x0093,0x0004);
//Init_data(0x00a0,0x0100);
Init_data(0x0007,0x0001);
Init_data(0x0007,0x0021);
Init_data(0x0007,0x0023);
Init_data(0x0007,0x0033);
Init_data(0x0007,0x0133);
// Init_data(0x00a0,0x0000);
/*----------------------------------*/ //SKWORTH BOTH LCD
#endif
LCD_CtrlWrite_HX8306A(0x0022);
{
kal_uint16 i,j;
for(i=0;i<320;i++)
{
for(j=0;j<240;j++)
{
*(volatile kal_uint16 *)LCD_HX8306A_DATA_ADDR = 0;
}
}
}
return;
}
if(lcd_id==_ILI9320_240x320)
{
//#ifdef _ILI9320_240x320
//_WR = 1;
//RESETB = 1;
//DelayX1mS(100);
//RESETB = 0;
//DelayX1mS(100);
//RESETB = 1;
//DelayX1mS(100);
Init_data(0x0010, 0x0000); // SAP, BT[3:0], AP, DSTB, SLP, STB
Init_data(0x0011, 0x0007); // DC1[2:0], DC0[2:0], VC[2:0]
Init_data(0x0012, 0x0000); // VREG1OUT voltage
Init_data(0x0013, 0x0000); // VDV[4:0] for VCOM amplitude
DelayX1mS(50); // Dis-charge capacitor power voltage
Init_data(0x0010, 0x17B0); // SAP, BT[3:0], AP, DSTB, SLP, STB
Init_data(0x0011, 0x0001); // DC1[2:0], DC0[2:0], VC[2:0] //0x0001
DelayX1mS(50); // Delay 50ms
Init_data(0x0012, 0x011c); // VREG1OUT voltage //0x013C//0x013a
DelayX1mS(50); // Delay 50ms
Init_data(0x0013, 0x1500); // VDV[4:0] for VCOM amplitude //0x1300
Init_data(0x0029, 0x0016); // VCM[4:0] for VCOMH //0x0004
DelayX1mS(50); // Delay 50ms
Init_data(0x0000, 0x0001); // Start internal OSC.
Init_data(0x0001, 0x0100); // set SS and SM bit
Init_data(0x0002, 0x0400); // set 1 line inversion //0x0400
Init_data(0x0003, 0x1030); // set GRAM write direction and BGR=1. //1038//0x1030
//Init_data(0x0003, 0x10B0); //////////vertical scan/////////
Init_data(0x0004, 0x0000); // Resize register
Init_data(0x0008, 0x0202); // set the back porch and front porch
Init_data(0x0009, 0x0000); // set non-display area refresh cycle ISC[3:0]
Init_data(0x000A, 0x0000); // FMARK function
Init_data(0x000C, 0x0003); // RGB interface setting
Init_data(0x000D, 0x0000); // Frame marker Position
//Init_data(0x000F, 0x0000); // RGB interface polarity
Init_data(0x0020, 0x0000); // GRAM horizontal Address
Init_data(0x0021, 0x0000); // GRAM Vertical Address
Init_data(0x002B, 0x0020); // Frame Rate and Color Control-----16M_EN, Dither, FR_SEL[1:0]//20070614
Init_data(0x0050, 0x0000); // Horizontal GRAM Start Address-----HSA[7:0]
Init_data(0x0051, 0x00EF); // Horizontal GRAM End Address-----HEA[7:0]
Init_data(0x0052, 0x0000); // Vertical GRAM Start Address-----VSA[8:0]
Init_data(0x0053, 0x013F); // Vertical GRAM Start Address-----VEA[8:0]
Init_data(0x0060, 0x2700); // GS, NL[5:0], SCN[5:0]
//Init_data(0x0060, 0xA700); //////////vertical scan/////////
Init_data(0x0061, 0x0001); // NDL,VLE, REV
Init_data(0x006A, 0x0000); // VL[8:0]
Init_data(0x0080, 0x0000); // Partial Image 1 Display Position-----PTDP0[8:0]
Init_data(0x0081, 0x0000); // Partial Image 1 Start Address-----PTSA0[8:0]
Init_data(0x0082, 0x0000); // Partial Image 1 End Address-----PTEA0[8:0]
Init_data(0x0083, 0x0000); // Partial Image 2 Display Position-----PTDP1[8:0]
Init_data(0x0084, 0x0000); // Partial Image 2 Start Address-----PTSA1[8:0]
Init_data(0x0085, 0x0000); // Partial Image 2 Start Address-----PTEA1[8:0]
Init_data(0x0090, 0x0010); // Panel Interface Control 1-----DIVI[1:0], RTNI[4:0] //0x0013
Init_data(0x0092, 0x0000); // Panel Interface Control 2-----NOWI[2:0]
Init_data(0x0093, 0x0001); // Panel Interface Control 3-----MCPI[2:0] //0x0003
Init_data(0x0095, 0x0110); // Panel Interface Control 4-----DIVE[1:0], RTNE[5:0]
Init_data(0x0097, 0x0000); // Panel Interface Control 5-----NOWE[3:0]
Init_data(0x0098, 0x0000); // Panel Interface Control 6-----MCPE[2:0]
Init_data(0x0007, 0x0001); // Display Control 1
DelayX1mS(50);
Init_data(0x0007, 0x0021); // Display Control 1
Init_data(0x0007, 0x0023); // Display Control 1
DelayX1mS(50);
Init_data(0x0007, 0x0173); // Display Control 1-----262K color and display ON
LCD_CtrlWrite_HX8306A(0x0022);
{
kal_uint16 i,j;
for(i=0;i<320;i++)
{
for(j=0;j<240;j++)
{
*(volatile kal_uint16 *)LCD_HX8306A_DATA_ADDR = 0;
}
}
}
//#endif
return;
}
if(lcd_id==_TL1763_240x320)
{
//#ifdef _TL1763_240x320
Init_data(0X0011 ,0X0001);
Init_data(0X0013 ,0X1333);
//Init_data(0X0013 ,0X1334);
Init_data(0X0010 ,0X0530);
Init_data(0X0012 ,0X1019);
//Init_data(0X0012 ,0X101D);
DelayX1mS(40); //Wait 40ms
Init_data(0X0013 ,0X3333);
// Init_data(0X0013 ,0X3634); //Tomato 20061228
Init_data(0X0011 ,0X0111);
Init_data(0X0010 ,0X1530);
DelayX1mS(100); //Wait 100ms
Init_data(0X0001 ,0X0100); //0x0100
Init_data(0X0002 ,0X0700);
Init_data(0X0003 ,0X1030); //0x1030
Init_data(0X0004 ,0X0140);
Init_data(0X0007 ,0X0005);
Init_data(0X0008 ,0X0202);
Init_data(0X000B ,0X0000);
Init_data(0X000C ,0X0000);
Init_data(0X000E ,0X0015);
Init_data(0X00A1 ,0X1000);
Init_data(0X00A4 ,0X7300);
Init_data(0X0030 ,0X0202);
Init_data(0X0031 ,0X0000);
Init_data(0X0032 ,0X0404);
Init_data(0X0033 ,0X0203);
Init_data(0X0034 ,0X0207);
Init_data(0X0035 ,0X0202);
Init_data(0X0036 ,0X0707);
Init_data(0X0037 ,0X0002);
Init_data(0X0038 ,0X0F00);
Init_data(0X0039 ,0X0002);
Init_data(0X0040 ,0X0000);
Init_data(0X0041 ,0X0000);
Init_data(0X0042 ,0X013F);
Init_data(0X0043 ,0X0000);
Init_data(0X0044 ,0X0000);
Init_data(0X0045 ,0X0000);
Init_data(0X0046 ,0XEF00);
Init_data(0X0047 ,0X013F);
Init_data(0X0048 ,0X0000);
DelayX1mS(40); //Wait 40ms
Init_data(0X0007 ,0X0025);
Init_data(0X0007 ,0X0035);
DelayX1mS(40); //Wait 40ms
Init_data(0X0007 ,0X0037);
Init_data(0X0020 ,0X0000);
Init_data(0X0021 ,0X0000);
LCD_CtrlWrite_HX8306A(0x0022);
{
kal_uint16 i,j;
for(i=0;i<320;i++)
{
for(j=0;j<240;j++)
{
*(volatile kal_uint16 *)LCD_HX8306A_DATA_ADDR = 0;
}
}
}
//#endif
return;
}
if(lcd_id==_HX8346_240x320_)
{
#if 1 //kino for 8346 1 for test 8347
Init_data(0x0019,0x0061); //osc setting
DelayX1mS(10);
Init_data(0x001b,0x0018); //exit sleep
DelayX1mS(10);
Init_data(0x001b,0x0012); //exit sleep
DelayX1mS(50);
Init_data(0x0038,0x0000);
DelayX1mS(10);
/***************display setting*******************/
Init_data(0x0001,0x0006); //display control 3
DelayX1mS(10);
Init_data(0x0016,0x0088); //memory access control 0x00c8 //mod
DelayX1mS(10);
Init_data(0x0018,0x0000); //memory access control
DelayX1mS(10);
Init_data(0x0070,0x00a5); //memory access control //add
DelayX1mS(10);
Init_data(0x0023,0x0018); //cycle control
DelayX1mS(10);
Init_data(0x0024,0x0095); //cycle control
DelayX1mS(10);
Init_data(0x0025,0x00ff); //cycle control
DelayX1mS(10);
Init_data(0x0027,0x0002); // BP/FP SETTING
DelayX1mS(10);
Init_data(0x0028,0x0002); // BP/FP SETTING
DelayX1mS(10);
Init_data(0x0029,0x0002); // BP/FP SETTING
DelayX1mS(10);
Init_data(0x002a,0x0002); // BP/FP SETTING
DelayX1mS(10);
Init_data(0x002c,0x0002); // BP/FP SETTING
DelayX1mS(10);
Init_data(0x002d,0x0002); // BP/FP SETTING
DelayX1mS(10);
Init_data(0x003a,0x0001); //cycle control 1
DelayX1mS(10);
Init_data(0x003b,0x0001); //cycle control 2
DelayX1mS(10);
Init_data(0x003c,0x00f0); //cycle control 3
DelayX1mS(10);
Init_data(0x003d,0x0000); //cycle control 4
DelayX1mS(20);
/**********power setting**********************/
Init_data(0x0042,0x0008); //BGP control
DelayX1mS(50);
Init_data(0x001c,0x0004); // AP2-0 SETTING
DelayX1mS(30);
Init_data(0x0030,0x0008); // SAP3-0 SETTING
DelayX1mS(10);
Init_data(0x001d,0x0041); //VLCD SETTING
DelayX1mS(30);
Init_data(0x001e,0x0001); //VREG3 SETTING VREG3=2XVCI
DelayX1mS(30);
Init_data(0x001f,0x0008); //power control 1 vreg1=4.64v
DelayX1mS(30);
Init_data(0x0020,0x0070); // VGL/VGH SETTING
DelayX1mS(30);
Init_data(0x0021,0x0000); // DC/DC SETTING
DelayX1mS(30);
Init_data(0x0043,0x0080); //vomg control
DelayX1mS(50);
Init_data(0x0044,0x002f); //vomg control VCOMH=3.4V 0x0044 //mod
DelayX1mS(10);
Init_data(0x0045,0x000a); //vomg control VCOM=4.872V 0x0010 //mod
DelayX1mS(20);
/******************GAMMA SETTING***********************/
Init_data(0x0046,0x0001); //GAMMA control 1
Init_data(0x0047,0x0021); //GAMMA control 2
Init_data(0x0048,0x0022); //GAMMA control 3
Init_data(0x0049,0x0033); //GAMMA control 4
Init_data(0x004a,0x0001); //GAMMA control 5
Init_data(0x004b,0x0001); //GAMMA control 6
Init_data(0x004c,0x0013); //GAMMA control 7
Init_data(0x004d,0x0022); //GAMMA control 8
Init_data(0x004e,0x0012); //GAMMA control 9
Init_data(0x004f,0x0021); //GAMMA control 10
Init_data(0x0050,0x0021); //GAMMA control 11
Init_data(0x0051,0x0000); //GAMMA control 12
DelayX1mS(100);
/****************display on setting**************/
Init_data(0x0026,0x0004);
DelayX1mS(20);
Init_data(0x0026,0x0024);
DelayX1mS(20);
Init_data(0x0026,0x002c);
DelayX1mS(20);
Init_data(0x0026,0x003c);
DelayX1mS(20);
LCD_ClearAll_HX8306A(0xFFFF);
#else
LCD_CtrlWrite_HX8306A(0x19);//osc setting
LCD_DataWrite_HX8306A(0x61);
DelayX1mS(10);
LCD_CtrlWrite_HX8306A(0x1B);//exit sleep
LCD_DataWrite_HX8306A(0x18);
DelayX1mS(10);
LCD_CtrlWrite_HX8306A(0x1B);//exit sleep
LCD_DataWrite_HX8306A(0x12);
DelayX1mS(50);
/***************display setting*******************/
LCD_CtrlWrite_HX8306A(0x01);//display control 3
LCD_DataWrite_HX8306A(0x06);
DelayX1mS(10);
LCD_CtrlWrite_HX8306A(0x16);//memory access control
LCD_DataWrite_HX8306A(0xc8);
DelayX1mS(10);
LCD_CtrlWrite_HX8306A(0x18);//memory access control
LCD_DataWrite_HX8306A(0x00);
DelayX1mS(10);
LCD_CtrlWrite_HX8306A(0x23);//cycle control
LCD_DataWrite_HX8306A(0x18);
DelayX1mS(10);
LCD_CtrlWrite_HX8306A(0x24);//cycle control
LCD_DataWrite_HX8306A(0x95);
DelayX1mS(10);
LCD_CtrlWrite_HX8306A(0x25);//cycle control
LCD_DataWrite_HX8306A(0xff);
DelayX1mS(10);
LCD_CtrlWrite_HX8306A(0x27);// BP/FP SETTING
LCD_DataWrite_HX8306A(0x02);
DelayX1mS(10);
LCD_CtrlWrite_HX8306A(0x28);// BP/FP SETTING
LCD_DataWrite_HX8306A(0x02);
DelayX1mS(10);
LCD_CtrlWrite_HX8306A(0x29);// BP/FP SETTING
LCD_DataWrite_HX8306A(0x02);
DelayX1mS(10);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -