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

📄 tuner.lst

📁 车载DVD osdIC TW8816原厂代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.50   TUNER                                                                 04/01/2008 15:02:43 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE TUNER
OBJECT MODULE PLACED IN .\Output\tuner.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE tuner.c COMPACT OPTIMIZE(9,SIZE) BROWSE MODDP2 INCDIR(.\Include\) DEFINE(IN
                    -TERNAL_MCU) DEBUG OBJECTEXTEND PRINT(.\Source\tuner.lst) OBJECT(.\Output\tuner.obj)

line level    source

   1          //============ TV Tuner =========================================================
   2          //
   3          //      ljy.EDITTVCHN   10/30/03~       
   4          //                              .Enhance the way to get channel number via remocon
   5          //                                      NTSC AIR -      Wait to get channel number until EDITTVCHN_TIMEOUT
   6          //                                                              is reached or two number are endtered.
   7          //                                      NTSC CABLE-     Wait to get channel number until EDITTVCHN_TIMEOUT
   8          //                                                              is reached or three number are endtered.
   9          //                                      PAL  -          Wait to get channel number until EDITTVCHN_TIMEOUT
  10          //                                                              is reached.
  11          //                              .Change DisplayTVChannel()->DisplayTVChannel( chn )
  12          //
  13          //      ljy.TV_OPTI             10/31/03~
  14          //                              .Use constant MIN_TVCHN[] and MAX_TVCHN[] for TVInputSel
  15          //
  16          //      ljy01xx04               
  17          //                              .Insert 'sacnning TV...'message when start to scan TV.
  18          //
  19          //===============================================================================
  20          #include "Config.h"
  21          #include        "reg.h"
  22          #include        "typedefs.h"
  23          
  24          #if defined (SUPPORT_TV) && defined( NTSC_TV )
              
              #include        "i2c.h"
              #include        "main.h"
              #include        "osdbasic.h"
              #include    "dispinfo.h"
              #include        "osdmenu.h"
              #include        "tuner.h"
              #include        "audio.h"
              //#include      "eds.h"
              //#include    "cc.h"
              #include    "printf.h"
              #include        "tw88.h"
              #include        "etc_eep.h"
              #include        "RegMap.h"
              
              //#define  Fpc_NTSC     45750;                  // 45.75Mhz
              
              //--------------------------------------------------------------------------
              
                              PDATA BYTE      TVInputSel;
              static  IDATA BYTE      MTSType;
              
                              PDATA BYTE      TVChannel, DummyChannel;
              
              extern  bit   TVTunerAudioActive;
                          bit   TVChManual = 0;
              
              extern CODE struct RegisterInfo UserRange;
              
              
