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

📄 wndw_vga.c

📁 TECHWELL 之tw2835 四画面合一之驱动代码,CCIR656输出,KEIL C51 平台编译,
💻 C
📖 第 1 页 / 共 5 页
字号:
//		WriteI2CWord(I2C_ID_MDIN180, MDIN180_VSYNC_START,   0x0001);
//		WriteI2CWord(I2C_ID_MDIN180, MDIN180_VACTIVE_START, 0x0027);
//		WriteI2CWord(I2C_ID_MDIN180, MDIN180_VACTIVE_END,   0x0427);
//		WriteI2CWord(I2C_ID_MDIN180, MDIN180_VSYNC_END,     0x0000);
//	}
//	// added by hulee on jul06 2006 -- end

	WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001);	/* local reg. update */
}

/*****************************************************/
/* MDIN-180 Deinterlacing Parameter Setting Function */
/*****************************************************/
void	MDIN180DeintRegSet()
{
	WriteI2CWord(I2C_ID_MDIN180, 0x502, 0x1C0F);
	WriteI2CWord(I2C_ID_MDIN180, 0x503, 0x8040);
	WriteI2CWord(I2C_ID_MDIN180, 0x504, 0x02FF);
	WriteI2CWord(I2C_ID_MDIN180, 0x505, 0x0000);
	WriteI2CWord(I2C_ID_MDIN180, 0x506, 0x4F20);
	WriteI2CWord(I2C_ID_MDIN180, 0x507, 0x00ff);
	WriteI2CWord(I2C_ID_MDIN180, 0x50A, 0x80D0);
	WriteI2CWord(I2C_ID_MDIN180, 0x50C, 0x1330);
	WriteI2CWord(I2C_ID_MDIN180, 0x50D, 0x6620);
	WriteI2CWord(I2C_ID_MDIN180, 0x50E, 0x0824);
	WriteI2CWord(I2C_ID_MDIN180, 0x512, 0x0040);
	WriteI2CWord(I2C_ID_MDIN180, 0x513, 0x0003);
	WriteI2CWord(I2C_ID_MDIN180, 0x514, 0x0855);
	WriteI2CWord(I2C_ID_MDIN180, 0x516, 0x00B3);
	WriteI2CWord(I2C_ID_MDIN180, 0x517, 0x1105);
	WriteI2CWord(I2C_ID_MDIN180, 0x51A, 0x0000);
	WriteI2CWord(I2C_ID_MDIN180, 0x51B, 0x4444);
	WriteI2CWord(I2C_ID_MDIN180, 0x51C, 0x4000);
	WriteI2CWord(I2C_ID_MDIN180, 0x51D, 0x4410);
	WriteI2CWord(I2C_ID_MDIN180, 0x51F, 0x3C14);
	WriteI2CWord(I2C_ID_MDIN180, 0x520, 0x00FF);
	WriteI2CWord(I2C_ID_MDIN180, 0x521, 0x3400);
	WriteI2CWord(I2C_ID_MDIN180, 0x522, 0x3030);
	WriteI2CWord(I2C_ID_MDIN180, 0x523, 0x0038);
	WriteI2CWord(I2C_ID_MDIN180, 0x525, 0x14FF);
	WriteI2CWord(I2C_ID_MDIN180, 0x526, 0xAD80);	//modified by PNS 060314
	WriteI2CWord(I2C_ID_MDIN180, 0x527, 0xF01C);
	WriteI2CWord(I2C_ID_MDIN180, 0x529, 0xCCA8);
	WriteI2CWord(I2C_ID_MDIN180, 0x52B, 0x0010);
	WriteI2CWord(I2C_ID_MDIN180, 0x530, 0x0000);
	WriteI2CWord(I2C_ID_MDIN180, 0x532, 0x8A1E);
	WriteI2CWord(I2C_ID_MDIN180, 0x535, 0xBF9C);
	WriteI2CWord(I2C_ID_MDIN180, 0x536, 0x0000);
	WriteI2CWord(I2C_ID_MDIN180, 0x537, 0x321E);
	WriteI2CWord(I2C_ID_MDIN180, 0x538, 0x50B0);
	WriteI2CWord(I2C_ID_MDIN180, 0x539, 0x1212);
	WriteI2CWord(I2C_ID_MDIN180, 0x53A, 0x0203);
	WriteI2CWord(I2C_ID_MDIN180, 0x53B, 0x8874);
	WriteI2CWord(I2C_ID_MDIN180, 0x53E, 0x8A19);
	
//	if (InputResol == IN_720x480i) {
	if(b_cmn_jp_vdo == VDO_NTSC){
		WriteI2CWord(I2C_ID_MDIN180, 0x518, 0x00A0);	//modified by PNS 060314
		WriteI2CWord(I2C_ID_MDIN180, 0x50B, 0x0028); 
		
		WriteI2CWord(I2C_ID_MDIN180, 0x50F, 0x0D0A);
	}
//	else if (InputResol == IN_720x576i) { 
	else{
		WriteI2CWord(I2C_ID_MDIN180, 0x518, 0x00C0);
		WriteI2CWord(I2C_ID_MDIN180, 0x50B, 0x0028); 
			
		WriteI2CWord(I2C_ID_MDIN180, 0x50F, 0x080A);
	}
	
	// added by dsyang
//	if (OutputResol == OUT_640x480) {
	if(b_vga_or == VGA_OR_640x480){
//		if (InputResol == IN_720x480i) {
		if(b_cmn_jp_vdo == VDO_NTSC){
			WriteI2CWord(I2C_ID_MDIN180, 0x500, 0x4D12);	//modified by PNS 060314
			WriteI2CWord(I2C_ID_MDIN180, 0x501, 0x3B14);	//modified by PNS 060314
			WriteI2CWord(I2C_ID_MDIN180, 0x508, 0x0028);	//modified by PNS 060314
			WriteI2CWord(I2C_ID_MDIN180, 0x509, 0x10CA);	//modified by PNS 060314
			WriteI2CWord(I2C_ID_MDIN180, 0x520, 0x00FF);	//modified by PNS 060314
			WriteI2CWord(I2C_ID_MDIN180, 0x524, 0x0F88);	//modified by PNS 060314
			WriteI2CWord(I2C_ID_MDIN180, 0x528, 0x0843);	//modified by PNS 060314
			WriteI2CWord(I2C_ID_MDIN180, 0x529, 0xCCA8);	//modified by PNS 060314
			WriteI2CWord(I2C_ID_MDIN180, 0x52A, 0x10DC);	//modified by PNS 060314
			WriteI2CWord(I2C_ID_MDIN180, 0x531, 0xA000);	//modified by PNS 060314
			WriteI2CWord(I2C_ID_MDIN180, 0x53C, 0x0A0A);	//modified by PNS 060314
			WriteI2CWord(I2C_ID_MDIN180, 0x53D, 0x2F3D);	//modified by PNS 060314
		}
//		else if (InputResol == IN_720x576i) {
		else{
			WriteI2CWord(I2C_ID_MDIN180, 0x500, 0x4D16);
			WriteI2CWord(I2C_ID_MDIN180, 0x501, 0x3B18);
			WriteI2CWord(I2C_ID_MDIN180, 0x508, 0x0028);
			WriteI2CWord(I2C_ID_MDIN180, 0x509, 0x14CF);
			WriteI2CWord(I2C_ID_MDIN180, 0x520, 0x007F);
			WriteI2CWord(I2C_ID_MDIN180, 0x524, 0x0088);
			WriteI2CWord(I2C_ID_MDIN180, 0x528, 0x0843);
			WriteI2CWord(I2C_ID_MDIN180, 0x529, 0xCC40);
			WriteI2CWord(I2C_ID_MDIN180, 0x52A, 0x105C);  // 0x10DC); // modified by hulee jul22 2006
			WriteI2CWord(I2C_ID_MDIN180, 0x531, 0x5000);
			WriteI2CWord(I2C_ID_MDIN180, 0x53C, 0x0A0A);
			WriteI2CWord(I2C_ID_MDIN180, 0x53D, 0x2F34);  // 0x2F3D); // modified by hulee jul22 2006
		}
	} 
//	else if (OutputResol == OUT_800x600) {
	else{
		WriteI2CWord(I2C_ID_MDIN180, 0x500, 0x0D16);
		WriteI2CWord(I2C_ID_MDIN180, 0x501, 0x3B18);
		WriteI2CWord(I2C_ID_MDIN180, 0x508, 0x0028);
		WriteI2CWord(I2C_ID_MDIN180, 0x509, 0x10CA);
		WriteI2CWord(I2C_ID_MDIN180, 0x520, 0x07F);
		WriteI2CWord(I2C_ID_MDIN180, 0x524, 0x0088);
		WriteI2CWord(I2C_ID_MDIN180, 0x528, 0x0A43);
		WriteI2CWord(I2C_ID_MDIN180, 0x529, 0xCC28);
		WriteI2CWord(I2C_ID_MDIN180, 0x52A, 0x105C);  // 0x10DC); // modified by hulee jul22 2006
		WriteI2CWord(I2C_ID_MDIN180, 0x531, 0xA12C);
		WriteI2CWord(I2C_ID_MDIN180, 0x53C, 0x0A0A);
		WriteI2CWord(I2C_ID_MDIN180, 0x53D, 0x2F34);  // 0x2F3D); // modified by hulee jul22 2006
	}
//	// added by hulee on jul20 2006 -- start
//	else if (OutputResol == OUT_720x480P) {
//		WriteI2CWord(I2C_ID_MDIN180, 0x500, 0x0D16);
//		WriteI2CWord(I2C_ID_MDIN180, 0x501, 0x3B18);
//		WriteI2CWord(I2C_ID_MDIN180, 0x508, 0x0028);
//		WriteI2CWord(I2C_ID_MDIN180, 0x509, 0x10CA);
//		WriteI2CWord(I2C_ID_MDIN180, 0x520, 0x07F);
//		WriteI2CWord(I2C_ID_MDIN180, 0x524, 0x0088);
//		WriteI2CWord(I2C_ID_MDIN180, 0x528, 0x0A43);
//		WriteI2CWord(I2C_ID_MDIN180, 0x529, 0xCC28);
//		WriteI2CWord(I2C_ID_MDIN180, 0x52A, 0x10DC);
//		WriteI2CWord(I2C_ID_MDIN180, 0x531, 0xA12C);
//		WriteI2CWord(I2C_ID_MDIN180, 0x53C, 0x0A0A);
//		WriteI2CWord(I2C_ID_MDIN180, 0x53D, 0x2F3D);
//	}
//	// added by hulee on jul20 2006 -- end	
//	// added by hulee on jul06 2006 -- start
//	else if (OutputResol == OUT_1024x768) {
//		WriteI2CWord(I2C_ID_MDIN180, 0x500, 0x0D16);
//		WriteI2CWord(I2C_ID_MDIN180, 0x501, 0x3B18);
//		WriteI2CWord(I2C_ID_MDIN180, 0x508, 0x0028);
//		WriteI2CWord(I2C_ID_MDIN180, 0x509, 0x10CA);
//		WriteI2CWord(I2C_ID_MDIN180, 0x520, 0x07F);
//		WriteI2CWord(I2C_ID_MDIN180, 0x524, 0x0088);
//		WriteI2CWord(I2C_ID_MDIN180, 0x528, 0x0A43);
//		WriteI2CWord(I2C_ID_MDIN180, 0x529, 0xCC28);
//		WriteI2CWord(I2C_ID_MDIN180, 0x52A, 0x105C);  // 0x10DC); // modified by hulee jul22 2006
//		WriteI2CWord(I2C_ID_MDIN180, 0x531, 0xA12C);
//		WriteI2CWord(I2C_ID_MDIN180, 0x53C, 0x0A0A);
//		WriteI2CWord(I2C_ID_MDIN180, 0x53D, 0x2F34);  // 0x2F3D); // modified by hulee jul22 2006
//	}
//	else if (OutputResol == OUT_1280x1024) {
//		WriteI2CWord(I2C_ID_MDIN180, 0x500, 0x0D16);
//		WriteI2CWord(I2C_ID_MDIN180, 0x501, 0x3B18);
//		WriteI2CWord(I2C_ID_MDIN180, 0x508, 0x0028);
//		WriteI2CWord(I2C_ID_MDIN180, 0x509, 0x10CA);
//		WriteI2CWord(I2C_ID_MDIN180, 0x520, 0x07F);
//		WriteI2CWord(I2C_ID_MDIN180, 0x524, 0x0088);
//		WriteI2CWord(I2C_ID_MDIN180, 0x528, 0x0A43);
//		WriteI2CWord(I2C_ID_MDIN180, 0x529, 0xCC28);
//		WriteI2CWord(I2C_ID_MDIN180, 0x52A, 0x105C);  // 0x10DC); // modified by hulee jul22 2006
//		WriteI2CWord(I2C_ID_MDIN180, 0x531, 0xA12C);
//		WriteI2CWord(I2C_ID_MDIN180, 0x53C, 0x0A0A);
//		WriteI2CWord(I2C_ID_MDIN180, 0x53D, 0x2F34);  // 0x2F3D); // modified by hulee jul22 2006
//	}
//	// added by hulee on jul06 2006 -- end

	WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001);	/* local reg. update */
}

/******************************************************/
/* MDIN-180 OutputSync reset Function                 */
/* for controlling fixed phase btw input & outpt sync */
/******************************************************/
void	MDIN180SyncReset()
{
	WriteI2CWord(I2C_ID_MDIN180, MDIN180_OUTPUT_SYNC_RESET, 0x0005);
	WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001);
	
	WriteI2CWord(I2C_ID_MDIN180, MDIN180_OUTPUT_SYNC_RESET, 0x0005);
	WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001);
	WriteI2CWord(I2C_ID_MDIN180, MDIN180_OUTPUT_SYNC_RESET, 0x1005);
	WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001);
}

/*******************************************/
/* MDIN-180 Surface Filter Enable Function */
/*******************************************/
void	MDIN180SurfaceFltEn()
{
	WriteI2CWord(I2C_ID_MDIN180, MDIN180_SURFACE_FLT0,    0x0100);
	WriteI2CWord(I2C_ID_MDIN180, MDIN180_SURFACE_FLT1,    0x0080);
	WriteI2CWord(I2C_ID_MDIN180, MDIN180_SURFACE_FLT2,    0x0080);
	WriteI2CWord(I2C_ID_MDIN180, MDIN180_SURFACE_FLT3,    0x0080);
	WriteI2CWord(I2C_ID_MDIN180, MDIN180_SURFACE_FLT_ENABLE,    0x0001);
	WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001);
}

