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

📄 lcd_ds_s6d0154.c

📁 基于MTK平台开发的LCD。C程序
💻 C
📖 第 1 页 / 共 3 页
字号:
	ret +=LCD_DataRead;
#endif
	return ret;
}


void LCD_set_reg(kal_uint16 reg_index, kal_uint16 reg_data)
{
LCD_CtrlWrite(reg_index);
LCD_Delay(10);
  LCD_DataWrite(reg_data);
	
  //  LCD_CtrlWrite_DS_S6D0154(reg_index);
    //LCD_Delay(10);
   // LCD_DataWrite_DS_S6D0154(reg_data);
}

void LCD_EnterSleep_DS_S6D0154(void)
{
	
	LCD_set_reg(0x0015,0x0000);
	LCD_set_reg(0x0007,0x0016);
	LCD_Delay(3000);//200ms
	LCD_set_reg(0x0007,0x0000);
	LCD_Delay(3000);	//100ms
	LCD_set_reg(0x0010,0x0001);
	LCD_Delay(6000);//200ms
}

void LCD_ExitSleep_DS_S6D0154(void)
{
	LCD_set_reg(0x0011,	0x001C);//		VCI1_EN=1, VC:1100	Power Control 2	                                                                                                                                                                                                                                                           
LCD_set_reg(0x0012,	0x1212);//		BT=001, DC1=10, DC2=01, DC3=10	Power Control 3	                                                                                                                                                                                                                                               
LCD_set_reg(0x0013,	0x0041);//		DCR_EX=0, DCR=000, GVD=1000001	Power Control 4	                                                                                                                                                                                                                                               
LCD_set_reg(0x0014,	0x4050);//		VCOMG=0, VCM=1000000 , VCMR=0, VML=1010000	Power Control 5	                                                                                                                                                                                                                                   
LCD_set_reg(0x0010,	0x0800);//		SAP=1000, DSTB=0, STB=0	Power Control 1	                                                                                                                                                                                                                                                       
LCD_set_reg(0x0011,	0x011C);//		PON On	Step_up Circuit 1(AVDD) 	                                                                                                                                                                                                                                                             
LCD_Delay(3000);//300ms10ms);			                                                                                                                                                                                                                                                                                                 
LCD_set_reg(0x0011,	0x031C);//		PON1 On	Step_up Circuit 2 (VGH) 	                                                                                                                                                                                                                                                             
LCD_Delay(3000);//300ms		10ms			                                                                                                                                                                                                                                                                                                 
LCD_set_reg(0x0011,	0x071C);//		PON2 On	Step_up Circuit 2 (VGL) 	                                                                                                                                                                                                                                                             
LCD_Delay(3000);//300ms		10ms			                                                                                                                                                                                                                                                                                                 
LCD_set_reg(0x0011,	0x0F1C);//		PON3 On	Step_up Circuit 3 (VCL) 	                                                                                                                                                                                                                                                             
LCD_Delay(40);//600ms		20ms600ms			                                                                                                                                                                                                                                                                                                 
LCD_set_reg(0x0011,	0x0F39);//0x0f3c 20070928		AON On	OP-Amp.(GVDD,VCOMH,VCOML)	                                                                                                                                                                                                                                                             
LCD_Delay(60);//500ms		30ms900ms



//Display Control Register Setting(Seq-2)		

LCD_set_reg(0x0001,	0x0128);//		VSPL/HSPL/DPL/EPL=0, SM=0, GS=0, SS=1, NL=101000	320 Line	 128      
//Delay_ms(100);//100ms300ms/
LCD_set_reg(0x0002,	0x0100);//		INV=01, FLD=0	Line Inversion with Frame Invesion	                                                                                                                                                                                                                                             
LCD_set_reg(0x0003,	0x1030);//1030//		BGR=1, MTD=11, I/D=11, AM=0		                                                                                                                                                                                                                                                                 
LCD_set_reg(0x0008,	0x0808);//		FP=100, BP=100		                                                                                                                                                                                                                                                                             
LCD_set_reg(0x000B,	0x1105);//		NO=0001, SDT=0001, RTN=0101	Frame Frequency	                                                                                                                                                                                                                                                   
LCD_set_reg(0x000C,	0x0000);//		RM=0, DM=00, RIM=00	
//Delay_ms(100);//100ms		300ms
LCD_set_reg(0x0015,	0x0020);//		VCIR=010	 0X0020
LCD_set_reg(0x0030,	0x0000);//		SCN 0	Start from G1	                                                                                                                                                                                                                                                                           
LCD_set_reg(0x0034,	0x013F);//		SE1 = 100111111( 319)		                                                                                                                                                                                                                                                                       
LCD_set_reg(0x0035,	0x0000);//		SS1 = 000000000		                                                                                                                                                                                                                                                                             
LCD_set_reg(0x0036,	0x00EF);//		HEA = 011101111(239)		                                                                                                                                                                                                                                                                       
LCD_set_reg(0x0037,	0x0000);//		HSA = 000000000		                                                                                                                                                                                                                                                                             
LCD_set_reg(0x0038,	0x013F);//		VEA = 100111111( 319)		                                                                                                                                                                                                                                                                       
LCD_set_reg(0x0039,	0x0000);//		VSA = 000000000		                                                                                                                                                                                                                                                                             
LCD_set_reg(0x0050,	0x0101);//		Gamma Setting		                                                                                                                                                                                                                                                                               
LCD_set_reg(0x0051,	0x0903);//		Gamma Setting		                                                                                                                                                                                                                                                                               
LCD_set_reg(0x0052,	0x0B08);//		Gamma Setting		                                                                                                                                                                                                                                                                               
LCD_set_reg(0x0053,	0x0805);//0x0901		Gamma Setting		                                                                                                                                                                                                                                                                               
LCD_set_reg(0x0054,	0x0101);//0x0605		Gamma Setting		                                                                                                                                                                                                                                                                               
LCD_set_reg(0x0055,	0x0D06);//		Gamma Setting		                                                                                                                                                                                                                                                                               
LCD_set_reg(0x0056,	0x0E0A);//0x0E0E		Gamma Setting		                                                                                                                                                                                                                                                                               
LCD_set_reg(0x0057,	0x0100);//0x010A		Gamma Setting		                                                                                                                                                                                                                                                                               
LCD_set_reg(0x0058,	0x1F0B);//	0x0A1F	Gamma Setting		                                                                                                                                                                                                                                                                               
LCD_set_reg(0x0059,	0x0201);//		Gamma Setting		                                                                                                                                                                                                                                                                               
LCD_set_reg(0x0020,	0x0000);//		Set RAM Address		                                                                                                                                                                                                                                                                             
LCD_set_reg(0x0021,	0x0000);//		Set RAM Address		                                                                                                                                                                                                                                                                             
//0x22			RAM Data Write		
//LCD_CtrlWrite(0x0022);

//Display On Sequence(Seq-3)						                                                                                                                                                                                                                                                                         
LCD_set_reg(0x000F,	0x1801);//0x1801		FOSC=11000, OSC_ON=1	0x1e01	 
//Delay_ms(300);//300ms32ms//9000
LCD_set_reg(0x0007,	0x0016);//		GON=1, REV=1, D=10		                                                                                                                                                                                                                                                                         
LCD_Delay(32);//200ms32ms//9000
LCD_set_reg(0x0007,	0x0017);//		GON=1, REV=1, D=10
	
	LCD_Delay(20);	
}

void LCD_Partial_On_DS_S6D0154(kal_uint16 start_page,kal_uint16 end_page)
{
	#if (defined(LCD_CMD_DMA_MODE))
		#if (defined(LCD_8BIT_MODE))
			SET_LCD_CMD_PARAMETER(0,LCD_CMD, (0x0007 >> 8));
			SET_LCD_CMD_PARAMETER(1,LCD_CMD, (0x0007 & 0x00FF));
			SET_LCD_CMD_PARAMETER(2,LCD_DATA, (0x003F & 0x00FF));
			SET_LCD_CMD_PARAMETER(3,LCD_DATA, (0x003F & 0x00FF));
			SET_LCD_CMD_PARAMETER(4,LCD_CMD, (0x0042 >> 8));
			SET_LCD_CMD_PARAMETER(5,LCD_CMD, (0x0042 & 0x00FF));
			SET_LCD_CMD_PARAMETER(6,LCD_DATA, (end_page & 0x00FF));
			SET_LCD_CMD_PARAMETER(7,LCD_DATA, (start_page & 0x00FF));
			LCD_SEND_DMA_CMD(8);
		#elif (defined(LCD_9BIT_MODE))
		#elif (defined(LCD_16BIT_MODE))
			LCD_set_reg(0x0007, 0x003f);
			SET_LCD_CMD_PARAMETER(0,LCD_CMD,(0x0042&0xFF00) | (0x0042&0xFF));
			SET_LCD_CMD_PARAMETER(1,LCD_DATA,((end_page&0xFF)<<8)|(start_page&0xFF));
			LCD_SEND_DMA_CMD(2);
		#elif (defined(LCD_18BIT_MODE))
		LCD_CtrlWrite_DS_S6D0154(0x0007);
		LCD_DataWrite_DS_S6D0154(0x003f);
        SET_LCD_CMD_PARAMETER(0,LCD_CMD,((0x0042&0xFF00)<<2)|((0x0042&0xFF)<<1));
		SET_LCD_CMD_PARAMETER(1,LCD_DATA,((end_page&0xFF)<<10)|((start_page&0xFF)<<1));
		LCD_SEND_DMA_CMD(2);
		#endif
	#else
    	LCD_set_reg(0x0007, 0x003f);
    	LCD_set_reg(0x0042, (start_page & 0xFF) | ((end_page & 0xFF) << 8));
	#endif
}

