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

📄 lcd_ds_s6d0154.c

📁 基于MTK平台开发的LCD。C程序
💻 C
📖 第 1 页 / 共 3 页
字号:
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,	0x1F01);//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_DataWrite(0x0022);			
	LCD_Delay(20);	

	LCD_ClearAll_DS_S6D0154(bkground);
}

void LCD_PWRON_DS_S6D0154(kal_bool on)
{
}

void LCD_SetContrast_DS_S6D0154(kal_uint8 level)
{
}

void LCD_ON_DS_S6D0154(kal_bool on)
{
}

void LCD_BlockWrite_DS_S6D0154(kal_uint16 startx,kal_uint16 starty,kal_uint16 endx,kal_uint16 endy)
{
	
//   ASSERT(lcd_assert_fail==KAL_FALSE);
        //lcd_assert_fail = KAL_TRUE;
	#ifdef LCD_CMD_DMA_MODE
	SET_LCD_CMD_PARAMETER(0, LCD_CMD, 0x0037);
	SET_LCD_CMD_PARAMETER(1, LCD_DATA, startx);
	SET_LCD_CMD_PARAMETER(2, LCD_CMD, 0x0036);
	SET_LCD_CMD_PARAMETER(3, LCD_DATA, endx);

	SET_LCD_CMD_PARAMETER(4, LCD_CMD, 0x0039);
	SET_LCD_CMD_PARAMETER(5, LCD_DATA, starty);
	SET_LCD_CMD_PARAMETER(6, LCD_CMD, 0x0038);
	SET_LCD_CMD_PARAMETER(7, LCD_DATA, endy);
		
	SET_LCD_CMD_PARAMETER(8, LCD_CMD, 0x0020);
	SET_LCD_CMD_PARAMETER(9, LCD_DATA, startx);
	SET_LCD_CMD_PARAMETER(10, LCD_CMD, 0x0021);
	SET_LCD_CMD_PARAMETER(11, LCD_DATA, starty);	

	SET_LCD_CMD_PARAMETER(12,LCD_CMD,0x0022);
	SET_LCD_ROI_CTRL_NUMBER_OF_CMD(13);
			ENABLE_LCD_TRANSFER_COMPLETE_INT;
			ENABLE_LCD_ROI_CTRL_CMD_FIRST;
			while (LCD_IS_RUNNING);
			START_LCD_TRANSFER;
	#else   /* LCD_CMD_DMA_MODE */
		LCD_CtrlWrite_DS_S6D0154(0x0044);
		LCD_DataWrite_DS_S6D0154((((endx&0xFF)<<8)|(startx&0xFF)));
		LCD_CtrlWrite_DS_S6D0154(0x0045);
		LCD_DataWrite_DS_S6D0154((((endy&0xFF)<<8)|(starty&0xFF)));
		LCD_CtrlWrite_DS_S6D0154(0x0021);
		LCD_DataWrite_DS_S6D0154((((starty&0xFF)<<8)|(startx&0xFF)));
		LCD_CtrlWrite_DS_S6D0154(0x0022);

		DISABLE_LCD_TRANSFER_COMPLETE_INT;
		DISABLE_LCD_ROI_CTRL_CMD_FIRST;
		START_LCD_TRANSFER;
    #endif /* LCD_CMD_DMA_MODE */

    lcd_assert_fail = KAL_FALSE;
}

void LCD_Size_DS_S6D0154(kal_uint16 *out_LCD_width, kal_uint16 *out_LCD_height)
{
   	*out_LCD_width = LCD_WIDTH;
   	*out_LCD_height = LCD_HEIGHT;
}

/*Engineering mode*/
kal_uint8 LCD_GetParm_DS_S6D0154(lcd_func_type type)
{
    switch(type) {
    case lcd_Bais_func:
        return 1;

    case lcd_Contrast_func:
        return 1;

    case lcd_LineRate_func:
        return 4;

    case lcd_Temperature_Compensation_func:
        return 4;

    default:
        ASSERT(0);
   }

   return 100;
}

void LCD_SetBias_DS_S6D0154(kal_uint8 *bias)
{
}

void LCD_Contrast_DS_S6D0154(kal_uint8 *contrast)
{
}

void LCD_LineRate_DS_S6D0154(kal_uint8 *linerate)
{
}

void LCD_Temp_Compensate_DS_S6D0154(kal_uint8 *compensate)
{
}

kal_bool LCD_ESD_check_DS_S6D0154()
{
    volatile  kal_uint16 data_value = 0;
    kal_uint16 data_addr = 0;
	kal_uint8 i, reg_start_idx, reg_end_idx;
	
	if (lcd_reg_index > 2) {
        lcd_reg_index = 0;
	}
   
	while (LCD_IS_RUNNING);   

    if (lcd_reg_index == 0) {
      reg_start_idx = 0;
      reg_end_idx = 7;
   }else if (lcd_reg_index == 1) {
      reg_start_idx = 8;
      reg_end_idx = 14;
   }else{
      reg_start_idx = 15;
      reg_end_idx = N_lcd_reg - 1;
   }   

    for (i = reg_start_idx; i <= reg_end_idx; i++) {
        if (lcd_check == 1) {
            data_addr = lcd_check_reg.reg[i].addr;
            data_value = readreg_DS_S6D0154(data_addr);	   
            kal_prompt_trace(MOD_ENG, "--read %x as %x", data_addr, data_value);
            if (data_value != lcd_check_reg.reg[i].para) {
                kal_prompt_trace(MOD_ENG, "ESD FAIL read %x as %x", data_addr, data_value);
                return KAL_FALSE;
            }
	    }
    }

    lcd_reg_index++;
    while (LCD_IS_RUNNING);
   
    return KAL_TRUE;
}

LCD_Funcs LCD_FUNCS_DS_S6D0154 = {
   LCD_Init_DS_S6D0154,
   LCD_PWRON_DS_S6D0154,
   LCD_SetContrast_DS_S6D0154,
   LCD_ON_DS_S6D0154,
   LCD_BlockWrite_DS_S6D0154,
   LCD_Size_DS_S6D0154,
   LCD_EnterSleep_DS_S6D0154,
   LCD_ExitSleep_DS_S6D0154,
   LCD_Partial_On_DS_S6D0154,
   LCD_Partial_Off_DS_S6D0154,
   LCD_Partial_line_DS_S6D0154,
   /*Engineering mode*/
   LCD_GetParm_DS_S6D0154,
   LCD_SetBias_DS_S6D0154,
   LCD_Contrast_DS_S6D0154,
   LCD_LineRate_DS_S6D0154,
   LCD_Temp_Compensate_DS_S6D0154
   #ifdef __LCD_ESD_RECOVERY__   
   ,LCD_ESD_check_DS_S6D0154
   #endif 
};
#if 0 //chenduanyang 20071024 for lcd auto adapt
void LCD_FunConfig(void)
{
    MainLCD = &LCD_func_DS_S6D0154;
}
#endif

⌨️ 快捷键说明

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