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

📄 paltuner.lst

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


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

line level    source

   1          #include "Config.h"
   2          #include        "reg.h"
   3          #include        "typedefs.h"
   4          
   5          #if defined (SUPPORT_TV) && defined( PAL_TV )
   6          
   7          #include        "i2c.h"
   8          #include        "main.h"
   9          #include        "osdbasic.h"
  10          #include    "dispinfo.h"
  11          #include        "osdmenu.h"
  12          #include        "tuner.h"
  13          #include        "audio.h"
  14          //#include      "eds.h"
  15          //#include    "cc.h"
  16          #include    "printf.h"
  17          #include        "tw88.h"
  18          #include        "etc_eep.h"
  19          #include        "RegMap.h"
  20          
  21          //#define  Fpc_NTSC     45750;                  // 45.75Mhz
  22          
  23          //--------------------------------------------------------------------------
  24          
  25          static  IDATA BYTE      MTSType;
  26                          PDATA BYTE      TVChannel, DummyChannel;
  27                      bit   TVChManual = 0;
  28           IDATA WORD TVFreq=0;
  29          
  30          extern  bit   TVTunerAudioActive;
  31          extern CODE struct RegisterInfo UserRange;
  32          extern  bit             ChannelEdit_Flag;
  33          
  34          //#define EDITTVCHN_TIMEOUT             100             //ljy.EDITTVCHN timeout for each number(in msec)
  35          
  36          #define MIN_FREQUENCY   0x54a//0x572    //0x51b//0x54a //580
  37          #define SECAM_L_MIN             0x51b   
  38          #define MAX_FREQUENCY   0x3882          // PAL FREQ INFO
  39          #define FREQ_INC            16          // 1Mhz         
  40          
  41          // TVPRSYSTEM: X XXX XXXX :  SKIP[bit7] : AUDIO[bit6-4] : COLORSYSTEM[bit3~0]
  42          
  43          //---------- Control Code -----------------------------------------------------
  44          #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;
