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

📄 adv7183_reset.c

📁 BF561采集PAL制图像
💻 C
字号:
#include "main.h"

/********************************************************************************/
/***** Reset_ADV7183()														*****/
/***** Resets the Video decoder through PF2									*****/
/********************************************************************************/


// specific defines for this module. Not used anywhere else
#define tvp5150_OE_bit 2   					// ADV7183 /OE = PF2
#define tvp5150_RESET_bit 13   				// ADV7183 /reset = PF13
#define tvp5150_Lock   0x0000ffff    		// For startup locktime delay
#define tvp5150_Reset_Delay   0x04000000   	// For delay after reset


void Reset_tvp5150(void )
{ long delay_time;

	// configure OE and RESET flags as output
	*pFIO0_DIR |= (1 << tvp5150_OE_bit) | (1 << tvp5150_RESET_bit);
	ssync();

	// disable outputs
	*pFIO0_FLAG_S = (1 << tvp5150_OE_bit);	// set bit to disable ADV7183 outputs
	ssync();

	// generate reset pulse
	*pFIO0_FLAG_C = (1 << tvp5150_RESET_bit);	// clear bit to reset ADV7183 
	ssync();

	for (delay_time = 0; delay_time < tvp5150_Reset_Delay; delay_time++)
			asm("nop;");
	*pFIO0_FLAG_S = (1 << tvp5150_RESET_bit);	// set bit to re-enable ADV7183 
	ssync();

	for (delay_time = 0; delay_time < tvp5150_Reset_Delay; delay_time++)
			asm("nop;");

	// now enable outputs
	*pFIO0_FLAG_C = (1 << tvp5150_OE_bit);	// clear bit to enable ADV7183 outputs
	ssync();

	for (delay_time = 0; delay_time < tvp5150_Lock; delay_time++)
			asm("nop;");
	
}
bool Init_tvp5150(bool ISPAL)
{
	if (!I2C_Init(0x40)) return false;
	if (!I2C_Write5150(0x04, 0x00)) return false;
	if (!I2C_Write5150(0x7f, 0x07)) return false;
	if (!I2C_Write5150(0x00, 0x15)) return false;
	if (!I2C_Write5150(0x41, 0x17)) return false;
	//if (!I2C_Write5150(0xf1, 0x19)) return false;
	if (!I2C_Write5150(0x16, 0x3a)) return false;
	//if (!I2C_Write5150(0x04, 0x4e)) return false;
	if (!I2C_Write5150(0x04, 0x50)) return false;
	if (!I2C_Write5150(0x80, 0x0e)) return false;
	
	if (!I2C_Write5150(0x20, 0x50)) return false;
	if (!I2C_Write5150(0x18, 0x52)) return false;
	if (!I2C_Write5150(0xed, 0x58)) return false;
	if (!I2C_Write5150(0xc5, 0x77)) return false;
	if (!I2C_Write5150(0x93, 0x7c)) return false;
	if (!I2C_Write5150(0x00, 0x7d)) return false;
	if (!I2C_Write5150(0x48, 0xd0)) return false;
	if (!I2C_Write5150(0xa0, 0xd5)) return false;
	if (!I2C_Write5150(0xea, 0xd7)) return false;
	if (!I2C_Write5150(0x3e, 0xe4)) return false;
	if (!I2C_Write5150(0x3e, 0xe9)) return false;
	if (!I2C_Write5150(0x0f, 0xea)) return false;
	if (!I2C_Write5150(0x00, 0x0e)) return false;
	return true;
}

⌨️ 快捷键说明

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