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

📄 天马2。4+1505c initial code.txt

📁 FT1505C 配上海天马2。4玻璃的代码。可以应用于MTK 方案的手机屏驱动。
💻 TXT
字号:
********************************************************************************/
void LCD_EnterSleep_FT1505C(void)
{

    LCD_CtrlWrite_ILI9320(0x0007, 0x0131); // display OFF
  delayms(10); // Dis-charge capacitor power voltage   
    LCD_CtrlWrite_ILI9320(0x0007, 0x0130); // display OFF
     delayms(10); // Dis-charge capacitor power voltage
    LCD_CtrlWrite_ILI9320(0x0007, 0x0000); // display OFF


    //************* Power OFF sequence **************//
    LCD_CtrlWrite_ILI9320(0x0010, 0x0080); // SAP, BT[3:0], APE, AP, DSTB, SLP
    LCD_CtrlWrite_ILI9320(0x0011, 0x0000); // DC1[2:0], DC0[2:0], VC[2:0]
    LCD_CtrlWrite_ILI9320(0x0012, 0x0000); // VREG1OUT voltage
    LCD_CtrlWrite_ILI9320(0x0013, 0x0000); // VDV[4:0] for VCOM amplitude
    delayms(200); // Dis-charge capacitor power voltage

    LCD_CtrlWrite_ILI9320(0x0010, 0x0082); // SAP, BT[3:0], APE, AP, DSTB, SLP
}

void LCD_ExitSleep_FT1505C(void)
{

    //*************Power On sequence ******************//
     LCD_CMDWrite_ILI9320(0x0000);
  LCD_CMDWrite_ILI9320(0x0000);
   LCD_CMDWrite_ILI9320(0x0000);
    LCD_CMDWrite_ILI9320(0x0000);
    LCD_CtrlWrite_ILI9320(0x002B,0x0003);
    LCD_CtrlWrite_ILI9320(0x0000,0x0001);
	delayms(50);
    LCD_CtrlWrite_ILI9320(0x0007,0x0000);
	delayms(50);
    LCD_CtrlWrite_ILI9320(0x0012,0x0000);
	delayms(50);
    LCD_CtrlWrite_ILI9320(0x0060,0xa700);
    LCD_CtrlWrite_ILI9320(0x0008,0x0405);
  
    LCD_CtrlWrite_ILI9320(0x0010,0x02C0);
    LCD_CtrlWrite_ILI9320(0x0011,0x0047);
    delayms(50);
    LCD_CtrlWrite_ILI9320(0x0012,0x0116); //16 14
    delayms(50);
    LCD_CtrlWrite_ILI9320(0x0013,0x1900); //13 1
    LCD_CtrlWrite_ILI9320(0x0029,0x002E);//2	`
    delayms(30);
    
    
	 
    LCD_CtrlWrite_ILI9320(0x0098,0x0202);
	LCD_CtrlWrite_ILI9320(0x0010,0x12F0);
delayms(20);
      LCD_CtrlWrite_ILI9320(0x0007,0x0133);
    
    
    LCD_CtrlWrite_ILI9320(0x002b,0x000C);	
    delayms(50);
    LCD_CtrlWrite_ILI9320(0x0020,0x0000);
    LCD_CtrlWrite_ILI9320(0x0021,0x0000);

      }

void LCD_Partial_On_FT1505C(kal_uint16 start_page,kal_uint16 end_page)
{
}

void LCD_Partial_Off_FT1505C(void)
{
}

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

void LCD_blockClear_FT1505C(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(MAIN_LCD_18BIT_MODE) || defined(MAIN_LCD_9BIT_MODE))
    kal_uint8 r_color, g_color, b_color;

    r_color = (data&0xF800)>>10; /* transfer to RGB666 */
    g_color = (data>>5)&0x3F;
    b_color = ((data)&0x1F)<<1;
#endif

    LCD_CtrlWrite_ILI9320(0x0050, x1); 
    LCD_CtrlWrite_ILI9320(0x0051, x2); 
    LCD_CtrlWrite_ILI9320(0x0052, y1); 
    LCD_CtrlWrite_ILI9320(0x0053, y2); 
    LCD_CtrlWrite_ILI9320(0x0020, x1); 
    LCD_CtrlWrite_ILI9320(0x0021, y1); 
    LCD_CMDWrite_ILI9320(0x0022);

    for(LCD_y=y1;LCD_y<=y2;LCD_y++)
    {
        for(LCD_x=x1;LCD_x<=x2;LCD_x++)
        {
#if (defined(MAIN_LCD_8BIT_MODE))
            *((volatile unsigned char *) LCD_ILI9320_DATA_ADDR)=(kal_uint8)((data&0xFF00)>>8);
            *((volatile unsigned char *) LCD_ILI9320_DATA_ADDR)=(kal_uint8)(data&0xFF);
#elif (defined(MAIN_LCD_16BIT_MODE))
            *((volatile unsigned short *) LCD_ILI9320_DATA_ADDR)=data;
#elif (defined(MAIN_LCD_18BIT_MODE))
            *((volatile unsigned int *) LCD_ILI9320_DATA_ADDR)=(r_color<<12)|(g_color<<6)|b_color;
#elif (defined(MAIN_LCD_9BIT_MODE))
            *((volatile unsigned short *) LCD_ILI9320_DATA_ADDR)=(r_color<<6)|(g_color>>3);
            *((volatile unsigned short *) LCD_ILI9320_DATA_ADDR)=((g_color&0x07)<<6)|b_color;
#endif
        }
    }
}

void LCD_ClearAll_FT1505C(kal_uint16 data)
{
    LCD_blockClear_ILI9325(0, 0, LCD_WIDTH-1, LCD_HEIGHT-1, data);
}

void LCD_Init_FT1505C(kal_uint32 bkground, void **buf_addr)
{
    kal_uint16 background = (kal_uint16)bkground;
kal_prompt_trace(MOD_AUX, "lcd_id6 = %x!", lcd_id);
#ifdef _SUPPORT_MULTI_MAINLCD_
    kal_wap_trace(MOD_MMI, TRACE_GROUP_7, "[QJHU] lcd_id = %x!", lcd_id);
#endif /* _SUPPORT_MULTI_MAINLCD_ */

    delayms(2);
 LCD_CMDWrite_ILI9320(0x0000);
  LCD_CMDWrite_ILI9320(0x0000);
   LCD_CMDWrite_ILI9320(0x0000);
    LCD_CMDWrite_ILI9320(0x0000);
    LCD_CtrlWrite_ILI9320(0x002B,0x0003);
    LCD_CtrlWrite_ILI9320(0x0000,0x0001);
	delayms(50);
    LCD_CtrlWrite_ILI9320(0x0007,0x0000);
	delayms(50);
    LCD_CtrlWrite_ILI9320(0x0012,0x0000);
	delayms(50);
    LCD_CtrlWrite_ILI9320(0x0060,0xa700);
    LCD_CtrlWrite_ILI9320(0x0008,0x0405);
    LCD_CtrlWrite_ILI9320(0x0030,0x0101);
    LCD_CtrlWrite_ILI9320(0x0031,0x0103);
    LCD_CtrlWrite_ILI9320(0x0032,0x0505);
    LCD_CtrlWrite_ILI9320(0x0035,0x0306);
    LCD_CtrlWrite_ILI9320(0x0036,0x050B);
    LCD_CtrlWrite_ILI9320(0x0037,0x0002);
    LCD_CtrlWrite_ILI9320(0x0038,0x0200);
    LCD_CtrlWrite_ILI9320(0x0039,0x0707);
    LCD_CtrlWrite_ILI9320(0x003c,0x0000);
    LCD_CtrlWrite_ILI9320(0x003d,0x0000);
    LCD_CtrlWrite_ILI9320(0x0010,0x02C0);
    LCD_CtrlWrite_ILI9320(0x0011,0x0147);
    delayms(50);
    LCD_CtrlWrite_ILI9320(0x0012,0x0116); //16 14
    delayms(50);
    LCD_CtrlWrite_ILI9320(0x0013,0x1900); //13 1
    LCD_CtrlWrite_ILI9320(0x0029,0x002E);//2-3 2f
    delayms(30);
    LCD_CtrlWrite_ILI9320(0x0001,0x0100);
    LCD_CtrlWrite_ILI9320(0x0002,0x0700);
    LCD_CtrlWrite_ILI9320(0x0003,0x1030);
	 LCD_CtrlWrite_ILI9320(0x0061,0x0001);
	 LCD_CtrlWrite_ILI9320(0x0090,0x0010);
    LCD_CtrlWrite_ILI9320(0x0092,0x0600);
	LCD_CtrlWrite_ILI9320(0x0080,0x0000);
    LCD_CtrlWrite_ILI9320(0x0081,0x0000);
    LCD_CtrlWrite_ILI9320(0x0082,0x013F);
    LCD_CtrlWrite_ILI9320(0x0083,0x0000);
    LCD_CtrlWrite_ILI9320(0x0084,0x0000);
    LCD_CtrlWrite_ILI9320(0x0085,0x013F);
	 LCD_CtrlWrite_ILI9320(0x0050,0x0000);
    LCD_CtrlWrite_ILI9320(0x0051,0x00ef);
    LCD_CtrlWrite_ILI9320(0x0052,0x0000);
    LCD_CtrlWrite_ILI9320(0x0053,0x013f);

	 
    LCD_CtrlWrite_ILI9320(0x0098,0x0202);
	LCD_CtrlWrite_ILI9320(0x0010,0x12F0);
delayms(20);
      LCD_CtrlWrite_ILI9320(0x0007,0x0133);
    
    
   
    delayms(50);
    LCD_CtrlWrite_ILI9320(0x0020,0x0000);
    LCD_CtrlWrite_ILI9320(0x0021,0x0000);

    
   

    
   
    LCD_CtrlWrite_ILI9320(0x006a,0x0000);

    
    
    //LCD_CtrlWrite_ILI9320(0x0093,0x0003);
    //LCD_CtrlWrite_ILI9320(0x0095,0x0110);
    
    //LCD_CtrlWrite_ILI9320(0x0097,0x0000);
    //LCD_CtrlWrite_ILI9320(0x0098,0x0000);

  

    LCD_CtrlWrite_ILI9320(0x0020,0x0000);
    LCD_CtrlWrite_ILI9320(0x0021,0x0000);
    LCD_CtrlWrite_ILI9320(0x0022,0x0000);

	LCD_ClearAll_ILI9325(background);
  
}

void LCD_PWRON_FT1505C(kal_bool on)
{
    if(on)
    {
        LCD_ExitSleep_ILI9325();
    }
    else
    {
        LCD_EnterSleep_ILI9325();
    }
}

void LCD_SetContrast_FT1505C(kal_uint8 level)
{
}

void LCD_ON_FT1505C(kal_bool on)
{
    if (on)
    {
        LCD_ExitSleep_ILI9325();
    }
    else
    {
        LCD_EnterSleep_ILI9325();
    }
}

void LCD_BlockWrite_FT1505C(kal_uint16 startx,kal_uint16 starty,kal_uint16 endx,kal_uint16 endy)
{
#if (defined(MT6225) || defined(MT6226)||defined(MT6226M)||defined(MT6227)||defined(MT6228)||defined(MT6229))
    while (LCD_IS_RUNNING){};
    ASSERT(lcd_assert_fail==KAL_FALSE);
    lcd_assert_fail = KAL_TRUE;

#ifndef LCD_CMD_DMA_MODE
    ENABLE_LCD_TRANSFER_COMPLETE_INT;
    ENABLE_LCD_ROI_CTRL_CMD_FIRST;
    START_LCD_TRANSFER;
#else
    SET_LCD_CMD_PARAMETER(0,LCD_CMD,0x00);
    SET_LCD_CMD_PARAMETER(1,LCD_CMD,0x50);
    SET_LCD_CMD_PARAMETER(2,LCD_DATA,(kal_uint8)0);
    SET_LCD_CMD_PARAMETER(3,LCD_DATA,(kal_uint8)startx);

    SET_LCD_CMD_PARAMETER(4,LCD_CMD,0x00);
    SET_LCD_CMD_PARAMETER(5,LCD_CMD,0x51);
    SET_LCD_CMD_PARAMETER(6,LCD_DATA,(kal_uint8)0);
    SET_LCD_CMD_PARAMETER(7,LCD_DATA,(kal_uint8)endx);

    SET_LCD_CMD_PARAMETER(8,LCD_CMD,0x00);
    SET_LCD_CMD_PARAMETER(9,LCD_CMD,0x52);
    SET_LCD_CMD_PARAMETER(10,LCD_DATA,(kal_uint8)((starty & 0xFF00)>>8));
    SET_LCD_CMD_PARAMETER(11,LCD_DATA,(kal_uint8)(starty & 0xFF));

    SET_LCD_CMD_PARAMETER(12,LCD_CMD,0x00);
    SET_LCD_CMD_PARAMETER(13,LCD_CMD,0x53);
    SET_LCD_CMD_PARAMETER(14,LCD_DATA,(kal_uint8)((endy & 0xFF00)>>8));
    SET_LCD_CMD_PARAMETER(15,LCD_DATA,(kal_uint8)(endy & 0xFF));

     SET_LCD_CMD_PARAMETER(16,LCD_CMD,0x00);
     SET_LCD_CMD_PARAMETER(17,LCD_CMD,0x20);
     SET_LCD_CMD_PARAMETER(18,LCD_DATA,(kal_uint8)0);
     SET_LCD_CMD_PARAMETER(19,LCD_DATA,(kal_uint8)startx);
 
     SET_LCD_CMD_PARAMETER(20,LCD_CMD,0x00);
     SET_LCD_CMD_PARAMETER(21,LCD_CMD,0x00);
     SET_LCD_CMD_PARAMETER(22,LCD_CMD,0x00);
     SET_LCD_CMD_PARAMETER(23,LCD_CMD,0x00);

     SET_LCD_CMD_PARAMETER(24,LCD_CMD,0x00);
     SET_LCD_CMD_PARAMETER(25,LCD_CMD,0x21);
     SET_LCD_CMD_PARAMETER(26,LCD_DATA,(kal_uint8)((starty & 0xFF00)>>8));
     SET_LCD_CMD_PARAMETER(27,LCD_DATA,(kal_uint8)(starty & 0xFF));
 
     SET_LCD_CMD_PARAMETER(28,LCD_CMD,0x00);
     SET_LCD_CMD_PARAMETER(29,LCD_CMD,0x22);

    ENABLE_LCD_TRANSFER_COMPLETE_INT;
    SET_LCD_ROI_CTRL_NUMBER_OF_CMD(30);
    ENABLE_LCD_ROI_CTRL_CMD_FIRST;
    while (LCD_IS_RUNNING) {};
    START_LCD_TRANSFER;
#endif

    lcd_assert_fail = KAL_FALSE;
#endif
}

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

// TODO:ILI9325 Functions - Engineering mode
/********************************************************************************/
/*                           ILI9325 Functions                                  */
/*                           Engineering mode                                   */
/********************************************************************************/
kal_uint8 LCD_GetParm_FT1505C(lcd_func_type type)
{
    switch(type)
    {
        case lcd_Bais_func:
            return 1;
        case lcd_Contrast_func:
            return 1;
        case lcd_LineRate_func:
            return 1;
        case lcd_Temperature_Compensation_func:
            return 1;
        default:
            ASSERT(0);
            return 100;
    }
}

void LCD_SetBias_FT1505C(kal_uint8 *bias)
{
}

void LCD_Contrast_FT1505C(kal_uint8 *contrast)
{
}

void LCD_LineRate_FT1505C(kal_uint8 *linerate)
{
}

void LCD_Temp_Compensate_FT1505C(kal_uint8 *compensate)
{
}

⌨️ 快捷键说明

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