void LCD_Partial_Off_DS_S6D0154(void)
{
	#if (defined(LCD_CMD_DMA_MODE))
		#if (defined(LCD_8BIT_MODE))
			SET_LCD_CMD_PARAMETER(0,LCD_CMD, (0x0007 >> 8));
			SET_LCD_CMD_PARAMETER(1,LCD_CMD, (0x0007 & 0x00FF));
			SET_LCD_CMD_PARAMETER(2,LCD_CMD, (0x0042 >> 8));
			SET_LCD_CMD_PARAMETER(3,LCD_CMD, (0x0042 & 0x00FF));
			SET_LCD_CMD_PARAMETER(4,LCD_DATA, (0xDB00 >> 8));
			SET_LCD_CMD_PARAMETER(5,LCD_DATA, (0xDB00 & 0x00FF));
			LCD_SEND_DMA_CMD(6);
        #elif (defined(LCD_9BIT_MODE))
        #elif (defined(LCD_16BIT_MODE))
            LCD_set_reg(0x0007,0x0037);
            SET_LCD_CMD_PARAMETER(0,LCD_CMD,(0x0042&0xFF00)|(0x0042&0xFF));
            SET_LCD_CMD_PARAMETER(1,LCD_DATA,(0xDB00&0xFF00)|(0xDB00&0xFF));
            LCD_SEND_DMA_CMD(2);
		#elif (defined(LCD_18BIT_MODE))
    		LCD_CtrlWrite_DS_S6D0154(0x0007);
	    	LCD_DataWrite_DS_S6D0154(0x0037);
		    SET_LCD_CMD_PARAMETER(0,LCD_CMD,((0x0042&0xFF00)<<2)|((0x0042&0xFF)<<1));
		    SET_LCD_CMD_PARAMETER(1,LCD_DATA,((0xDB00&0xFF00)<<2)|((0xDB00&0xFF)<<1));
		    LCD_SEND_DMA_CMD(2);
        #endif
    #else
        LCD_set_reg(0x0007, 0x0037);
        LCD_set_reg(0x0042, 0xDB00);
    #endif
}

kal_uint8 LCD_Partial_line_DS_S6D0154(void)
{
	return 1;		/* partial display in 1 line alignment */
}