/*******************************************/
/* MDIN-180 Peaking Filter Enable Function */
/* for SD input, Center Freq: 3.5MHz       */
/*******************************************/
void	MDIN180PeakFltSDEn(void)
{
	WriteI2CWord(I2C_ID_MDIN180, MDIN180_H_PEAKING_FLT7, 0x0);
	WriteI2CWord(I2C_ID_MDIN180, MDIN180_H_PEAKING_FLT6, 0x0);
	WriteI2CWord(I2C_ID_MDIN180, MDIN180_H_PEAKING_FLT5, 0x0);
	WriteI2CWord(I2C_ID_MDIN180, MDIN180_H_PEAKING_FLT4, 0x0);
	WriteI2CWord(I2C_ID_MDIN180, MDIN180_H_PEAKING_FLT3, 0x0);
	WriteI2CWord(I2C_ID_MDIN180, MDIN180_H_PEAKING_FLT2, 0x700);
	WriteI2CWord(I2C_ID_MDIN180, MDIN180_H_PEAKING_FLT1, 0x0);
	WriteI2CWord(I2C_ID_MDIN180, MDIN180_H_PEAKING_FLT0, 0x200);

	WriteI2CWord(I2C_ID_MDIN180, MDIN180_H_PEAKING_FLT_CTRL, 0x1000); 	/* Sharpness 0 */
	WriteI2CWord(I2C_ID_MDIN180, MDIN180_H_PEAKING_FLT_ENABLE, 0x0001);
			
	WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001);		/* local reg. update */
}

