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

📄 saa7115.c

📁 SAA7115-driver-inclue :pal ntfs.
💻 C
📖 第 1 页 / 共 3 页
字号:
#define __SAA7115_C__
//******************************************************************************
//
//
//==============================================================================
//
// MODULE:     saa7115.c
//
// USAGE:      Contains Functions related to video decoder SAA7115
// 
//******************************************************************************

//******************************************************************************
//  I N C L U D E    F I L E S                                              
//******************************************************************************

#include "kernel.h"
//******************************************************************************
//  L O C A L    D E F I N I T I O N S
//******************************************************************************
//******************************************************************************
//  G L O B A L    V A R I A B L E S
//******************************************************************************
//#ifdef USE_SAA7115_FOR_PIP
gmt_VideoDecoderStruct gmv_VideoDecoder[MAX_VIDEO_DECODERS];

#define SAA7115_ADJUSTSIGNAL_TOTALTIME               0x16
#define SAA7115_ADJUSTSIGNALISNOCOLOR_TIME       SAA7115_ADJUSTSIGNAL_TOTALTIME -0x08
#define SAA7115_ADJUSTSIGNAL_TIME                         SAA7115_ADJUSTSIGNAL_TOTALTIME - 0x14
#if 0 //(NUM_DECODER == 1)
VIDEO_DECODER_ GVideoDecoder[NUM_DECODER];
//#else
extern VIDEO_DECODER_ GVideoDecoder[NUM_DECODER];
#endif

//******************************************************************************
//  S T A T I C    V A R I A B L E S
//******************************************************************************

//******************************************************************************
//  S T A T I C    F U N C T I O N    P R O T O T Y P E S
//******************************************************************************

BYTE dev_saa7115Read(BYTE B_RegAddr);
void dev_saa7115Write(BYTE B_RegAddr, BYTE B_Value);

//******************************************************************************
//  C O D E
//******************************************************************************

//******************************************************************************
//
// FUNCTION     :   static BYTE dev_saa7115Read(BYTE B_RegAddr)
// USAGE        :   Wrapper function for I2C Read for SAA7115
// INPUT        :   the register address that need to be read
// OUTPUT       :   The value read from the register
// GLOBALS      :   None
// USED_REGS    :
//******************************************************************************


BYTE dev_saa7115Read(BYTE B_RegAddr)
{
	BYTE ucReadBuffer[1];

//       SleepDelay(2);
	tdI2CCommit(SLAVE_ADDRESS_SAA7115, B_RegAddr, _NULL_, 0x00, ucReadBuffer, 0x01);
//       SleepDelay(2);
	return ucReadBuffer[0x00];
 }

//******************************************************************************
//
// FUNCTION     :   static void dev_saa7115Write(BYTE B_RegAddr, BYTE B_Value)
// USAGE        :   Wrapper function for I2C Write for SAA7115
// INPUT        :   the register address , the value
// OUTPUT       :   None
// GLOBALS      :   None
// USED_REGS    :
//******************************************************************************
tinyp BYTE g_b_SAA7115Reg,g_SAA7115RegValue;
void dev_saa7115Write_Test(void)
{
	BYTE i = 1;
	while(i)
	tdI2CCommit(SLAVE_ADDRESS_SAA7115, g_b_SAA7115Reg, &g_SAA7115RegValue, 0x01, NULL, 0);
//    gm_I2cWriteBuffer(SLAVE_ADDRESS_SAA7115,B_RegAddr, &B_Value,1);
}
tinyp BYTE g_b_SAA7115RegNum,g_SAA7115RegValue,g_Saa7115_delay;

void dev_saa7115Write_Test1(void)
{
	BYTE i = 1;
	for(g_b_SAA7115Reg =0;g_b_SAA7115Reg<0xFF;g_b_SAA7115Reg++)
	{
		for(g_SAA7115RegValue = 0x00;g_SAA7115RegValue<0xFF;g_SAA7115RegValue++)
		{
			tdI2CCommit(SLAVE_ADDRESS_SAA7115, g_b_SAA7115Reg, &g_SAA7115RegValue, 0x01, NULL, 0);
			SleepDelay(g_Saa7115_delay);
		}
	}
//    gm_I2cWriteBuffer(SLAVE_ADDRESS_SAA7115,B_RegAddr, &B_Value,1);
}
void dev_saa7115Write(BYTE B_RegAddr, BYTE B_Value)
{
//       SleepDelay(2);
	tdI2CCommit(SLAVE_ADDRESS_SAA7115, B_RegAddr, &B_Value, 0x01, NULL, 0);
//       SleepDelay(2);
//    gm_I2cWriteBuffer(SLAVE_ADDRESS_SAA7115,B_RegAddr, &B_Value,1);
}

void Dlp_Saa7115WriteParameter(BYTE code * p, BYTE ucSize, BYTE ucIndex)
{
     BYTE ucRegName, ucRegValue;//must
     while(_TRUE_)
     {
        LPREGVALUESTRUCT lp = (LPREGVALUESTRUCT)p;
        ucRegName = lp->ucRegName;
        if((ucRegName == END_REG) && (lp->ucRegValue[0x00] == END_VALUE)) return;
        ucRegValue = lp->ucRegValue[ucIndex];
        dev_saa7115Write(ucRegName, ucRegValue);
        p += ucSize;
     }
}


//******************************************************************************
//
// FUNCTION     :   void dev_saa7115ConfigVideoMode(BYTE VidDecId,BYTE B_Mode)
// USAGE        :   This function initializes SAA7115 in specified video mode
// INPUT        :   video decoder id, mode - NTSC/PAL/SECAM
// OUTPUT       :   None
// GLOBALS      :   None
// USED_REGS    :
//******************************************************************************
void InitSaa7115(void)
{
	dev_saa7115ConfigVideoMode(VDD_MODE_INIT);
	dev_saa7115ConfigVideoMode(TV_SYSTEM_SIGNAL_PAL);
}

code REGVALUESTRUCT Saa7115INTTable[] =
{
{0x01, 0x08},//7115 INT table
{0x03, 0x33},//7115 INT table
{0x04, 0x00},//7115 INT table
{0x05, 0x00},//7115 INT table
{0x06, 0xEB},//7115 INT table
{0x07, 0xE0},//7115 INT table
{0x08, 0xB0},//7115 INT table
{0x09, 0x69},//7115 INT table    //0x6d
{0x0a, 0xd0},//7115 INT table   //lrq_modify_05_7_15
//{0x0a, 0xf8},
{0x0B, 0x46},//7115 INT table
//{0x0C, 0x20},//7115 INT table
{0x0C, 0x40},//7115 INT table	//lrq_modify_05_08_05
{0x0D, 0x00},//7115 INT table
{0x0f, 0x0F},//7115 INT table
{0x10, 0x02},//7115 INT table
{0x11, 0x03},//7115 INT table
{0x12, 0x00},//7115 INT table
{0x14, 0x24},//7115 INT table
{0x15, 0x11},//7115 INT table
{0x16, 0xFE},//7115 INT table
{0x17, 0xD8},//7115 INT table
{0x18, 0x40},//7115 INT table
{0x19, 0x80},//7115 INT table
{0x1a, 0x77},//7115 INT table
{0x1b, 0x42},//7115 INT table
{0x1c, 0xA9},//7115 INT table
{0x1d, 0x01},//7115 INT table
{0x41, 0xFF},//7115 INT table
{0x42, 0xFF},//7115 INT table
{0x43, 0xFF},//7115 INT table
{0x44, 0xFF},//7115 INT table
{0x45, 0xFF},//7115 INT table
{0x46, 0xFF},//7115 INT table
{0x47, 0xFF},//7115 INT table
{0x48, 0xFF},//7115 INT table
{0x49, 0xFF},//7115 INT table
{0x4A, 0xFF},//7115 INT table
{0x4B, 0xFF},//7115 INT table
{0x4C, 0xFF},//7115 INT table
{0x4D, 0xFF},//7115 INT table
{0x4E, 0xFF},//7115 INT table    //morning changed
{0x4F, 0xFF},//7115 INT table
{0x50, 0xFF},//7115 INT table
{0x51, 0xFF},//7115 INT table
{0x52, 0xFF},//7115 INT table
{0x53, 0x00},//7115 INT table
{0x54, 0x00},//7115 INT table    //peaking_th 0x02 //mornig changed
{0x54, 0x44},//7115 INT table
{0x55, 0xFF},//7115 INT table
{0x56, 0xFF},//7115 INT table
{0x57, 0xFF},//7115 INT table
{0x80, 0x10},//7115 INT table
{0x81, 0x00},//7115 INT table
{0x82, 0x00},//7115 INT table
{0x83, 0x11},//7115 INT table
{0x86, 0x45},//7115 INT table
{0x87, 0x21},//7115 INT table
{0x88, 0xF0},//7115 INT table
{0xA4, 0x80},//7115 PAL table
{0xb4, 0x40},//7115 PAL table
{0xff, 0xff}	
};

code REGVALUESTRUCT Saa7115NTSCTable[] =
{

{0x03, 0x33},    //7115 NTSC table              
//{0x0a, 0x80},    //7115 NTSC table                                                     
//{0x0B, 0x40},    //7115 NTSC table   
{0x09, 0x69},//7115 INT table	//lrq_add_05_7_15
{0x0a, 0xE8},//7115 INT table   //lrq_add_05_7_22
{0x0b, 0x60},//7115 INT table	//lrq_add_05_7_22
//{0x0a, 0xf8},//7115 INT table   //lrq_add_05_7_22
//{0x0b, 0x78},//7115 INT table	//lrq_add_05_7_22
{0x0e, 0x0B},    //7115 NTSC table
{0x0F, 0x71},    //7115 NTSC table
{0x10, 0x02},    //7115 NTSC table  //11.09 changed for the y/c 
{0x11, 0x02},    //7115 NTSC table       
{0x13, 0x80},    //7115 NTSC table                                                     
{0x1c, 0xA9},    //7115 NTSC table
{0x1d, 0x01},    //7115 NTSC table       
{0x1e, 0x40},    //7115 NTSC table                                
{0x30, 0xde},    //7115 NTSC table                                                     
{0x31, 0x6f},    //7115 NTSC table                                                     
{0x5a, 0x06},    //7115 NTSC table                                                     
{0x66, 0x85},    //7115 NTSC table                                                     
{0x67, 0x00},    //7115 NTSC table                                                     
{0x68, 0x00},    //7115 NTSC table                                                     
{0x6b, 0xa5},    //7115 NTSC table                                                     
{0x72, 0xa6},    //7115 NTSC table                                                     
{0x77, 0xa6},    //7115 NTSC table                                                     
{0x84, 0x00},    //7115 NTSC table                                                     
{0x85, 0x01},    //7115 NTSC table                                                     
{0x98, 0x0a},    //7115 NTSC table                                                     
{0x9a, 0xfd},    //7115 NTSC table                                                     
{0x9b, 0x00},    //7115 NTSC table                                                     
{0x9e, 0x06},    //7115 NTSC table                                                     
//{0xb4, 0x01},    //7115 NTSC table                                                     
{0xff, 0xff}	   //7115 NTSC table                                     

};                      