void LCD_blockClear_DS_S6D0154(kal_uint16 x1, kal_uint16 y1, kal_uint16 x2, kal_uint16 y2, kal_uint16 data)
{
       kal_uint16 LCD_x;
	kal_uint16 LCD_y;

	#if (defined(LCD_CMD_DMA_MODE))
			SET_LCD_CMD_PARAMETER(0, LCD_CMD, 0x0037);
	SET_LCD_CMD_PARAMETER(1, LCD_DATA, x1);
	SET_LCD_CMD_PARAMETER(2, LCD_CMD, 0x0036);
	SET_LCD_CMD_PARAMETER(3, LCD_DATA, x2);

	SET_LCD_CMD_PARAMETER(4, LCD_CMD, 0x0039);
	SET_LCD_CMD_PARAMETER(5, LCD_DATA, y1);
	SET_LCD_CMD_PARAMETER(6, LCD_CMD, 0x0038);
	SET_LCD_CMD_PARAMETER(7, LCD_DATA, y2);
		
	SET_LCD_CMD_PARAMETER(8, LCD_CMD, 0x0020);
	SET_LCD_CMD_PARAMETER(9, LCD_DATA, x1);
	SET_LCD_CMD_PARAMETER(10, LCD_CMD, 0x0021);
	SET_LCD_CMD_PARAMETER(11, LCD_DATA, y1);	

	SET_LCD_CMD_PARAMETER(12,LCD_CMD,0x0022);
			LCD_SEND_DMA_CMD(13);
	#else
		LCD_CtrlWrite_DS_S6D0154(0x0044);
		LCD_DataWrite_DS_S6D0154((((x2&0xFF)<<8)|(x1&0xFF)));
		LCD_CtrlWrite_DS_S6D0154(0x0045);
		LCD_DataWrite_DS_S6D0154((((y2&0xFF)<<8)|(y1&0xFF)));
		LCD_CtrlWrite_DS_S6D0154(0x0021);
		LCD_DataWrite_DS_S6D0154((((y1&0xFF)<<8)|(x1&0xFF)));  
		LCD_CtrlWrite_DS_S6D0154(0x0022);
	#endif

	for (LCD_y = y1; LCD_y <= y2; LCD_y++) {
		for (LCD_x = x1; LCD_x <= x2; LCD_x++) {
			//LCD_set_reg(0x000e,0x07E0);
			*((volatile unsigned short *) LCD_DATA_ADDR) = data;
		}
	}
}

void LCD_ClearAll_DS_S6D0154(kal_uint16 data)
{
   LCD_blockClear_DS_S6D0154(0, 0, LCD_WIDTH - 1, LCD_HEIGHT - 1, data);
}

#define LCD_PCON           	  (LCD_base+0x0010)//added by chenhonglang for tft issue.

void LCD_reset_DS_S6D0154(void)
{
   DRV_WriteReg(LCD_PCON,0x0000); //added by chenhonglang for tft issue.
   LCD_Delay(50); //added by chenhonglang for tft issue.	
   DRV_WriteReg(LCD_PCON,0x0001); //added by chenhonglang for tft issue.
   LCD_Delay(50); 

 }

void LCD_Init_DS_S6D0154(kal_uint32 bkground, void **buf_addr)
{
       LCD_reset_DS_S6D0154();
	LCD_Delay(100);
	//power on seq 1

LCD_set_reg(0x0011,	0x001C);//		VCI1_EN=1, VC:1100	Power Control 2	                                                                                                                                                                                                                                                           
LCD_set_reg(0x0012,	0x1212);//		BT=001, DC1=10, DC2=01, DC3=10	Power Control 3	                                                                                                                                                                                                                                               
LCD_set_reg(0x0013,	0x0041);//		DCR_EX=0, DCR=000, GVD=1000001	Power Control 4	                                                                                                                                                                                                                                               
LCD_set_reg(0x0014,	0x4050);//		VCOMG=0, VCM=1000000 , VCMR=0, VML=1010000	Power Control 5	                                                                                                                                                                                                                                   
LCD_set_reg(0x0010,	0x0800);//		SAP=1000, DSTB=0, STB=0	Power Control 1	                                                                                                                                                                                                                                                       
LCD_set_reg(0x0011,	0x011C);//		PON On	Step_up Circuit 1(AVDD) 	                                                                                                                                                                                                                                                             
LCD_Delay(3000);//300ms10ms);			                                                                                                                                                                                                                                                                                                 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -