📄 t118_lcd.c
字号:
1,0x94,0xD7,
1,0x94,0xD8,
1,0x94,0xD8,
1,0x94,0xD9,
1,0x94,0xDA,
1,0x94,0xDB,
1,0x94,0xDC,
1,0x94,0xDD,
1,0x94,0xDE,
1,0x94,0xDF,
1,0x94,0xE0,
1,0x94,0xE1,
1,0x94,0xE2,
1,0x94,0xE3,
1,0x94,0xE5,
1,0x94,0xE5,
1,0x94,0xE6,
1,0x94,0xE7,
1,0x94,0xE8,
1,0x94,0xE9,
1,0x94,0xEA,
1,0x94,0xEB,
1,0x94,0xEC,
1,0x94,0xED,
1,0x94,0xEE,
1,0x94,0xEF,
1,0x94,0xF0,
1,0x94,0xF1,
1,0x94,0xF2,
1,0x94,0xF3,
1,0x94,0xF4,
1,0x94,0xF4,
1,0x94,0xF5,
1,0x94,0xF6,
1,0x94,0xF7,
1,0x94,0xF7,
1,0x94,0xF8,
1,0x94,0xF9,
1,0x94,0xFA,
1,0x94,0xFA,
1,0x94,0xFB,
1,0x94,0xFC,
1,0x94,0xFC,
1,0x94,0xFD,
1,0x94,0xFE,
1,0x94,0xFF,
};
const BYTE t118_mode_pal_50[]=
{
1,0x74,0x4A,
1,0x75,0x26,
1,0x40,0x13,
1,0x85,0x0E,
1,0xB2,0x13,//10
1,0xB8,0xE7,
1,0x90,0x06,
1,0x91,0x07,
1,0xE2,0x11,
};
const BYTE t118_mode_pal_54_A[]=
{
1,0x18,0x2A,
1,0x19,0x09,
1,0x1A,0x8A,
1,0x1B,0xCB,
1,0x30,0x34,
1,0x74,0x4A,
};
const BYTE t118_mode_pal_54_B[]=
{
1,0x03,0x04,
1,0x82,0x52,
1,0x01,0x04,
};
const BYTE t118_mode_ntsc_50[]=
{
1,0x74,0x00,
1,0x75,0x20,
1,0x40,0x11,
1,0x85,0x11,
1,0xB2,0x11,
1,0xB8,0x70,
1,0x90,0x06,
1,0x91,0x07,
1,0xE2,0x11,
};
const BYTE t118_mode_ntsc_54_A[]=
{
1,0x18,0x21,
1,0x19,0xF0,
1,0x1A,0x7C,
1,0x1B,0x0F,
1,0x30,0x2C,
};
const BYTE t118_mode_ntsc_54_B[]=
{
1,0x03,0x03,
1,0x82,0x42,
1,0x01,0x03,
};
const BYTE t118_mode_ntsc[]=
{
1,0xE1,0xF4,
};
const BYTE t118_overturn_A[]=
{
1,0xE1,0xF4,
};
const BYTE t118_overturn_B[]=
{
1,0xE1,0xA8,
};
const BYTE t118_type_169[]=
{
//1,0x11,0X1D,
//1,0X18,0X05,
//1,0X19,0X0E,
1,0x73,0x2E,
1,0x73,0x2E,
1,0xD8,0x00,
1,0xDC,0xE0,
1,0xE2,0x11,
};
const BYTE t118_type_43[]=
{
//1,0x11,0X1D,
//1,0X18,0X05,
//1,0X19,0X0E,
1,0x73,0x3A,
1,0x73,0x3A,
1,0xD8,0x35,
1,0xDC,0x81,
1,0xE2,0x11,
};
const BYTE t118_cvbs[]=
{
1,0x11,0x1C,
1,0x18,0x00,
1,0x19,0x0C,
};
const BYTE t118_yc[]=
{
1,0x11,0x1D,
1,0x18,0x05,
1,0x19,0x0E,
1,0x90,0x06,
1,0x91,0x07,
};
const BYTE ark1819_cvbs_init[]=
{
1,0x19,0x08,
};
//pal e3
const BYTE ark1819_169_43_pal[]=
{
1,0x19,0x08,
};
const BYTE ark1819_43_ntsc_cvbs[]=
{
1,0x19,0x08,
};
//ntsc ff
const BYTE ark1819_169_43_ntsc[]=
{
1,0x19,0x08,
};
///////////////////////
const BYTE ark1819_43_169_pal[]=
{
1,0x19,0x08,
};
const BYTE ark1819_43_169_ntsc[]=
{
1,0x19,0x08,
};
const BYTE ark1829_cvbs_pal[]=
{
1,0x19,0x00,
};
const BYTE ark_1829_table[]=
{
1,0x19,0x00,
};
/*
typedef struct lcd_state_save{
BYTE lcd_tv_mode;//pal/ntsc
BYTE lcd_tv_type;//16:9/4:3
BYTE lcd_tv_overturn;
BYTE lcd_tv_bright;
BYTE lcd_tv_contrast;
BYTE lcd_tv_saturation;
BYTE lcd_tv_sharpness;
BYTE lcd_tv_hue;
}t118_state_save;
*/
extern int ReadFromI2c(int iDeviceAddr,int iAddr,BYTE *bBuffer,int len);
extern int WriteToI2c(int iDeviceAddr,int iAddr,BYTE *bData,int len);
void SET_T118_LCD(BYTE *t118_table,BYTE main_addr)
{
BYTE *pReadData = t118_table;
BYTE dataNum, subAddr;
while ((dataNum = *pReadData++) != 0) //0xff
{
subAddr = *pReadData++;
WriteToI2c(main_addr,subAddr, pReadData , dataNum);
pReadData += dataNum;
// delay_1ms(3);
}
}
#if 0//def SUPPORT_T118_LCD
lcd_tv_avin = 0;
lcd_tv_avin_save = 1;
EXTERN BYTE lcd_tv_mode;//pal/ntsc
EXTERN BYTE lcd_tv_mode_save;//pal/ntsc
EXTERN BYTE lcd_tv_type;//16:9/4:3
EXTERN BYTE lcd_tv_type_save;//16:9/4:3
EXTERN BYTE lcd_tv_overturn;
EXTERN BYTE lcd_tv_overturn_save;
EXTERN BYTE lcd_tv_bright;
EXTERN BYTE lcd_tv_bright_save;
EXTERN BYTE lcd_tv_contrast;
EXTERN BYTE lcd_tv_contrast_save;
EXTERN BYTE lcd_tv_saturation;
EXTERN BYTE lcd_tv_saturation_save;
EXTERN BYTE lcd_tv_sharpness;
EXTERN BYTE lcd_tv_sharpness_save;
EXTERN BYTE lcd_tv_hue;
EXTERN BYTE lcd_tv_hue_save;
#endif
void T118_LCD_INITIAL(void)
{
SET_T118_LCD(t118_50_init,0x50);
SET_T118_LCD(t118_52_init,0x52);
SET_T118_LCD(t118_54_init,0x54);
SET_T118_LCD(t118_gamma_table,0x50);
}
//extern static inline void tv_dacoff(unsigned v);
void T118_tv_avin_setting(void)
{
BYTE temp_datu1;
if(lcd_tv_avin)
{
printf_w("\n**************************** T118_tv_avin_setting t118_cvbs\n");
lcd_tv_avin_save = lcd_tv_avin;
tv_dacoff(0xff);
SET_T118_LCD(t118_cvbs,0x50);
ReadFromI2c(0x54, 0x00,&temp_datu1,1);
temp_datu1 = temp_datu1&0xFE;
WriteToI2c(0x54,0x00, &temp_datu1 , 1);
AVIN_DVD_display(0);
}
else
{
printf_w("\n**************************** T118_tv_avin_setting t118_yc\n");
lcd_tv_avin_save = lcd_tv_avin;
tv_dacoff(0x00);
SET_T118_LCD(t118_yc,0x50);
ReadFromI2c(0x54, 0x00,&temp_datu1,1);
temp_datu1 = temp_datu1|0X01;
WriteToI2c(0x54,0x00, &temp_datu1 , 1);
AVIN_DVD_display(1);
}
}
void T118_tv_mode_setting(void)
{
BYTE temp_datu;
if(lcd_tv_mode)
{
lcd_tv_mode_save = lcd_tv_mode;
printf_w("\nT118_tv_mode_setting--->>>pal\n");
ReadFromI2c(0x54, 0x00,&temp_datu,1);
temp_datu = (temp_datu&0xC1)|0x32;
WriteToI2c(0x54,0x00, &temp_datu , 1);
SET_T118_LCD(t118_mode_pal_54_A,0x54);
SET_T118_LCD(t118_mode_pal_50,0x50);
SET_T118_LCD(t118_mode_pal_54_B,0x54);
}
else
{
lcd_tv_mode_save = lcd_tv_mode;
printf_w("\nT118_tv_mode_setting--->>>ntsc\n");
ReadFromI2c(0x54, 0x00,&temp_datu,1);
temp_datu = (temp_datu&0xC1);
WriteToI2c(0x54,0x00, &temp_datu , 1);
SET_T118_LCD(t118_mode_ntsc_54_A,0x54);
SET_T118_LCD(t118_mode_ntsc_50,0x50);
SET_T118_LCD(t118_mode_ntsc_54_B,0x54);
}
}
void T118_tv_type_setting(void)
{
if(osd_screen_mode)
{
printf_w("\n&&&&&&&&&&&&&&& T118_tv_type_setting 4:3\n");
SET_T118_LCD(t118_type_43,0x50);
}
else
{
printf_w("\n&&&&&&&&&&&&&&& T118_tv_type_setting 16:9\n");
SET_T118_LCD(t118_type_169,0x50);
}
}
void T118_tv_overturn_setting(void)
{
if(osd_overturn)
{
SET_T118_LCD(t118_overturn_A,0x50);
}
else
{
SET_T118_LCD(t118_overturn_B,0x50);
}
}
#ifdef RECODE_T118_STATUS
void T118_osd_default_setting(void)
{
BYTE temp_date2 = 50;
WriteToI2c(0xa0, OSD_BRIGHT_ADDR,&temp_date2, 1);
WriteToI2c(0xa0, OSD_CONTRAST_ADDR,&temp_date2, 1);
WriteToI2c(0xa0, OSD_COLOR_ADDR,&temp_date2 ,1);
temp_date2 = 0;
WriteToI2c(0xa0, OSD_SHAPPNESS_ADDR,&temp_date2, 1);
WriteToI2c(0xa0, OSD_SCREEN_MODE_ADDR,&temp_date2, 1);
WriteToI2c(0xa0, OSD_OVERTURN_ADDR,&temp_date2, 1);
}
void Load_T118_OSD_setting(void)
{
ReadFromI2c(0xa0, OSD_BRIGHT_ADDR, &osd_bright, 1);
ReadFromI2c(0xa0, OSD_CONTRAST_ADDR, &osd_contrast, 1);
ReadFromI2c(0xa0, OSD_COLOR_ADDR, &osd_color, 1);
ReadFromI2c(0xa0, OSD_SHAPPNESS_ADDR, &osd_shappness, 1);
ReadFromI2c(0xa0, OSD_SCREEN_MODE_ADDR, &osd_screen_mode, 1);
ReadFromI2c(0xa0, OSD_OVERTURN_ADDR, &osd_overturn, 1);
}
#endif
void T118_lcd_reset(void)
{
BYTE temp_date = 1;
WriteToI2c(0x54, 0x3f,&temp_date, 1);
delay_1ms(3);
temp_date = 0;
WriteToI2c(0x54, 0x3f,&temp_date, 1);
}
#endif
void T118_avin_signal_det(void)
{
//printf_w("\n*********************** T118_avin_signal_det\n");
BYTE temp_datu1;
if(lcd_tv_avin)
{
ReadFromI2c(0x54, 0x3A,&temp_datu1,1);//signal det
if(avin_dvd_status_save != temp_datu1)
{
avin_dvd_status_save = temp_datu1;
if(temp_datu1&0x01)
{//no signal
printf_w("\n************** no signal\n");
temp_datu1 = 0x00;
WriteToI2c(0x50,0x90, &temp_datu1 , 1);
temp_datu1 = 0x87;
WriteToI2c(0x50,0x91, &temp_datu1 , 1);
}
else
{//have signal
printf_w("\n************** have signal\n");
temp_datu1 = 0x06;
WriteToI2c(0x50,0x90, &temp_datu1 , 1);
temp_datu1 = 0x07;
WriteToI2c(0x50,0x91, &temp_datu1 , 1);
}
}
}
}
void T118_avin_PAL_NTSC_set(void)
{
//printf_w("\n*********************** T118_avin_PAL_NTSC_set\n");
BYTE temp_datu2;
if(lcd_tv_avin)
{
ReadFromI2c(0x54, 0x3C,&temp_datu2,1);//avin pal/ntsc det
if(avin_dvd_pal_ntsc!= temp_datu2)
{
printf_w("\n*******************temp_datu2 %x \n",temp_datu2&0x05);
avin_dvd_pal_ntsc = temp_datu2;
if((temp_datu2&0x05) == 0x00)//ntsc
{
lcd_tv_mode = 0;
}
else if((temp_datu2&0x05)==0x04)//pal
{
lcd_tv_mode = 1;
}
T118_tv_mode_setting();
}
}
}
void T118_avin_dvd_switch(void)
{
//printf_w("\n*********************** T118_avin_dvd_switch\n");
if(lcd_tv_avin != GPIO_I_GET(AVIN_SW))
{
lcd_tv_avin = GPIO_I_GET(AVIN_SW);
if(lcd_tv_avin)
{//avin
printf_w("\n&&&&&&&&&&&&&&&&& switch to avin\n");
bDoorStatus = DOOR_OPEN;
GPIO_DEMUTE() ;
ircmd_eject_toggle();
stop_loader();
ircmd_trayout();
}
else
{//dvd
printf_w("\n&&&&&&&&&&&&&&&&& switch to dvd\n");
if(tv_format == 0)
{
lcd_tv_mode=0;
lcd_tv_mode_save=1;
T118_tv_mode_setting();
}
else
{
lcd_tv_mode=1;
lcd_tv_mode_save=0;
T118_tv_mode_setting();
}
}
T118_tv_avin_setting();
}
T118_avin_signal_det();
T118_avin_PAL_NTSC_set();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -