⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd.c

📁 MTK常用LCD驱动,[HX8312 SSD1289 TL1763 ILI9320 HX8346 S6D01390] LGDP4531
💻 C
📖 第 1 页 / 共 5 页
字号:
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 + -