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

📄 venc270.c

📁 dm270 source code
💻 C
字号:
/*
    DM270 ARM Evaluation Software

    (c)Texas Instruments 2003
*/

/**
	\file venc270.c
	\brief Video Encoder Related APIs
*/

#include <venc270.h>
#include <busc270.h>

/**
    \brief	Set Video Encoder composite output (NTSC/PAL) configuration

    \param  vencConfig		Video Encoder composite output (NTSC/PAL) configuration

    \return if success, \c E_PASS, else error code

	\note 
	This routine does not enable the video encoder use VENC_enable(TRUE) to enable video encoder

	\see VENC_ConfigData
*/
STATUS VENC_setConfig( VENC_ConfigData *vencConfig ) {
	Uint16 regmask, regval;

	if(BUSC_getDeviceRevision()!=DM270_ES1_0 ) {
		vencConfig->enableDacPowerDown = (BOOL)!vencConfig->enableDacPowerDown;
	}

	regval = VENC_FMK( VID01, NTPLS, vencConfig->vidStd				) |
			 VENC_FMK( VID01, SCMD,  vencConfig->scanMode			) |
			 VENC_FMK( VID01, CRCUT, vencConfig->crCutoff			) |
			 VENC_FMK( VID01, SETUP, vencConfig->setup				) |
			 VENC_FMK( VID01, YFLT,  vencConfig->enableYlpf			) | 
			 VENC_FMK( VID01, DAPD,  vencConfig->enableDacPowerDown ) |
			 VENC_FMK( VID01, DAOE,  vencConfig->enableDac			) |
			 VENC_FMK( VID01, VOUT,  vencConfig->enableVidOut		) |	
			 VENC_FMK( VID01, BLANK, vencConfig->enableSyncOutOnly	) ;

	regmask= VENC_FMK( VID01, NTPLS, 0xFFFF ) |
			 VENC_FMK( VID01, SCMD,  0xFFFF ) |
			 VENC_FMK( VID01, CRCUT, 0xFFFF ) |
			 VENC_FMK( VID01, SETUP, 0xFFFF ) |
			 VENC_FMK( VID01, YFLT,  0xFFFF ) | 
			 VENC_FMK( VID01, DAPD,  0xFFFF ) |
			 VENC_FMK( VID01, DAOE,  0xFFFF ) |
			 VENC_FMK( VID01, VOUT,  0xFFFF ) |	
			 VENC_FMK( VID01, BLANK, 0xFFFF ) ;

	VENC_RAOI( VID01, ~regmask, regval, 0);		 

	regval = VENC_FMK( VID02, VIMD,   vencConfig->vidMode				) |
			 VENC_FMK( VID02, INLVL,  vencConfig->amplitude				) |
			 VENC_FMK( VID02, SYSW,   vencConfig->syncType				) |
			 VENC_FMK( VID02, VSSW,   vencConfig->vsyncPort				) |
			 VENC_FMK( VID02, SYNE,   vencConfig->enableSync			) |
			 VENC_FMK( VID02, BREN,   vencConfig->enableBrightControl	) |
		     VENC_FMK( VID02, BRPL,   vencConfig->brightPolarityInverse ) |
		     VENC_FMK( VID02, BRWDTH, vencConfig->brightCtrlSignalWidth ) ;

	regmask= VENC_FMK( VID02, VIMD,   0xFFFF ) |
			 VENC_FMK( VID02, INLVL,  0xFFFF ) |
			 VENC_FMK( VID02, SYSW,   0xFFFF ) |
			 VENC_FMK( VID02, VSSW,   0xFFFF ) |
			 VENC_FMK( VID02, SYNE,   0xFFFF ) |
			 VENC_FMK( VID02, BREN,   0xFFFF ) |
		     VENC_FMK( VID02, BRPL,   0xFFFF ) |
		     VENC_FMK( VID02, BRWDTH, 0xFFFF ) ;

	VENC_RAOI( VID02, ~regmask, regval, 0);
									  
	return E_PASS;
}

/**
    \brief Video Encoder enable/disable

    \param enable	TRUE: VENC enable, FALSE: VENC disable

    \return if success, \c E_PASS, else error code
*/
STATUS VENC_enable( BOOL enable) {
	VENC_FSET( VID01, VENC, enable == TRUE ? 1 : 0);
	return E_PASS;
}

/**
    \brief Video DAC, DAC power down mode enable/disable

    \param enable			TRUE: DAC enable, FALSE: DAC disable
	\param powerDownMode	TRUE: DAC power-down mode, FALSE: normal mode

    \return if success, \c E_PASS, else error code
*/
STATUS VENC_dacEnable( BOOL enable, BOOL powerDownMode ) {
	VENC_FSET( VID01, DAPD, powerDownMode == TRUE ? 1 : 0 );
	VENC_FSET( VID01, DAOE, enable == TRUE ? 1 : 0);
	return E_PASS;
}

/**
    \brief Video Output enable/disable

    \param enable	TRUE: VOUT enable, FALSE: VOUT disable

    \return if success, \c E_PASS, else error code
*/
STATUS VENC_vidOutEnable( BOOL enable ) {
	VENC_FSET( VID01, VOUT, enable == TRUE ? 1 : 0);
	return E_PASS;
}

/**
    \brief Color Bar enable/disable

    \param enable	TRUE: Color bar enable, FALSE: Color bar disable
	\param type		Color bar type, 0: 75%, 1: 100%

    \return if success, \c E_PASS, else error code
*/
STATUS VENC_enableColorBar( BOOL enable, Uint8 type ) {
	VENC_FSET( VID01, CBEN, enable == TRUE ? 1 : 0);
	VENC_FSET( VID01, CBTYP, type );
	return E_PASS;
}

/**
    \brief Return current analog output mode

    \return VENC_NTSC: Current output mode is NTSC standard \n VENC_PAL: Current output mode is PAL standard
*/
Uint8  VENC_getNtscPalStatus() {
	if( VENC_FGET(VID01, NTPLS) == 0 )
		return VENC_NTSC;
	else
		return VENC_PAL;
}




⌨️ 快捷键说明

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