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

📄 tv.lst

📁 CS8955控制TV软件。用MCU做模拟电视的控制。
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V8.05a   TV                                                                   07/03/2008 18:27:39 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(.\Tv.lst) O
                    -BJECT(.\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          
  37          #ifdef ENABLE_PRINTF   //03Jul08
              #include "stdio.h"  //03Jul08
              #include "string.h" //03Jul08
              #endif
  41          
  42          
  43          #ifdef ENABLE_TV
  44          sChannelList ReadTVChannel(BYTE ChInd)
  45          {
  46   1         sChannelList chlist;
  47   1      
  48   1         ReadE2prom(TV_CH_START_POS+((ChInd-1)*TV_ONE_CH_SIZE),(BYTE *) &chlist,TV_ONE_CH_SIZE);
  49   1      
  50   1         return(chlist);
  51   1      }
  52          
  53          void WriteTVChannel(BYTE ChInd,sChannelList sCh)
  54          {
C51 COMPILER V8.05a   TV                                                                   07/03/2008 18:27:39 PAGE 2   

  55   1         WriteE2prom(TV_CH_START_POS+((ChInd-1)*TV_ONE_CH_SIZE),(BYTE *) &sCh,TV_ONE_CH_SIZE);
  56   1      }
  57          
  58          void LoadTVData(void)
  59          {
  60   1             BYTE bTmp;
  61   1                
  62   1             ReadE2prom(TV_TOTAL_CH_POS, &bTmp, 1);
  63   1              bTvTotalCh = bTmp;
  64   1              if (bTvTotalCh>TV_CH_MAX)
  65   1              {
  66   2                  bTvTotalCh = 0;     
  67   2                 WriteE2prom(TV_TOTAL_CH_POS, &bTvTotalCh, 1);
  68   2              }
  69   1             ReadE2prom(TV_LAST_CH_POS, &bTmp, 1);
  70   1              bTvCurrChIndex = bTmp;
  71   1              if (bTvCurrChIndex>bTvTotalCh)
  72   1              {
  73   2                  bTvCurrChIndex = 0;
  74   2                 WriteE2prom(TV_LAST_CH_POS, &bTvCurrChIndex, 1);
  75   2              }       
  76   1      
  77   1              if (bTvCurrChIndex>0)
  78   1              {
  79   2                 sTvCurrChannel = ReadTVChannel(bTvCurrChIndex);
  80   2                  bTvCurrSound=sTvCurrChannel.bSound ;        
  81   2      
  82   2              }
  83   1              else
  84   1               bTvCurrSound=TV_SOUND_DEFAULT;
  85   1              #if 0   //superfluous //martin 14May08   
                     ReadE2prom(TV_LAST_CH_AUDIO_POS, &bTmp, 1);
                      bTvCurrSound = bTmp;
                      #endif
  89   1              if (bTvCurrSound>=TV_SOUND_MAX)
  90   1              {
  91   2                  bTvCurrSound = TV_SOUND_DEFAULT; //TV_SOUND_BG; martin 12May08
  92   2                 WriteE2prom(TV_LAST_CH_AUDIO_POS, &bTvCurrSound, 1);
  93   2              }
  94   1              
  95   1              if((sTvCurrChannel.wFreq <=VHF_HIGH_BOT)&&(sTvCurrChannel.wFreq >=UHF_TOP))
  96   1                      {
  97   2                     sTvCurrChannel.wFreq =VHF_HIGH_BOT;
  98   2                                 WriteTVChannel(bTvCurrChIndex,sTvCurrChannel);
  99   2                      }
 100   1      }
 101          
 102          void LoadDefaultTVData(void)
 103          {
 104   1              bTvTotalCh = bTvCurrChIndex =0;  
 105   1              bTvCurrSound = TV_SOUND_DEFAULT;         //martin 14May08
 106   1             WriteE2prom(TV_TOTAL_CH_POS, &bTvTotalCh, 1);
 107   1             WriteE2prom(TV_LAST_CH_POS, &bTvCurrChIndex, 1);
 108   1             WriteE2prom(TV_LAST_CH_AUDIO_POS, &bTvCurrSound, 1);
 109   1      }
 110          
 111          BYTE bTV_IF_Read(void)
 112          {
 113   1          BYTE bTmp;
 114   1      
 115   1          IICSW_Read(0, I2C_TVIF_ADDR,0,0,&bTmp,1);
 116   1          return bTmp;
C51 COMPILER V8.05a   TV                                                                   07/03/2008 18:27:39 PAGE 3   

 117   1      }
 118          
 119          BYTE bTV_PLL_Read(void)
 120          {
 121   1          BYTE bTmp;
 122   1      
 123   1          IICSW_Read(0, I2C_TVPLL_ADDR,0,0,&bTmp,1);
 124   1          return bTmp;
 125   1      }
 126          
 127          void vTV_PLL_Write(BYTE *databuf)
 128          {
 129   1          IICSW_Write(0, I2C_TVPLL_ADDR,0,0,databuf,4);
 130   1      }
 131          
 132          void vTV_IF_Write(BYTE *databuf)
 133          {
 134   1          IICSW_Write(0, I2C_TVIF_ADDR,0,0,databuf,4);
 135   1      }
 136          
 137          BYTE bBand()
 138          {
 139   1      if((_sTunerPLL.wDB>=VHF_LOW_BOT) && (_sTunerPLL.wDB<VHF_LOW_TOP))
 140   1              return (VHF_LOW_BAND);
 141   1      else if((_sTunerPLL.wDB>=VHF_HIGH_BOT) && (_sTunerPLL.wDB<VHF_HIGH_TOP))
 142   1              return (VHF_HIGH_BAND);
 143   1      else if((_sTunerPLL.wDB>=UHF_BOT) &&(_sTunerPLL.wDB <UHF_TOP))
 144   1              return (UHF_BAND);
 145   1      else
 146   1           return (VHF_HIGH_BAND);
 147   1      
 148   1      }
 149          #ifndef TUNER_USE_TNJ7355  //martin 14May08
              void  vTVTunerInit(void)
              {
                  BYTE  bData[4];
                      
                  bData[0] = IF_RESERVED;
                  bData[1] = IF_SWITCH_1 ;
                  bData[2] = IF_ADJUST1;
                  if (bTvCurrSound==TV_SOUND_DK)
                      bData[3] = IF_DATA3;
                  else if (bTvCurrSound==TV_SOUND_I)  
                      bData[3] = IF_DATA2;
                  else        
                      bData[3] = IF_DATA1;
                  vTV_IF_Write(bData);
              }       
              #endif
 166          // Init TV
 167          void vInitTV(void)
 168          {
 169   1          Delay1ms(100);
 170   1          mTVEnable();
 171   1          Delay1ms(100);
 172   1          if(bTvTotalCh)
 173   1          {
 174   2              _sTunerPLL.wDB = sTvCurrChannel.wFreq;
 175   2          //martin 14 May08  _sTunerPLL.bBB = sTvCurrChannel.bBand;
 176   2              _sTunerPLL.bCB = TUNER_CB1;
 177   2              vTvSetCh();
 178   2              _bSearchState = S_STATE_CHK_VIDEO;    
C51 COMPILER V8.05a   TV                                                                   07/03/2008 18:27:39 PAGE 4   

 179   2              _bSearchCnt = S_TV_VERIFY_TIME;
 180   2          }
 181   1          else
 182   1          {
 183   2              _sTunerPLL.wDB = VHF_LOW_BOT;  //0x27db;    ??????????    martin 12May08
 184   2              sTvCurrChannel.wFreq = _sTunerPLL.wDB;  
 185   2              _sTunerPLL.bBB = TUNER_BB1;//TUNER_BB3;  martin 14May08
 186   2               //martin 14 May08   sTvCurrChannel.bBand = _sTunerPLL.bBB;
 187   2              //02Jun08  sTvCurrChannel.bSystem=IF_SWITCH_DEFAUL;
 188   2                sTvCurrChannel.bSystem=IF_SWITCH_DEFAUL;
 189   2                bTvCurrSound=TV_SOUND_DEFAULT;
 190   2              _sTunerPLL.bCB = TUNER_CB1;
 191   2              vTvSetCh();
 192   2              _bSearchState = S_STATE_CHK_VIDEO;    
 193   2              _bSearchCnt = S_TV_VERIFY_TIME;
 194   2          }
 195   1          _bSearchMode = SEARCH_IDLE;
 196   1      
 197   1       _bSearchPercent=0x00;  //01Jul08
 198   1        bDataUpdateEn=0x00; //04jun08
 199   1        DataOutValid=0; //02Jun08     
 200   1      #ifndef TUNER_USE_TNJ7355  //martin 14May08
                  vTVTunerInit();
              #endif
 203   1      }
 204          
 205          BOOL vFreqSwitch(BIT dir)   //martin 13May08
 206          {
 207   1      
 208   1      if(dir == UP_SEARCH)
 209   1        {
 210   2          if((_sTunerPLL.wDB>VHF_LOW_TOP) && (_sTunerPLL.wDB<VHF_HIGH_BOT))
 211   2          {
 212   3               _sTunerPLL.wDB =VHF_HIGH_BOT;
 213   3          }
 214   2          else if((_sTunerPLL.wDB>VHF_HIGH_TOP) && (_sTunerPLL.wDB<UHF_BOT))
 215   2          {
 216   3               _sTunerPLL.wDB = UHF_BOT;
 217   3          }
 218   2        }
 219   1      else
 220   1        {
 221   2          if((_sTunerPLL.wDB>VHF_LOW_TOP) && (_sTunerPLL.wDB<VHF_HIGH_BOT))
 222   2          {
 223   3               _sTunerPLL.wDB =VHF_LOW_TOP;
 224   3          }
 225   2          else if((_sTunerPLL.wDB>VHF_HIGH_TOP) && (_sTunerPLL.wDB<UHF_BOT))
 226   2          {
 227   3               _sTunerPLL.wDB = VHF_HIGH_TOP;
 228   3          }
 229   2        }
 230   1      
 231   1       //07Jun08  if(_sTunerPLL.wDB>UHF_TOP)
 232   1      //07Jun08       _sTunerPLL.wDB=UHF_TOP;
 233   1      
 234   1        return 1;     

⌨️ 快捷键说明

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