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

📄 tvp5150.c

📁 dm270 source code
💻 C
字号:
/*
Module Name	: tvp5150.c

Functions	: TVP5150_init
    
Purpose		: 

Author		: Otis	Yu		2005/04/07

Notes		: 

*/
/*--------------------------------------------------------------------------*
*	Local header files						 							    *
*--------------------------------------------------------------------------*/
#include <system/ser270.h>
#include <system/ccdc270.h>
//#include <system/armsys270.h>
/*--------------------------------------------------------------------------*
*	Const, Macro, type definition					 					    *
*--------------------------------------------------------------------------*/
#define CMD_WAIT 0xFF
#define TVP5150_I2C_SLAVE	0xB8

/*--------------------------------------------------------------------------*
*	Local Variables Declartaion											    *
*--------------------------------------------------------------------------*/
unsigned char val_1, val_2;

/* read device ID */
Uchar TVP_5150_readID[] = {
	0x80,0x81
};
Uchar TVP_5150_initData[] = {
	0x00,0x00,
	0x03,0x6f,
	0x0d,0x47,
	0x27,0x20	
};	

/*--------------------------------------------------------------------------*
*	Brief		:	TVP5150_Init		 									*
*	Return		:	status													*
*	Description	:							    							*
*--------------------------------------------------------------------------*/
STATUS TVP5150_Init(Uint16 mode)
{	
	STATUS status=E_PASS;
   	Uint8 j, flag=0;
   	Uchar success;

   	i2cInit();
    /* otis TVP5150 device ID NO */	
    val_1=i2cReadReg((Uchar)TVP5150_I2C_SLAVE, TVP_5150_readID[0], &success);
	val_2=i2cReadReg((Uchar)TVP5150_I2C_SLAVE, TVP_5150_readID[1], &success);
	
	
    for (j = 0; j < sizeof(TVP_5150_initData); j += 2)
    {
       i2cWriteReg((Uchar)TVP5150_I2C_SLAVE,
                 TVP_5150_initData[j], TVP_5150_initData[j + 1], &success);
       flag += success;
    }
	if(flag!=0){
		status=E_INVALID_INPUT;
	}

	return status;
}

#include <system/clkc270.h>

#include <user/ccdm.h>
#include <user/ccdc.h>
#include <user/prev.h>
#include <user/osd.h>

#include <user/mem_alloc.h>

void VD_PWR(BOOL enable){
	if(enable){
		CLKC_moduleEnable(CLK_CCDC,enable);
		CLKC_moduleEnable(CLK_PREV,enable);	
	} else {
		CLKC_moduleEnable(CLK_CCDC,enable);
		CLKC_moduleEnable(CLK_PREV,enable);	
	}	
}
void DraftPreview(BOOL enable){
	OSD_winEnable( OSD_VID_WIN0, FALSE );
	PREV_enable( FALSE );
	CCDC_enable( FALSE, FALSE );
	
	CLKC_moduleSelectClockSource(CLK_CCDC, CLKC_PCLK);//CLK_CCDC,CLKC_PCLK
	
	CCDM_init  (TVP_5150, CCDM_DRAFT_MODE);
	CCDCSetMode(TVP_5150, CCDM_FINE_MODE );//CCDM_FINE_MODE
	CCDC_rec656Enable(TRUE, TRUE);
	CCDC_setSdramAddress((char *)OSD_VIDEO_WIN1_ADDR);

	PREVSetMode(TVP_5150, CCDM_FINE_MODE);
	PREV_setWriteAddr( (char*)OSD_VIDEO_WIN1_ADDR);
	OSDSetMode( OSD_VID_WIN0, VID_720x480, (char*)OSD_VIDEO_WIN1_ADDR);	//VID_720x480
	if(enable){
		OSD_winEnable( OSD_VID_WIN0, TRUE );//OSD_VID_WIN0
		CCDC_enable(TRUE, TRUE);	
		PREV_enable(TRUE);
	} else {
		OSD_winEnable( OSD_VID_WIN0, FALSE );
		CCDC_enable(FALSE, FALSE);
		PREV_enable(FALSE);
	}
}
/*
void TV_Enable(BOOL enable){
	if(enable){
		CLKC_moduleEnable(CLK_DAC, TRUE);
		VENC_dacEnable(TRUE, TRUE);
		VENC_vidOutEnable(TRUE);
	} else {
		CLKC_moduleEnable(CLK_DAC, FALSE);
		VENC_dacEnable(FALSE, FALSE);
		VENC_vidOutEnable(FALSE);		
	}
}
*/

⌨️ 快捷键说明

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