C51 COMPILER V7.50   PALTUNER                                                              04/01/2008 15:02:41 PAGE 2   

              
              #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
  81          CODE    WORD    kLowBand  = 0xCE01;
  82          CODE    WORD    kMidBand  =  0xCE02;
  83          CODE    WORD    kHighBand = 0xCE04;
  84          //070406-end
  85          
  86          #endif
  87          //---------- PLL divider ------------------------------------------------------
  88          #if TVTunerDevice==LGTUNER_MK5
  89          
  90          #define FreqIF          3800 // 38.00 Mhz
  91          #define FreqSetp        16       // 
  92          
  93          #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
  99          
 100          
 101          //-----------------------------------------------------------------------------
 102          
 103          WORD ConvertChDivToFreq(WORD wDiv)
 104          {
 105   1              DWORD Temp;
 106   1              WORD wFreq; // Chanel Freq X 10
 107   1      
 108   1              Temp = (DWORD)(wDiv * 10L / FreqSetp - FreqIF / 10L);
 109   1              wFreq = (WORD)Temp;
 110   1      
 111   1              return wFreq;
 112   1      }
 113          
 114          void DisplayTVFreq(WORD wFreq)
 115          {
C51 COMPILER V7.50   PALTUNER                                                              04/01/2008 15:02:41 PAGE 3   

 116   1              BYTE freq_str[9], temp_str, i;
 117   1              WORD wDisplay_Freq;
 118   1      
 119   1              wDisplay_Freq = ConvertChDivToFreq(wFreq);
 120   1              utoa( (WORD)wDisplay_Freq, freq_str,10);        
 121   1              for(i=0;i<9;i++)
 122   1              {
 123   2                      if(freq_str[i] == 0) 
 124   2                      {
 125   3                              temp_str = freq_str[i-1];
 126   3                              freq_str[i-1] = '.';
 127   3                              freq_str[i] = temp_str;
 128   3                              freq_str[i+1] = 'M'; //end string
 129   3                              freq_str[i+2] = 'H'; //end string
 130   3                              freq_str[i+3] = 'z'; //end string
 131   3                              freq_str[i+4] = 0; //end string
 132   3                              break;
 133   3                      }
 134   2              }
 135   1              DisplayChannelFreq(freq_str);           // Display current freq.
 136   1      
 137   1      }
 138          
 139          void DisplayScanChannel(BYTE cChannel)
 140          {
 141   1              BYTE str[4];
 142   1      
 143   1              utoa( (WORD)cChannel, str,10);  
 144   1              DisplayScanTVChannel(str);              // Display Channel
 145   1      }
 146          
 147          void SetTVFreq(WORD FreqDiv)
 148          {
 149   1              WORD TVCtrlCode=0;
 150   1      
 151   1              TVFreq = FreqDiv;       
 152   1      
 153   1              #ifdef DEBUG_TV
                      dPuts("\r\n++(SetTVFreq)");
                      Printf("\r\CH:%d  ", (WORD)TVChannel);
                      #endif
 157   1      
 158   1              #ifdef DEBUG_TV
                      Printf("\rTVFreqDiv:0x%04x",(WORD)FreqDiv);
                      #endif
 161   1      
 162   1              // Get Control Code
 163   1              if( FreqDiv <= kUpperLowBand)
 164   1                              TVCtrlCode = kLowBand;
 165   1              else
 166   1              {
 167   2                      if( FreqDiv <= kUpperMidBand)
 168   2                                      TVCtrlCode = kMidBand;
 169   2                      else
 170   2                                      TVCtrlCode = kHighBand;
 171   2              }
 172   1              
 173   1              #ifdef DEBUG_TV
                      Printf("  TVCtrlCode:0x%04x", (WORD)TVCtrlCode);
                      #endif
 176   1      
 177   1              I2CStart();
C51 COMPILER V7.50   PALTUNER                                                              04/01/2008 15:02:41 PAGE 4   

 178   1              I2CWriteData(TVTunerI2CAddress & 0xFE);
 179   1              I2CWriteData(FreqDiv>>8);
 180   1              I2CWriteData(FreqDiv);
 181   1              I2CWriteData(TVCtrlCode>>8);
 182   1              I2CWriteData(TVCtrlCode);
 183   1              I2CStop();
 184   1              
 185   1              if( !TVTunerAudioActive )
 186   1                      AudioAutoStdDetection();
 187   1      
 188   1              #ifdef DEBUG_TV
                      dPuts("\r\n__(SetTVFreq)");
                      #endif
 191   1      }
 192          
 193          //BYTE GetTVChannel(void)
 194          //{
 195          //      return TVChannel;
 196          //}
 197          //---------------------------------------------------------------------------
 198          //Auto Fine Tune
 199          //      if (FINE == 0) {        
 200                   // +/-1.5Mhz : Data +/-24, : AutoScan 
 201                   // +/-2.0Mhz : Data +/-32  : ManualScan
 202                   // Data 1: 62.25Khz
 203          //      }  
 204          
 205          // Read Tuner ADC Data
 206          BYTE ReadTuner(void)
 207          {
 208   1              BYTE Val;
 209   1      
 210   1      //070406-start
 211   1      #if  TVTunerDevice==LGTUNER_MK5 
 212   1              I2CStart();
 213   1              I2CWriteData(TVTunerIFI2CAddress | 0x01);
 214   1              Val = I2CReadData();
 215   1              I2CStop();
 216   1              
 217   1      #else   //TVTunerDevice==LGTUNER_MK5 
              
                      I2CStart();
                      I2CWriteData(TVTunerI2CAddress & 0xFE);
                      I2CStart();
                      I2CWriteData(TVTunerI2CAddress | 0x01);
                      Val = I2CReadData();
                      I2CStop();
              
              //      Printf("\r\nTuner ADC:0x%02x",(WORD)Val);
              
              #endif  //TVTunerDevice==LGTUNER_MK5 
 229   1      //070406-end
 230   1      
 231   1              return Val;
 232   1      }
 233          
 234          BYTE AFT( WORD TVFreqDiv )
 235          {
 236   1      //070406-start
 237   1      #if  TVTunerDevice==LGTUNER_MK5 
 238   1      
 239   1              BYTE AFTStatus=FALSE;
C51 COMPILER V7.50   PALTUNER                                                              04/01/2008 15:02:41 PAGE 5   

 240   1              BYTE val,Check_Cnt = 0;
 241   1              
 242   1              
 243   1              //FreqDiv = FreqDiv & ( ~SKIPCHN_MASK );
 244   1              if( IsNoInput() ) return FALSE;  // ???
 245   1      
 246   1              do{
 247   2                      ReadTuner();
 248   2                      delay(20);      
 249   2                      val = ReadTuner();

⌨️ 快捷键说明

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