code REGVALUESTRUCT Saa7115PALTable[] =
{
{0x01, 0x08},//7115 INT table                                          
{0x03, 0x33},//7115 INT table                                          
{0x04, 0x00},//7115 INT table                                          
{0x05, 0x00},//7115 INT table                                          
{0x06, 0xEB},//7115 INT table                                          
{0x07, 0xE0},//7115 INT table                                          
{0x08, 0xB0},//7115 INT table                                                                                       
{0x09, 0x6D},//7115 INT table
{0x09, 0x0D},//7115 INT table    //0xaf xuli changed for the pal disturb          must set -> clear bit 7,5
//{0x09, 0x6D},//7115 INT table
{0x09, 0x69},//7115 INT table   //lrq_add_05_7_15
//{0x0B, 0x40},//7115 INT table                                          
//{0x0C, 0x40},//7115 INT table                                          
//{0x0a, 0xE0},//7115 INT table   //lrq_add_05_7_22
{0x0b, 0x69},//7115 INT table	//lrq_add_05_7_22
//{0x0b, 0x78},
{0x0D, 0x00},//7115 INT table 
{0x0e, 0x83},
{0x0f, 0x0F},//7115 INT table                                          
{0x10, 0x02},//7115 INT table    //11.09 changed for the y/c                                        
{0x11, 0x03},//7115 INT table                                          
{0x12, 0x00},//7115 INT table                                          
{0x14, 0x24},//7115 INT table //24                                         
{0x15, 0x11},//7115 INT table                                          
{0x16, 0xFE},//7115 INT table                                          
{0x17, 0xD8},//7115 INT table                                          
{0x18, 0x40},//7115 INT table                                          
{0x19, 0x80},//7115 INT table                                          
{0x1a, 0x77},//7115 INT table
{0x1b, 0x40},
{0x1b, 0x42},//7115 INT table                                          
{0x1c, 0xA9},//7115 INT table                                          
{0x1d, 0x01},//7115 INT table                                          
{0x41, 0xFF},//7115 INT table                                          
{0x42, 0xFF},//7115 INT table                                          
{0x43, 0xFF},//7115 INT table                                          
{0x44, 0xFF},//7115 INT table                                          
{0x45, 0xFF},//7115 INT table                                          
{0x46, 0xFF},//7115 INT table                                          
{0x47, 0xFF},//7115 INT table                                          
{0x48, 0xFF},//7115 INT table                                          
{0x49, 0xFF},//7115 INT table                                          
{0x4A, 0xFF},//7115 INT table                                          
{0x4B, 0xFF},//7115 INT table                                          
{0x4C, 0xFF},//7115 INT table                                          
{0x4D, 0xFF},//7115 INT table                                          
{0x4E, 0xFF},//7115 INT table    //morning changed                     
{0x4F, 0xFF},//7115 INT table                                          
{0x50, 0xFF},//7115 INT table                                          
{0x51, 0xFF},//7115 INT table                                          
{0x52, 0xFF},//7115 INT table                                          
{0x53, 0x00},//7115 INT table                                          
{0x54, 0x00},//7115 INT table    //peaking_th 0x02 //mornig changed    
{0x54, 0x44},//7115 INT table                                          
{0x55, 0xFF},//7115 INT table                                          
{0x56, 0xFF},//7115 INT table                                          
{0x57, 0xFF},//7115 INT table                                          
{0x80, 0x10},//7115 INT table                                          
{0x81, 0x00},//7115 INT table                                          
{0x82, 0x00},//7115 INT table                                          
{0x83, 0x11},//7115 INT table                                          
{0x86, 0x45},//7115 INT table                                          
{0x87, 0x21},//7115 INT table                                          
{0x88, 0xF0},//7115 INT table                                          

{0x13, 0x80},//7115 PAL table
//{0x0a, 0xE0},//7115 INT table   //lrq_add_05_7_23
//{0x0a, 0x80},//7115 PAL table
{0x1e, 0x50},//7115 PAL table

⌨️ 快捷键说明

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