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

📄 tv.lst

📁 CS8955控制TV软件。用MCU做模拟电视的控制。
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V8.05a   TV                                                                   01/05/2009 15:57:49 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE TV
OBJECT MODULE PLACED IN .\OBJ\Tv.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE tv\Tv.c LARGE BROWSE INCDIR(.\include) DEBUG OBJECTEXTEND PRINT(.\List\Tv.l
                    -st) OBJECT(.\OBJ\Tv.obj)

line level    source

   1          /******************************************************************************\
   2               Project Version:   MTKCARDVD()
   3          ********************************************************************************
   4               Filename:          Tv.c
   5          
   6               Author:            Alan Chan
   7          
   8               Company:           CoreTek/ACT Company
   9          
  10          ********************************************************************************
  11               File Version:      1.01
  12               File Created:      July 2007
  13          
  14               Compiled Using:    keil uVision2 Version 2.23 
  15          
  16          ********************************************************************************
  17               Files Required:
  18          
  19          ********************************************************************************
  20               File Description:
  21          
  22          ********************************************************************************
  23               File History:
  24          
  25          --------------------------------------------------------------------------------
  26            Date         Name           Description
  27          --------------------------------------------------------------------------------
  28            Mar. 2007    Alan Chan    File Created
  29            
  30          \******************************************************************************/
  31          #include "global.h"
  32          #include "E2prom.h"
  33          #include "irkey.h"
  34          
  35          #include "Tv.h"
  36          //#ifdef OPEN_PRINTF
  37          extern void DRS232LogB(BYTE bV1, BYTE bV2, BYTE bV3, BYTE bV4);   //26Aug08
  38          extern void DRS232LogS(char *pcStr);
  39          //#endif
  40          
  41          
  42          #ifdef ENABLE_TV
  43          sChannelList ReadTVChannel(BYTE ChInd)
  44          {
  45   1         sChannelList chlist;
  46   1      
  47   1         ReadE2prom(TV_CH_START_POS+((ChInd-1)*TV_ONE_CH_SIZE),(BYTE *) &chlist,TV_ONE_CH_SIZE);
  48   1      
  49   1         return(chlist);
  50   1      }
  51          
  52          void WriteTVChannel(BYTE ChInd,sChannelList sCh)
  53          {
  54   1         WriteE2prom(TV_CH_START_POS+((ChInd-1)*TV_ONE_CH_SIZE),(BYTE *) &sCh,TV_ONE_CH_SIZE);
C51 COMPILER V8.05a   TV                                                                   01/05/2009 15:57:49 PAGE 2   

  55   1      }
  56          
  57          void LoadTVData(void)
  58          {
  59   1      
  60   1         BYTE bTmp;
  61   1      
  62   1          bTunerDeafultVal=(TV_TYPE_DEFAULT <<6)||(TV_SOUND_DEFAULT <<3) ||(TV_SYSTEM_DEFAULT); //0xd0;  //test
  63   1           fgTunerType=TV_TYPE_DEFAULT;
  64   1           ReadE2prom(TV_TUNER_TYPE_POS, &bTmp, 1); //11Sep08
  65   1              bTunerDeafultVal = bTmp; //11Sep08
  66   1              fgTunerType=(bTunerDeafultVal & 0x40 )>>6;
  67   1      //      bTunerVal =0xc0; //11Sep08
  68   1      //       bTunerVal |= (bTunerDeafultVal & 0x3f); //11Sep08
  69   1            // IF_SWITCH_DEFAUL=bTunerVal;
  70   1            bTvCurrSound=(bTunerDeafultVal & 0x38 )>>3;
  71   1                
  72   1           ReadE2prom(TV_TOTAL_CH_POS, &bTmp, 1);
  73   1              bTvTotalCh = bTmp;
  74   1              if (bTvTotalCh>TV_CH_MAX)
  75   1              {
  76   2                  bTvTotalCh = 0;     
  77   2                 WriteE2prom(TV_TOTAL_CH_POS, &bTvTotalCh, 1);
  78   2              }
  79   1              if(bTvTotalCh == 0)
  80   1                  {
  81   2                   bTvTotalCh = 0;    
  82   2                  sTvCurrChannel.bSystem=(0xc0 |bTunerDeafultVal);//bTunerVal;//11Sep08 IF_SWITCH_DEFAUL;  //13A
             -ug08
  83   2                   bTvCurrSound=(sTvCurrChannel.bSystem & 0x38) >>3;  //13Aug08       
  84   2                   bTvCurrChIndex = 1; //01Sep08 0;
  85   2                       sTvCurrChannel.wFreq =VHF_LOW_BOT;
  86   2                    }
  87   1              else
  88   1                      {
  89   2                       ReadE2prom(TV_LAST_CH_POS, &bTmp, 1);
  90   2                      bTvCurrChIndex = bTmp;
  91   2                      if((bTvCurrChIndex < 0x01)||(bTvCurrChIndex > TV_CH_MAX)) //29Aug08
  92   2                        {
  93   3                              bTvCurrChIndex=0x01;
  94   3                          WriteE2prom(TV_LAST_CH_POS, &bTvCurrChIndex, 1);
  95   3                        }  
  96   2                    if (bTvCurrChIndex <= bTvTotalCh)
  97   2                     {
  98   3                       sTvCurrChannel = ReadTVChannel(bTvCurrChIndex);                
  99   3                          if((sTvCurrChannel.bSystem & 0x07)> SV_PAL_N) //16Sep08     
 100   3                              {
 101   4                             sTvCurrChannel.bSystem =(0xc0 |bTunerDeafultVal); //bTunerVal;   //16Sep08     
 102   4                              }
 103   3                              
 104   3                       bTvCurrSound=(sTvCurrChannel.bSystem & 0x38) >>3;//17Jul08  sTvCurrChannel.bSound ;    
 105   3                      }
 106   2                    else
 107   2                      { 
 108   3                        sTvCurrChannel.wFreq =VHF_LOW_BOT;
 109   3                         sTvCurrChannel.bSystem=(0xc0 |bTunerDeafultVal);//bTunerVal; //11Sep08 IF_SWITCH_DEFAUL;  //13Aug08
 110   3                        bTvCurrSound=(sTvCurrChannel.bSystem & 0x38) >>3;  //13Aug08  
 111   3                        bTvCurrChIndex = 1; //01Sep08  0;
 112   3                       WriteE2prom(TV_LAST_CH_POS, &bTvCurrChIndex, 1);                                
 113   3                      }
 114   2                   }
 115   1              
C51 COMPILER V8.05a   TV                                                                   01/05/2009 15:57:49 PAGE 3   

 116   1             #ifdef SUPPORT_UART_PRINTF
 117   1           DRS232LogS("Read E2prom OK.\n");   
 118   1         #endif
 119   1      
 120   1              
 121   1      }
 122          
 123          void LoadDefaultTVData(void)
 124          {
 125   1              bTvTotalCh = 0;  
 126   1              bTvCurrChIndex = 1; //01Sep08  0;
 127   1              bTvCurrSound = TV_SOUND_DEFAULT;         //martin 14May08
 128   1             WriteE2prom(TV_TOTAL_CH_POS, &bTvTotalCh, 1);
 129   1             WriteE2prom(TV_LAST_CH_POS, &bTvCurrChIndex, 1);
 130   1              #ifdef MARTIN_SUPPORT_SHOW_TV_VERSION  //31Jul08
 131   1               fgTvVersion= TV_VERSION_VALUE;   //31Jul08
 132   1              WriteE2prom(TV_VERSION_POS, &fgTvVersion, 1);
 133   1              #else
                     WriteE2prom(TV_LAST_CH_AUDIO_POS, &bTvCurrSound, 1);
                      #endif
 136   1      }
 137          
 138          BYTE bTV_ADC_Read(void)
 139          {
 140   1          BYTE bTmp;
 141   1      
 142   1          IICSW_Read(0, I2C_TVADC_ADDR,0,0,&bTmp,1);
 143   1          return bTmp;
 144   1      }
 145          
 146          BYTE bTV_IF_Read(void)
 147          {
 148   1          BYTE bTmp;
 149   1      
 150   1          IICSW_Read(0, I2C_TVIF_ADDR,0,0,&bTmp,1);
 151   1          return bTmp;
 152   1      }
 153          
 154          BYTE bTV_PLL_Read(void)
 155          {
 156   1          BYTE bTmp;
 157   1      
 158   1          IICSW_Read(0, I2C_TVPLL_ADDR,0,0,&bTmp,1);
 159   1          return bTmp;
 160   1      }
 161          
 162          void vTV_PLL_Write(BYTE *databuf)
 163          {
 164   1          IICSW_Write(0, I2C_TVPLL_ADDR,0,0,databuf,4);
 165   1      }
 166          
 167          void vTV_IF_Write(BYTE *databuf)
 168          {
 169   1          IICSW_Write(0, I2C_TVIF_ADDR,0,0,databuf,4);
 170   1      }
 171          
 172          /*
 173          BYTE bBand()
 174          {
 175          if((_sTunerPLL.wDB>=VHF_LOW_BOT) && (_sTunerPLL.wDB<VHF_LOW_TOP))
 176                  return (VHF_LOW_BAND);
 177          else if((_sTunerPLL.wDB>=VHF_HIGH_BOT) && (_sTunerPLL.wDB<VHF_HIGH_TOP))
C51 COMPILER V8.05a   TV                                                                   01/05/2009 15:57:49 PAGE 4   

 178                  return (VHF_HIGH_BAND);
 179          else if((_sTunerPLL.wDB>=UHF_BOT) &&(_sTunerPLL.wDB <UHF_TOP))
 180                  return (UHF_BAND);
 181          else
 182               return (VHF_HIGH_BAND);
 183          
 184          }
 185          */
 186          #ifndef TUNER_USE_TNJ7355  //martin 14May08
              void  vTVTunerInit(void)
              {
                  BYTE  bData[4];
                      
                  bData[0] = IF_RESERVED;
                  bData[1] = IF_SWITCH_PAL;
                  bData[2] = IF_ADJUST_DEFAUL;
                  if (bTvCurrSound==SV_DK)   //TV_SOUND_DK
                      bData[3] = IF_DATA3;
                  else if (bTvCurrSound==SV_I)         //TV_SOUND_I
                      bData[3] = IF_DATA2;
                  else        
                      bData[3] = IF_DATA1;
                  vTV_IF_Write(bData);
              }       
              #endif
 203          // Init TV
 204          void vInitTV(void)
 205          {
 206   1           #ifdef SUPPORT_UART_PRINTF
 207   1           DRS232LogS("Init Tuner Start.\n");         
 208   1         #endif
 209   1      
 210   1          Delay1ms(100);
 211   1          mTVEnable();
 212   1          Delay1ms(100);
 213   1         #ifdef MARTIN_ADD_SEARCH_TUNER_MUTE
 214   1                fgTVSearhMute=0;   //05Aug08 
 215   1         #endif       
 216   1         if(bTvTotalCh)
 217   1          {
 218   2              _sTunerPLL.wDB = sTvCurrChannel.wFreq;
 219   2              _sTunerPLL.bCB = TUNER_CB1;      
 220   2              _bSearchState = S_STATE_IDLE;  //31Jul08                        S_STATE_CHK_VIDEO;    
 221   2              _bSearchCnt = 0; //31Jul08      S_TV_VERIFY_TIME;
 222   2          }
 223   1          else
 224   1          {
 225   2              _sTunerPLL.wDB = VHF_LOW_BOT;  //0x27db;    ??????????    martin 12May08
 226   2              sTvCurrChannel.wFreq = _sTunerPLL.wDB;  
 227   2              _sTunerPLL.bBB = TUNER_BB1;//TUNER_BB3;  martin 14May08
 228   2                sTvCurrChannel.bSystem=(0xc0 |bTunerDeafultVal);// bTunerVal; //11Seo08 IF_SWITCH_DEFAUL;
 229   2                bTvCurrSound=TV_SOUND_DEFAULT;
 230   2              _sTunerPLL.bCB = TUNER_CB1;     
 231   2              _bSearchState = S_STATE_IDLE;  //13Aug08  S_STATE_CHK_VIDEO;    
 232   2              _bSearchCnt = 0; //13Aug08  S_TV_VERIFY_TIME;
 233   2          }
 234   1              
 235   1           _bSearchMode = SEARCH_IDLE;
 236   1              fgAFCADJState=FREQUENCY_ADJ_IDLE; //13Aug08
 237   1          #ifdef MARTIN_SUPPORT_SHOW_TV_VERSION
 238   1              fgTvVersion=  TV_VERSION_VALUE;   //31Jul08
 239   1              _bSearchPercent=fgTvVersion;    
C51 COMPILER V8.05a   TV                                                                   01/05/2009 15:57:49 PAGE 5   

 240   1          #else
                   _bSearchPercent=0x00;  //01Jul08
                  #endif
 243   1      //  bDataUpdateEn=0; //04jun08

⌨️ 快捷键说明

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