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

📄 wndw_vga.c

📁 TECHWELL 之tw2835 四画面合一之驱动代码,CCIR656输出,KEIL C51 平台编译,
💻 C
📖 第 1 页 / 共 5 页
字号:

/***********************************/
/* 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 + -