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

📄 vardef.h

📁 CS8955控制TV软件。用MCU做模拟电视的控制。
💻 H
字号:
/******************************************************************************\
     Project Version:   MTKCARDVD()
********************************************************************************
     Filename:          I2c.c

     Author:            Alan Chan

     Company:           CoreTek/ACT Company

********************************************************************************
     File Version:      1.01
     File Created:      July 2007

     Compiled Using:    keil uVision2 Version 2.23 

********************************************************************************
     Files Required:

********************************************************************************
     File Description:

********************************************************************************
     File History:

--------------------------------------------------------------------------------
  Date         Name           Description
--------------------------------------------------------------------------------
  Mar. 2007    Alan Chan    File Created
  
\******************************************************************************/
//#include "cs8955_regh.h"      //26Aug08 test

#ifdef _MAIN_
#define EXTERN 
#else
#define EXTERN extern
#endif

typedef    bit				BIT;
typedef    bit				BOOL;
typedef    unsigned char	BYTE;
typedef    unsigned int		WORD;
typedef    unsigned long	LWORD;

typedef signed char		S8;
typedef signed char  	s8;   	//8  bits
typedef signed short 	s16;  	//16 bits 
typedef signed long   s32;  	//32 bits
typedef unsigned char 	U8;		//8  bits
typedef unsigned short 	U16;  	//16 bits 
typedef unsigned long   U32;  	//32 bits
typedef  unsigned  int  S16;

typedef unsigned char  	INT8U;   	//8  bits
typedef unsigned short 	INT16U;  	//16 bits 
typedef unsigned long  	INT32U;  	//32 bits
typedef signed char    	INT8S;   	//8  bits
typedef signed short   	INT16S;  	//16 bits
typedef signed long    	INT32S;  	//32 bits

#define  _Nop()  _nop_()        

#define  DWRD		   LWORD
#define  DataEndFg	0xFF
#define  FALSE			0
#define  TRUE			1
#define  OFF			0
#define  ON				1

#define   LoByte(w)      ((BYTE)(w))
#define   HiByte(w)      ((BYTE)(((WORD)(w) >> 8) & 0xFF))

#define   Abs(a,b)         (((a) > (b)) ? (a-b) : (b-a))
#define   Max(a,b)         (((a) > (b)) ? (a) : (b))
#define   Min(a,b)         (((a) < (b)) ? (a) : (b))

#define BCD2HEX(x)		(x>>4)*10+(x&0x0f)

// 20ms timer
/////////////////////////
EXTERN  BIT bTimer20ms;
EXTERN idata BYTE bDelay100us;
EXTERN idata WORD wTimer0Count;
/////////////////////////

// i2c variables
/////////////////////////
EXTERN BIT bNoAck;
/////////////////////////

#ifdef ENABLE_UART
// uart receive buffer
/////////////////////////
EXTERN xdata BYTE UartRxBuf[UART_BUF_SIZE];
EXTERN xdata BYTE UartRxIndex;
/////////////////////////
#endif

// dvd => com receive buffer
/////////////////////////
#define DVD_STATUS_BYTE    	10 //8
#define CAR_INFO_BYTE      	2
#define COMDVD_BYTE  11 //10 //  (DVD_STATUS_BYTE+CAR_INFO_BYTE)  martin 14May08
EXTERN idata BYTE DvdRxBuf[COMDVD_BYTE];
EXTERN xdata BYTE DvdRxIndex;
EXTERN xdata BYTE DataOut[COMDVD_BYTE];   /* DataOut[1]=irkey;DataOut[2]=SysMode; */
EXTERN xdata BYTE DataOutValid;
EXTERN idata BYTE ShadowDvdInfo[DVD_STATUS_BYTE-1];
EXTERN idata BYTE ShadowCarInfo[CAR_INFO_BYTE];
EXTERN xdata BYTE bTempIrKey;
//EXTERN idata BYTE bDataUpdateEn;
// BYTE DvdRxBuf[COMDVD_BYTE]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; 	
// e2prom
/////////////////////////
EXTERN xdata BYTE EEP_Wait;
//-----------------------------------------------
union W_TEMP{
	BYTE	valB[2];	//B[]={0xaa,0xbb}
	WORD	valW;	//W=0xaabb
};


#ifdef MARTIN_MCU_AND_DVD_PROTOCOL
enum
{
    KEY_DIRECT_CMD_MODE=0,
    KEY_SETUP_SET_MODE,
    KEY_MAX_MODE
};

#endif

// input mode
/////////////////////////
EXTERN BYTE xdata SysMode;
EXTERN BYTE xdata NextSysMode;
enum
{
    PWR_DOWN_MODE=0,
    DVD_MODE,
    TV_MODE,
    INPUT_MODE_MAX
};
/////////////////////////

// tv/radio search machine
/////////////////////////
#define DOWN_SEARCH                0
#define UP_SEARCH 		          1
#define S_WAIT_TIME1		        	1	//30	
#define S_WAIT_TIME2		        	1	//30	
#define S_WAIT_TIME3		        	600
#define S_VERIFY_TIME		        	2	 	
#define S_TV_WAIT_TIME1		        80 
#define S_TV_VERIFY_TIME		        200	 	

enum {
SEARCH_IDLE=0,
SEARCH_SCAN,
SEARCH_SEEK,  // manual scan
SEARCH_STEP,  // manual fine
SEARCH_BROWSE,
SEARCH_SEEK_STEP_WAIT
};

enum {
S_STATE_IDLE=0,
S_STATE_CHK_VIDEO,
S_STATE_SET,		     
S_STATE_SET_CHANGE,
S_STATE_WAIT1,
S_STATE_WAIT2,
S_STATE_CHECK_PLLLOCK,
S_STATE_TIME3,
S_STATE_COMP_SMETER,
S_STATE_BROWSE,
S_STATE_SEEK_STEP_WAIT,
S_STATE_ABORT
};

 



#ifdef MARTIN_SUPPORT_SHOW_TV_VERSION
 #define TV_VERSION_VALUE      26
EXTERN BYTE xdata  fgTvVersion;
#endif



EXTERN BYTE xdata _bSearchState;
EXTERN BYTE xdata _bSearchPercent;
//17Sep08 EXTERN WORD xdata _wSearchStartFreq;
EXTERN BYTE xdata _bSearchCnt;
EXTERN WORD xdata _bSearchVerifyCnt;

// tv
/////////////////////////
typedef struct{
	WORD wDB;
	BYTE bCB;
	BYTE bBB;
}structTVPLL;

typedef struct{
//    BYTE bIndex;
    WORD wFreq;
    BYTE bSystem; //bBand;      //bit 7 :AFCAdj 1=on;  bit 6 :Skip  0=on, 1=Off;  bit 5-3:sound; bit2-0:tv system;
//    BYTE bSound;	
#ifdef MARTIN_SUPPORT_CHNNEL_SKIP
//   BYTE bSkip;
#endif
}sChannelList;
	
EXTERN structTVPLL xdata _sTunerPLL;
EXTERN BYTE xdata _bSearchMode;
EXTERN BIT _fgSearchDir;
#ifdef MARTIN_MODIFY_AUTO_SEARCH_MEANS 
EXTERN BOOL _fgTvIsSearch;
EXTERN BYTE xdata _bLockStatus;
EXTERN BYTE xdata _bBand;
EXTERN BYTE xdata _bUSTvSource;
#endif
#ifdef MARTIN_MODIFY_AUTO_SCAN
//EXTERN BYTE xdata _bSearchUnLock;   //martin 13May08
#endif


EXTERN sChannelList xdata sTvCurrChannel;
EXTERN BYTE xdata bTvTotalCh;
EXTERN BYTE xdata bTvCurrChIndex;
EXTERN BYTE xdata bTvCurrSound;
EXTERN BYTE xdata bTvChMemory;

//EXTERN BIT TVPLLReadEnable;
#ifndef MARTIN_MCU_NO_IR
EXTERN BIT  fgLongKey; 
EXTERN BIT  fgLongOrShortKey;
#endif
//EXTERN BYTE xdata bMcu2DvdPage;

//EXTERN BYTE xdata bVideoCheck;
/////////////   TV MENU SHOW STYLE ////////////////////
EXTERN BYTE xdata bDisplaMode;

#define  TV_MENU_TYPE_NORMAL               0
 #define  TV_MENU_TYPE_REDRAW_ITEM    1
 #define  TV_MENU_TYPE_REDRAW_DLG       2
 #define  TV_MENU_TYPE_EXIT_SETUP         4
 #define  TV_MENU_TYPE_STILL_DLG            8
 ////////////////////////////////////////////////////


EXTERN BYTE xdata btesttvPll;

//EXTERN BYTE xdata bTempFrelow;
//EXTERN BIT fgTtestFfine;
EXTERN BYTE xdata btesttvIf;
EXTERN BYTE xdata bTvIfValue;
//EXTERN WORD xdata bTempStroFre;
//#define  IfWarpIndex   9

//01Sep08 EXTERN idata BYTE IfWarpValue[IfWarpIndex];
//EXTERN BIT  fgIfValueOk;
//EXTERN BIT  fgEnUART;  //01Jul08
//EXTERN BYTE xdata fgTVSyncDect;  //02Jul08
EXTERN BYTE xdata bSetStepUp;  //02Jul08
EXTERN BYTE xdata bSetStepDown;  //02Jul08
EXTERN BYTE xdata bBackStepUp;  //02sep08
EXTERN BYTE xdata bBackStepDown;  //02sep08

//EXTERN BIT  fgTVAFCAdj;
//EXTERN BIT  fgTVChaSkip;
//EXTERN BIT  fgTVSyncFail;
//EXTERN BIT  fgDVDTVCMD;
//EXTERN BIT  fgChangeTV;
EXTERN BYTE  fgAFCADJCnt;
//EXTERN BYTE  fgADCLoopCnt;



#ifdef  MARTIN_TEST_CHANNNEL_NUMBER_SHOW  //04Aug08
EXTERN BYTE xdata fgAFCADJState;
EXTERN BYTE xdata fgAFCTVSyncCnt;  //TV NOT SYNC WAIT
EXTERN BYTE xdata bFreSetpCnt;
//EXTERN BYTE  fgAFCADCnt;
EXTERN BYTE xdata  fgAFCVa;

enum {
FREQUENCY_ADJ_IDLE=0,
//FREQUENCY_LOOP_CNT,	
FREQUENCY_VIDEO_SYNC,
FREQUENCY_READ_AFC,  
FREQUENCY_SET_TV
/*FREQUENCY_VIDEO_SYNC,
FREQUENCY_VIDEO_SYNC
*/
};

#endif

#ifdef MARTIN_ADD_SEARCH_TUNER_MUTE
EXTERN BIT  fgTVSearhMute;  //05Aug08
#endif

#ifdef MARTIN_TUNER_TYPE_SELECT
EXTERN BYTE xdata fgTunerType;  //05Aug08

#endif

#ifdef SUPPORT_UART_PRINTF
EXTERN BYTE  xdata _PrinTBuf[6];
#endif

EXTERN BYTE xdata bTvPllValue;
//EXTERN BYTE xdata bTvAdcValue;
//EXTERN BYTE xdata bReadAdcCnt;

EXTERN BYTE xdata bTunerDeafultVal;  //11Sep08   7: invalid; 6:tuner type (1:xf-6a,0:tnj7355),5-3:sound,2-0:system.
//EXTERN BYTE xdata bTunerVal;  //11Sep08

#ifdef MARTIN_TUNER_XF6A_PAL_M_NOT_SYNC
EXTERN BYTE xdata bPalMAdj;  //17Sep08
#endif


EXTERN BYTE xdata bTvCurrSystem;  //18Sep08
EXTERN BYTE xdata bTVSoundCarrier;
EXTERN BYTE xdata bTvCurrIF;
EXTERN BYTE xdata bTvCurrPolarity;
EXTERN BYTE xdata bTvPllGate;

EXTERN BYTE xdata bTvLastChannel; //07Oct08

//EXTERN BYTE  bSetpFreq;
//EXTERN BYTE bAFCWhileCnt;

/*
EXTERN BYTE xdata bTempChaIndex;  //22Jul08
EXTERN BYTE xdata bNextChaIndex;
EXTERN BYTE xdata bTempSystem;
EXTERN BYTE xdata bNexSystem;
EXTERN WORD xdata bTempFerq;
EXTERN WORD xdata bNextFerq;
*/

⌨️ 快捷键说明

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