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

📄 tuner_philips_fq1236.h

📁 这是T118和T103的通用程序
💻 H
字号:
#include "common.h"

#define TUNER						PHILIPS_FQ1236      // LG TAPC-H701F
#define ADCRatio              6.25                // 62.5 KHZ,unit, 10KHZ
//#define StepSize              625                 // unit, 100HZ
//#define StepSize              FREQ(62.5, KHZ)
#define  StepSize              62500     //62.5KHZ

//-------- Frequency definition (Unit: 1Hz)
#define FREQ_HZ               		1L                     // Hz
#define FREQ_KHZ              		1000L * FREQ_HZ        // KHz
#define FREQ_10KHZ              		10L * FREQ_KHZ         // KHz
#define FREQ_MHZ              		1000L * FREQ_KHZ       // MHz
#define FREQ(n,unit)          		(n * FREQ_##unit)

//------- Define vision IF frequency
#define TUNER_VIF_NTSC       		45750000       //45.750 MHZ
#define TUNER_VIF_NTSC_J     		58750000       //58.750 MHZ
#define TUNER_VIF_PAL        		38900000       //38.9 MHZ
#define TUNER_VIF_PAL_CN     		39937000       //39.937 MHZ

//#define TUNER_VIF_NTSC_J     		FREQ(58.750, MHZ)
//#define TUNER_VIF_PAL        		FREQ(38.900, MHZ)
//#define TUNER_VIF_PAL_CN     		FREQ(39.937, MHZ)

//------- Define tuning frequency )
#define FREQ_NTSC(rf, unit)       	(FREQ(rf, unit)+TUNER_VIF_NTSC    )/TUNER_DIV_RATIO
#define FREQ_NTSC_J(rf, unit)     	(FREQ(rf, unit)+TUNER_VIF_NTSC_J  )/TUNER_DIV_RATIO
#define FREQ_PAL(rf, unit)        	(FREQ(rf, unit)+TUNER_VIF_PAL     )/TUNER_DIV_RATIO
#define FREQ_PAL_CN(rf, unit)     	(FREQ(rf, unit)+TUNER_VIF_PAL_CN  )/TUNER_DIV_RATIO

#define mHIBYTE(v1)             	((BYTE) ((v1) >> 8))                  // Get high byte value of the word
#define mLOBYTE(v1)             	((BYTE) ((v1) & 0xFF))                // Get low byte value of the word

// -----------------------------------------------------------------------------
//   Tuner Part Bit Allocation
// -----------------------------------------------------------------------------
  /* ---------------------------------+-----------------------------------
                                      | b7  b6  b5  b4  b3  b2  b1  b0 ACK
     ---------------------------------+-----------------------------------
     Address BYTE               (ADB) | 1   1   0   0   0   MA1 MA0 0   A
     ---------------------------------+-----------------------------------
     Program divider BYTE 1     (DB1) | 0   n14 n13 n12 n11 n10 n9  n8  A
     Program divider BYTE 2     (DB2) | n7  n6  n5  n4  n3  n2  n1  n0  A
     ---------------------------------+-----------------------------------
     Control information BYTE 1 (CB1) | 1   Cp  T2  T1  T0  RSA RSB OS  A
     Control information BYTE 2 (CB2) | X   X  	X  	X   P3  P2  P1  P0  A
     ---------------------------------+----------------------------------- */

// ------- Address BYTE (ADB)                 //  MA1 MA0           AS
#define TUNER_MA1       0x04                  //   0   0 |  0      ~ 0.1Vcc
#define TUNER_MA0       0x02                  //   0   1 |  0.2Vcc ~ 0.3Vcc
                                              //   1   0 |  0.4Vcc ~ 0.6Vcc
                                              //   1   1 |  0.9Vcc ~    Vcc

// ------- Control information BYTE 1 (CB1)
#define TUNER_CP        0x40                  // Charge pump setting
#define TUNER_T2        0x20                  // Test mode setting 2
#define TUNER_T1        0x10                  // Test mode setting 1
#define TUNER_T0        0x08                  // Test mode setting 0
#define TUNER_RSA       0x04                  // Ratio select bit A
#define TUNER_RSB       0x02                  // Ratio select bit B
#define TUNER_OS        0x01                  // PLL Disibling

//------- Address BYTE (ADB)
#define TUNER_ADB                 		0xC0 | TUNER_MA1 | TUNER_MA0// (ADB) Tuner Address
#define TUNER_IF_ADB              		0x86                        // (ADB) Tuner Address
#define TUNER_IF_SAD              		0x00                        // (SDA) Tuner IF Subaddress

//------- Control information BYTE1 (CB1)
#define TUNER_RS_50     (    0     |    0     )    	// Ratio select = 50    KHz step-size
#define TUNER_RS_3125   (    0     | TUNER_RSB)   	// Ratio select = 32.25 KHz step-size
#define TUNER_RS_6250   (TUNER_RSA | TUNER_RSB)		// Ratio select = 62.6  KHz step-size

#define TUNER_RS                  		TUNER_RS_6250               // Ratio select bits
#define TUNER_CB1                 		0xC0 | TUNER_T0 | TUNER_RS  // (CB1) Control information BYTE 1

//------- Control information BYTE2 (CB2)
// Band Switching
#define TUNER_BS_L_BAND           		0x01                        // Band switching value in low band
#define TUNER_BS_M_BAND           		0x02                        // Band switching value in middle band
#define TUNER_BS_H_BAND           		0x04                        // Band switching value in high band

// Frequency limit of band
//#define TUNER_L_BAND_MIN_FREQ     		FREQ_NTSC( 55.25, MHZ)      // Minimum frequency of low band
//#define TUNER_M_BAND_MIN_FREQ     		FREQ_NTSC(163.25, MHZ)      // Minimum frequency of middle band
//#define TUNER_H_BAND_MIN_FREQ     		FREQ_NTSC(451.25, MHZ)      // Minimum frequency of high band
#define TUNER_L_BAND_MIN_FREQ     		55250000      // Minimum frequency of low band, 55.25 MHZ
#define TUNER_M_BAND_MIN_FREQ     		163250000      // Minimum frequency of middle band, 163.25 MHZ
#define TUNER_H_BAND_MIN_FREQ     		451250000      // Minimum frequency of high band, 451.25 MHZ

// Second IF Data
//#if  (PHILIPS_VERSION==PHILIPS_MK3)
//	#define TUNER_IF_BDATA            	0x56                        // Second IF B DATA
//	#define TUNER_IF_BDATA_MUTE       	0x76                        // Second IF B DATA MUTE
//#elif(PHILIPS_VERSION==PHILIPS_MK5)
//	#define TUNER_IF_BDATA         		0x17                        // Second IF B DATA
//	#define TUNER_IF_BDATA_MUTE    		0x37                        // Second IF B DATA MUTE
//#endif

//#define TUNER_IF_CDATA            		0x30                        // Second IF C DATA
//#define TUNER_IF_EDATA            		0x44                        // Second IF E DATA

//------- AFC control function
#define TUNER_AFC_CONTROL         		ON                          // AFC control function

//------- Dedine tuning step-size according to tuner ratio select bits
#if   (TUNER_RS==TUNER_RS_50)
	#define TUNER_DIV_RATIO           FREQ( 50.00, KHZ)
#elif (TUNER_RS==TUNER_RS_3125)
	#define TUNER_DIV_RATIO           FREQ( 31.25, KHZ)
#elif (TUNER_RS==TUNER_RS_6250)
//	#define TUNER_DIV_RATIO           FREQ( 62.50, KHZ)
	#define TUNER_DIV_RATIO           0.6250
#endif

//------- Define fine-tune value
//#define TUNER_FINETUNE_HIGH         FREQ(125.00, KHZ)/TUNER_DIV_RATIO
//#define TUNER_FINETUNE_MID          FREQ( 65.00, KHZ)/TUNER_DIV_RATIO
//#define TUNER_FINETUNE_LOW          FREQ(  0.00, KHZ)/TUNER_DIV_RATIO

#define TUNER_FINETUNE_HIGH         18       //unit 10KHZ
#define TUNER_FINETUNE_MID          12.5     //unit 10KHZ
#define TUNER_FINETUNE_LOW          6.25   //unit 10KHZ

#define SUCCESS   TRUE
#define FAILURE   FALSE

void Tuner_WriteFreq(uDWORD ChFreq);
//uDWORD TVEEPGetChFreq();
uDWORD Tuner_AFC_Control(uDWORD ChFreq);

⌨️ 快捷键说明

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