/*****************************************/
/* MDIN-180 Croma Filter Enable Function */
/*****************************************/
void MDIN180CromaFltEn(void)
{
	WriteI2CWord(I2C_ID_MDIN180, MDIN180_COLOR_ENH_FLT_ENABLE, 0x0001);
	WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001);		/* local reg. update */
}

///*************************************/
///* MDIN-180 YCbCr444 Output Function */
///*************************************/
//void	MDIN180Yuv444Out(void)
//{
//	/* Output CSC setting for YUV output */
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF0, 0x0200);
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF1, 0x0000);
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF2, 0x0000);
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF3, 0x0000);
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF4, 0x0200);
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF5, 0x0000);
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF6, 0x0000);
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF7, 0x0000);
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF8, 0x0200);
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_OFFSET_Y, 0x0000);
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_CTRL, 0x01dc);
//
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_BLACK_LEVEL_CTRL, 0x0080);
//
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_OUT_CTRL, 0x0048);			/* YCbCr 444 output */
//	MDIN180CromaFltEn();
//
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001);		/* local reg. update */
//}
//
///*************************************/
///* MDIN-180 YCbCr422 Output Function */
///*************************************/
//void	MDIN180Yuv422Out(void)
//{
//	/* Output CSC setting for YUV output */
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF0, 0x0200);
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF1, 0x0000);
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF2, 0x0000);
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF3, 0x0000);
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF4, 0x0200);
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF5, 0x0000);
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF6, 0x0000);
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF7, 0x0000);
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF8, 0x0200);
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_OFFSET_Y, 0x0000);
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_CTRL, 0x01dc);
//
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_BLACK_LEVEL_CTRL, 0x0080);
//
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_OUT_CTRL, 0x0049);			/* YCbCr 422 output */
//
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_LOCAL_REG_UPDATE, 0x0001);		/* local reg. update */
//}
//
///***********************************/
///* MDIN-180 RGB HD Output Function */
///***********************************/
//void	MDIN180RgbHdOut(void)
//{
//	/* Output CSC setting for RGB HD output */
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF0, 0x0200);	
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF1, 0x0FA0);	
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF2, 0x0F10);
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF3, 0x0200);
//	WriteI2CWord(I2C_ID_MDIN180, MDIN180_CSC_COEF4, 0x03B4);
//	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, 0x0324);	
//
//	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 */
//}

⌨️ 快捷键说明

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