C51 COMPILER V7.50   TUNER                                                                 04/01/2008 15:02:43 PAGE 2   

              static  IDATA WORD TVFreq=0;
              
              //static  IDATA BYTE  NewTVChannel=0;                   //ljy.EDITTVCHN
              //static  IDATA WORD  EditTVChnStartTime;               //ljy.EDITTVCHN
              
              //#define EDITTVCHN_TIMEOUT             100             //ljy.EDITTVCHN timeout for each number(in msec)
              
              #define MIN_FREQUENCY   0x572//0x51b//0x54a //580
              #define SECAM_L_MIN             0x51b//0x54a //580
              #define MAX_FREQUENCY  0x3882           // PAL FREQ INFO
              #define  FREQ_INC            16  // 1000                        // 1Mhz         
              
              // TVPRSYSTEM: X XXXXXXX :  STORE[1] :  COLORSYSTEM[bit6~0]
              
              //---------- Control Code -----------------------------------------------------
              #if TVTunerDevice==PHILIPS
              
              CODE    WORD    kLowBand  = 0xCEA0;
              CODE    WORD    kMidBand  = 0xCE90;
              CODE    WORD    kHighBand = 0xCE30;
              
              #elif TVTunerDevice==ALPS
              
              CODE    WORD    kLowBand  = 0xCE01;
              CODE    WORD    kMidBand  = 0xCE02;
              CODE    WORD    kHighBand = 0xCE08;
              
              #elif TVTunerDevice==TEMIC
              
              CODE    WORD    kLowBand  = 0x8EA2;
              CODE    WORD    kMidBand  = 0x8E94;
              CODE    WORD    kHighBand = 0x8E31;
              
              #elif TVTunerDevice==TVAVA
              
              CODE    WORD    kLowBand  = 0x8001;
              CODE    WORD    kMidBand  = 0x8002;
              CODE    WORD    kHighBand = 0x8008;
              
              #elif TVTunerDevice==LGTUNER    // TAPC-H701F (NTSC Only)
              
              CODE    WORD    kLowBand  = 0x8E01;
              CODE    WORD    kMidBand  = 0x8E02;
              CODE    WORD    kHighBand = 0x8E08;
              
              #elif TVTunerDevice==SAMSUNGMUTITUNER   // PAL/SECAM
              CODE    WORD    kLowBand  = 0x8EA1;
              CODE    WORD    kMidBand  = 0x8E91;
              CODE    WORD    kHighBand = 0x8E31;
              
              //070406-start
              #elif TVTunerDevice==LGTUNER_MK5
              CODE    WORD    kLowBand  = 0x8E01;
              CODE    WORD    kMidBand  =  0x8E02;
              CODE    WORD    kHighBand = 0x8E04;
              //070406-end
              
              #endif
              //---------- PLL divider ------------------------------------------------------
              #if TVTunerDevice==TVAVA
              
              #define FreqIF          3800 // 38.00 Mhz
C51 COMPILER V7.50   TUNER                                                                 04/01/2008 15:02:43 PAGE 3   

              #define FreqSetp        20       // 
              
              #else
              //TVTunerDevice==PHILIPS || TVTunerDevice==ALPS || TVTunerDevice==TEMIC || TVTunerDevice==LGTUNER || TVTun
             -erDevice==SAMSUNGMUTITUNER
              #define FreqIF          4575 // Picture Intermediate Freq. in NTSC tuner : 45.75 MHz
              #define FreqSetp        16       // 1Mhz/62.5Khz (RSA=RAB=1) // 1000/62.5 = 16
              
              #endif
              
              // Calculate 
              #define TVFreqDiv1   0x770  //(7325L+FreqIF)*FreqSetp/100;
              #define TVFreqDiv2   0x650  //(5525+FreqIF)*FreqSetp/100;
              #define TVFreqDiv5   0x7b0  //(7725+FreqIF)*FreqSetp/100;
              #define TVFreqDiv7   0xdd0 //(17575L+FreqIF)*FreqSetp/100;
              #define TVFreqDiv14_AIR  0x2050 // (47125L+FreqIF)*FreqSetp/100;
              #define TVFreqDiv14  0xa70 // (12125L+FreqIF)*FreqSetp/100;
              #define TVFreqDiv23  0x1070 // (21725L+FreqIF)*FreqSetp/100;
              #define TVFreqDiv95  0x890 // (9125L+FreqIF)*FreqSetp/100;
              #define TVFreqDiv100 0x2b70 // (64925L+FreqIF)*FreqSetp/100;
              
              #define TVFreqDivINC  0x60  //6*FreqSetp;       // 6Mz step in NTSC
              
              CODE    WORD    MIN_TVCHN[]=    {       2,      1 };            //{ AIR, CABLE }
              CODE    WORD    MAX_TVCHN[]=    {       69,     125 };          
              
              
              //-----------------------------------------------------------------------------
              
              #ifdef NTSC_TV 
              WORD Get_Channel2Divid (void)
              {
                      WORD FreqDiv=NIL;
              
                      if( TVInputSel==CABLETV )  {
                              if( TVChannel < 1 )TVChannel = 1;
                              if( TVChannel ==1 )     FreqDiv = TVFreqDiv1;           
                              else if( TVChannel >=2 && TVChannel <=4 )   FreqDiv = (TVChannel-2)*TVFreqDivINC + TVFreqDiv2;                                          
                              else if( TVChannel >=5 && TVChannel <=6 )       FreqDiv = (TVChannel-5)*TVFreqDivINC + TVFreqDiv5;      //(77.55+4
             -5.75)*16
                              else if( TVChannel >=95 && TVChannel <=99 )     FreqDiv = (TVChannel-95)*TVFreqDivINC + TVFreqDiv95;    //(91.2
             -5+45.75)*16
                              else if( TVChannel >=14 && TVChannel <=22 ) FreqDiv = (TVChannel-14)*TVFreqDivINC + TVFreqDiv14;        //(121.
             -25+45.75)*16
                              else if( TVChannel >=7 && TVChannel <=13 )  FreqDiv = (TVChannel-7)*TVFreqDivINC + TVFreqDiv7;  //(175.25
             -+45.75)*16
                              else if( TVChannel >=23 && TVChannel <=94 ) FreqDiv = (TVChannel-23)*TVFreqDivINC + TVFreqDiv23;        //(217.
             -25+45.75)*16
                              else if( TVChannel >=100 && TVChannel <=125 )   FreqDiv = (TVChannel-100)*TVFreqDivINC + TVFreqDiv100;//(
             -649.25+45.75)*16
                      }
                      else 
                      {  // AIRTV 
                              if( TVChannel < 2 )TVChannel = 2;
                              if( TVChannel >=2 && TVChannel <=4 ) FreqDiv = (TVChannel-2)*TVFreqDivINC + TVFreqDiv2;                 //(91.25+45.75
             -)*16
                              else if( TVChannel >=5 && TVChannel <=6 )       FreqDiv = (TVChannel-5)*TVFreqDivINC + TVFreqDiv5;      //(77.55+4
             -5.75)*16
                              else if( TVChannel >=7 && TVChannel <=13 )      FreqDiv = (TVChannel-7)*TVFreqDivINC + TVFreqDiv7;      //(175.25+
             -45.75)*16
                              else if( TVChannel >=14 && TVChannel <=69)      FreqDiv = (TVChannel-14)*TVFreqDivINC + TVFreqDiv14_AIR;  //(
             -471.25+45.75)*16
