📄 wndw_vga.c
字号:
/***********************************/
/* MDIN-180 RGB SD Output Function */
/***********************************/
void MDIN180RgbSdOut(void)
{
/* Output CSC setting for RGB SD output */
WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF0, 0x0200);
WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF1, 0x0F50);
WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF2, 0x0E94);
WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF3, 0x0200);
WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF4, 0x038C);
WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF5, 0x0000);
WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF6, 0x0200);
WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF7, 0x0000);
WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF8, 0x02CC);
WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_OFFSET_Y, 0x0000);
WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_CTRL, 0x01C4);
WriteI2CWord(I2C_ID_MDIN180, MDIN180_BLACK_LEVEL_CTRL, 0x1010);
WriteI2CWord(I2C_ID_MDIN180, MDIN180_OUT_CTRL, 0x0008); /* RGB output */
MDIN180CromaFltEn();
WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001); /* local reg. update */
}
///*********************************/
///* MDIN-180 YPbPr Input Function */
///*********************************/
//void MDIN180YPbPrIn(void)
//{
// /* YPbPr to YCbCr Matrix (CCIR) */
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_COEF0, 0x0200); /* c0 : 0x080 ( 1.000) */
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_COEF1, 0x0034); /* c1 : 0x00D ( 0.102) */
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_COEF2, 0x0064); /* c2 : 0x019 ( 0.196) */
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_COEF3, 0x0000); /* c3 : 0x000 ( 0.000) */
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_COEF4, 0x01FC); /* c4 : 0x07F ( 0.991) */
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_COEF5, 0x0FC8); /* c5 : 0x3F2 (-0.111) */
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_COEF6, 0x0000); /* c6 : 0x000 ( 0.000) */
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_COEF7, 0x0FDC); /* c7 : 0x3F7 (-0.073) */
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_COEF8, 0x01F8); /* c8 : 0x07E ( 0.988) */
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_CTRL, 0x00DA);
//
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001); /* local reg. update */
//}
//
///**********************************/
///* MDIN-180 RGB SD Input Function */
///**********************************/
//void MDIN180RgbSdIn(void)
//{
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_COEF0, 0x012C); /* c0 : 0x04B */
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_COEF1, 0x003C); /* c1 : 0x00F */
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_COEF2, 0x0098); /* c2 : 0x026 */
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_COEF3, 0x0F58); /* c3 : 0x3D6 */
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_COEF4, 0x0100); /* c4 : 0x040 */
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_COEF5, 0x0FA8); /* c5 : 0x3EA */
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_COEF6, 0x0F28); /* c6 : 0x3CA */
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_COEF7, 0x0FD8); /* c7 : 0x3F6 */
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_COEF8, 0x0100); /* c8 : 0x040 */
//
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_CTRL, 0x0018);
//
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001); /* local reg. update */
//}
//
///**********************************/
///* MDIN-180 RGB HD Input Function */
///**********************************/
//void MDIN180RgbHdIn(void)
//{
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_COEF0, 0x0170); /* c0 : 0x05C */
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_COEF1, 0x0024); /* c1 : 0x009 */
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_COEF2, 0x006C); /* c2 : 0x01B */
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_COEF3, 0x0F38); /* c3 : 0x3CE */
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_COEF4, 0x0100); /* c4 : 0x040 */
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_COEF5, 0x0FC4); /* c5 : 0x3F1 */
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_COEF6, 0x0F18); /* c6 : 0x3C6 */
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_COEF7, 0x0FE8); /* c7 : 0x3FA */
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_COEF8, 0x0100); /* c8 : 0x040 */
//
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_F_CTRL, 0x0018);
//
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001); /* local reg. update */
//}
/**************************************/
/* MDIN-180 Output Sync Ctrl Function */
/**************************************/
void MDIN180OutputCtrl(void)
{
MDIN180RgbSdOut();
WriteI2CWord(I2C_ID_MDIN180, MDIN180_OUT_SYNC_CTRL, 0x0200); /* ouput sync polarity = low */
WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001); /* local reg. update */
}
///********************************************************/
///* MDIN-180 Black/White Level Extention Enable Function */
///********************************************************/
//void BwExtDis()
//{
//
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_ENABLE, 0x0000);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001);
//}
//
//
//void BwExtEn_noblack()
//{
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_X0_POS, 0x0000);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_X1_POS, 0x0080);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_X2_POS, 0x0380);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P0_OFFSET, 0x0000);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P1_OFFSET, 0x0080);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P2_OFFSET, 0x03C0);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P0_SLOP, 0x0400);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P1_SLOP, 0x0455);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P2_SLOP, 0x0200);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_ENABLE, 0x0001);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001);
//}
//
//void BwExtEn_90black()
//{
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_X0_POS, 0x0000);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_X1_POS, 0x008E);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_X2_POS, 0x0380);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P0_OFFSET, 0x0000);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P1_OFFSET, 0x0080);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P2_OFFSET, 0x03C0);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P0_SLOP, 0x0399);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P1_SLOP, 0x0469);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P2_SLOP, 0x0200);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_ENABLE, 0x0001);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001);
//}
//
//void BwExtEn_85black()
//{
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_X0_POS, 0x0000);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_X1_POS, 0x0096);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_X2_POS, 0x0380);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P0_OFFSET, 0x0000);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P1_OFFSET, 0x0080);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P2_OFFSET, 0x03C0);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P0_SLOP, 0x0366);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P1_SLOP, 0x0476);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P2_SLOP, 0x0200);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_ENABLE, 0x0001);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001);
//}
//
//void BwExtEn_80black()
//{
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_X0_POS, 0x0000);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_X1_POS, 0x00A0);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_X2_POS, 0x0380);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P0_OFFSET, 0x0000);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P1_OFFSET, 0x0080);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P2_OFFSET, 0x03C0);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P0_SLOP, 0x0333);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P1_SLOP, 0x0485);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P2_SLOP, 0x0200);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_ENABLE, 0x0001);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001);
//}
//
//void BwExtEn_75black()
//{
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_X0_POS, 0x0000);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_X1_POS, 0x00AA);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_X2_POS, 0x0380);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P0_OFFSET, 0x0000);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P1_OFFSET, 0x0080);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P2_OFFSET, 0x03C0);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P0_SLOP, 0x0300);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P1_SLOP, 0x0495);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P2_SLOP, 0x0200);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_ENABLE, 0x0001);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001);
//}
//
//void BwExtEn_70black()
//{
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_X0_POS, 0x0000);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_X1_POS, 0x00B6);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_X2_POS, 0x0380);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P0_OFFSET, 0x0000);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P1_OFFSET, 0x0080);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P2_OFFSET, 0x03C0);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P0_SLOP, 0x02CC);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P1_SLOP, 0x04A9);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P2_SLOP, 0x0200);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_ENABLE, 0x0001);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001);
//}
//
//void BwExtEn_60black()
//{
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_X0_POS, 0x0000);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_X1_POS, 0x00D5);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_X2_POS, 0x0380);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P0_OFFSET, 0x0000);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P1_OFFSET, 0x0080);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P2_OFFSET, 0x03C0);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P0_SLOP, 0x0266);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P1_SLOP, 0x04DF);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P2_SLOP, 0x0200);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_ENABLE, 0x0001);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001);
//}
//
//void BwExtEn_50black()
//{
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_X0_POS, 0x0000);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_X1_POS, 0x0080);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_X2_POS, 0x0380);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P0_OFFSET, 0x0000);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P1_OFFSET, 0x0040);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P2_OFFSET, 0x03C0);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P0_SLOP, 0x0200);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P1_SLOP, 0x04AB);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_P2_SLOP, 0x0200);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_BW_EXT_ENABLE, 0x0001);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001);
//}
//
///************************************************************/
///* MDIN-180 Luminance Transient Improvement Enable Function */
///************************************************************/
//void MDIN180LTIEn()
//{
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_LTI_CTRL1, 0x02F9);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_LTI_CTRL2, 0x4018);
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001);
//}
/**************************************************************/
/* MDIN-180 Chrominance Transient Improvement Enable Function */
/**************************************************************/
void MDIN180CTIEn()
{
WriteI2CWord(I2C_ID_MDIN180, MDIN180_CTI_B_CTRL1, 0x02F9);
WriteI2CWord(I2C_ID_MDIN180, MDIN180_CTI_B_CTRL2, 0x4018);
WriteI2CWord(I2C_ID_MDIN180, MDIN180_CTI_R_CTRL1, 0x02F9);
WriteI2CWord(I2C_ID_MDIN180, MDIN180_CTI_R_CTRL2, 0x4018);
WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001);
}
///****************************************/
///* MDIN-180 10-bit Mode Enable Function */
///****************************************/
//void MDIN180TenBitEn()
//{
// RegWriteWordFields(I2C_ID_MDIN180, MDIN180_MEM_CONFIG, 3, 1, 1);
// RegWriteWordFields(I2C_ID_MDIN180, MDIN180_MEM_CONFIG, 2, 1, 1);
// RegWriteWordFields(I2C_ID_MDIN180, MDIN180_LTI_CTRL2, 12, 1, 0);
// RegWriteWordFields(I2C_ID_MDIN180, MDIN180_CTI_B_CTRL2, 12, 1, 0);
// RegWriteWordFields(I2C_ID_MDIN180, MDIN180_CTI_R_CTRL2, 12, 1, 0);
//
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001);
//}
//
///*****************************************/
///* MDIN-180 10-bit Mode Disable Function */
///*****************************************/
//void MDIN180TenBitDis()
//{
// RegWriteWordFields(I2C_ID_MDIN180, MDIN180_MEM_CONFIG, 3, 1, 0);
// RegWriteWordFields(I2C_ID_MDIN180, MDIN180_MEM_CONFIG, 2, 1, 0);
// RegWriteWordFields(I2C_ID_MDIN180, MDIN180_LTI_CTRL2, 12, 1, 1);
// RegWriteWordFields(I2C_ID_MDIN180, MDIN180_CTI_B_CTRL2, 12, 1, 1);
// RegWriteWordFields(I2C_ID_MDIN180, MDIN180_CTI_R_CTRL2, 12, 1, 1);
//
// WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001);
//}
//
////void Delay(UWORD usCount)
////{
//// while (usCount--);
////}
////*****************************************/
//void RegWriteByteFields(U8 ubSlaveAddr, U16 usRegAddr, U8 ubBitsLPos, U8 ubBitsCnt, U8 ubBitsData)
//{
// U8 ubData;
//
// ubData = ReadI2CByte(ubSlaveAddr, usRegAddr);
// ubBitsCnt = ~(0xFF << ubBitsCnt);
// ubData &= ~(ubBitsCnt << ubBitsLPos);
// ubData |= ((ubBitsData & ubBitsCnt) << ubBitsLPos);
// WriteI2CByte(ubSlaveAddr, usRegAddr, ubData);
//}
//*****************************************/
void RegWriteWordFields(U8 ubSlaveAddr, U16 usRegAddr, U16 usBitsLPos, U16 usBitsCnt, U16 usBitsData)
{
U16 usData;
usData = ReadI2CWord(ubSlaveAddr, usRegAddr);
usBitsCnt = ~(0xFFFF << usBitsCnt);
usData &= ~(usBitsCnt << u
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -