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

📄 tvp5150.c

📁 ZPAV (H265) DM64XX(TI) demo ZPAV (H265) 是 音视频 压缩解压 协议
💻 C
字号:

/*
///////////////////////////////////////////////////////////////////////////////
//                                                                           //
//   Copyright (C) 2006-2008  Beijing,  pengzhen  (pengzhenxp@yahoo.com.cn)  //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////
*/

#include <std.h>
#include <csl_i2c.h>      
#include <csl_stdinc.h>
#include <edc.h>
#include <tvp5150.h>

#include "_iic.h"
#include "_TVP5150.h"

static I2C_Handle hI2C[2] = {INV, INV};

/*
 * ======== TVP5150_open ========
 */
static EDC_Handle TVP5150_open(String devName, Arg optArg)
{
    Int devId = 0 ;

    /* Check if the addresse is correct */
    if(devName[0] != '/') {
        devId = -1;
    } else if(devName[1] == '0') {
         devId = 0;
    } else if(devName[1] == '1'){
         devId = 1;
    } 

    return (EDC_Handle)devId;
}

/*
 * ======== TVP5150_close ========
 */
static Int TVP5150_close(EDC_Handle handle) 
{
    Int devId = (int)handle;
	Uint8 addrI2C = (devId == 0) ? _TVP5150_IIC_ADDR0 : _TVP5150_IIC_ADDR1;
	Int nValue = 0 ;


    /*First Check if the Handle is correct */
    if(devId == 0 || devId == 1) {
        /*Put _TVP5150 in power down mode */
		nValue = 0x01 ; _IIC_write(hI2C[devId], addrI2C,SoftwareReset,(Uint8 *)&nValue, 1);
        return EDC_SUCCESS;    
    } else {
        return EDC_FAILED;
    }
}

/*
 * ======== TVP5150_ctrl ========
 */
static Int TVP5150_ctrl(EDC_Handle handle, TVP5150_Cmd cmd, Arg arg)
{
    Int devId = (int)handle;  
	Uint8 addrI2C = (devId == 0) ? _TVP5150_IIC_ADDR0 : _TVP5150_IIC_ADDR1; 
	Int nValue ;
    
    //genericPtr = &_TVP5150_settingsDef[devId].generics;
    /*First Check if the Handle is correct */
    if(devId != 0 && devId != 1) { devId =0 ; }
    
    switch(cmd) {
        case EDC_CONFIG: 
		
			

			{
            TVP5150_ConfParams *TVP5150Params = (TVP5150_ConfParams *)arg;
            hI2C[devId] = TVP5150Params->hI2C;
            //enableIPortOutput(devId, TVP5150Params->enableIPortOutput);
            //setupUserDefResolution(arg);
            //configTVP5150(devId, TVP5150Params->inMode, TVP5150Params->outMode, 
            //    TVP5150Params->aFmt);
            //setTVP5150SyncMode(devId, TVP5150Params->enableBT656Sync);
        }

		nValue = 23 ; _IIC_write(hI2C[devId], addrI2C,VerticalBlankStart,(Uint8 *)&nValue, 1); /* PAL */
		//nValue = 20 ; _IIC_write(hI2C[devId], addrI2C,VerticalBlankStart,(Uint8 *)&nValue, 1); /* NTSC */

		nValue = 0x00 ; _IIC_write(hI2C[devId], addrI2C,AnalogInputControl1,(Uint8 *)&nValue, 1); /* */

		nValue = 0x7F ; _IIC_write(hI2C[devId], addrI2C,LuminanceControl,(Uint8 *)&nValue, 1); /* */

		nValue = 0x29 ; _IIC_write(hI2C[devId], addrI2C,MiscellaneousControls,(Uint8 *)&nValue, 1);

        break;

        case EDC_RESET:
		//nValue = 0x01 ; _IIC_write(hI2C[devId], addrI2C,SoftwareReset,(Uint8 *)&nValue, 1);
		nValue = 0x00 ; _IIC_write(hI2C[devId], addrI2C,SoftwareReset,(Uint8 *)&nValue, 1);
		
        break;
		/*
        case TVP5150_POWERDOWN:
        nValue = 0x00 ; _IIC_write(hI2C[devId], addrI2C,SoftwareReset,(Uint8 *)&nValue, 1);
        break;                 
        case TVP5150_POWERUP:
        nValue = 0x00 ; _IIC_write(hI2C[devId], addrI2C,SoftwareReset,(Uint8 *)&nValue, 1);
        break;

        case TVP5150_SET_AMUXMODE:
        if( (int)(arg) >= 6) 
		{ // svideo input 
			nValue = 0x01 ; _IIC_write(hI2C[devId], addrI2C,AnalogInputControl1,(Uint8 *)&nValue, 1);
			nValue = 0x80 ; _IIC_write(hI2C[devId], addrI2C,LuminanceControl,(Uint8 *)&nValue, 1);
        }else 
		{

			nValue = 0x00 ; _IIC_write(hI2C[devId], addrI2C,AnalogInputControl1,(Uint8 *)&nValue, 1);
			//nValue = 0x7F ; _IIC_write(hI2C[devId], addrI2C,LuminanceControl,(Uint8 *)&nValue, 1);
        }
        break;*/
    }
    return EDC_SUCCESS;
}

/**************************************************************************/
/* End of file                                                                            */
/**************************************************************************/

EDC_Fxns TVP5150_Fxns = {
    TVP5150_open,
    TVP5150_close,
    TVP5150_ctrl                   
};

/**************************************************************************/
/* End of file                                                                            */
/**************************************************************************/



⌨️ 快捷键说明

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