C51 COMPILER V7.50   TUNER                                                                 04/01/2008 15:02:43 PAGE 4   

                      }
              
                      return FreqDiv;
              }
              
              #endif  // NTSC_TV
              //-----------------------------------------------------------------------------
              void SetTVFreq(WORD FreqDiv)
              {
                      WORD TVCtrlCode=0;
              
                      TVFreq = FreqDiv;       
              
                      #ifdef DEBUG_TV
                      dPuts("\r\n++(SetTVFreq)");
                      Printf("\r\CH:%d  ", (WORD)TVChannel);
                      #endif
              
                      #ifdef DEBUG_TV
                      Printf("\rTVFreqDiv:0x%04x",(WORD)FreqDiv);
                      #endif
              
                      // Get Control Code
                      if( FreqDiv <= kUpperLowBand)
                                      TVCtrlCode = kLowBand;
                      else
                      {
                              if( FreqDiv <= kUpperMidBand)
                                              TVCtrlCode = kMidBand;
                              else
                                              TVCtrlCode = kHighBand;
                      }
                      
                      #ifdef DEBUG_TV
                      Printf("  TVCtrlCode:0x%04x", (WORD)TVCtrlCode);
                      #endif
              
                      I2CStart();
                      I2CWriteData(TVTunerI2CAddress & 0xFE);
                      I2CWriteData(FreqDiv>>8);
                      I2CWriteData(FreqDiv);
                      I2CWriteData(TVCtrlCode>>8);
                      I2CWriteData(TVCtrlCode);
                      I2CStop();
                      
              
                      if( !TVTunerAudioActive )
                              AudioAutoStdDetection();
              
                      #ifdef DEBUG_TV

⌨️ 快捷键说明

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