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

📄 tv_2in1.lst

📁 MSTARXX.rar
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.18   TV_2IN1                                                               09/29/2009 23:58:04 PAGE 1   


C51 COMPILER V8.18, COMPILATION OF MODULE TV_2IN1
OBJECT MODULE PLACED IN ..\..\1out\TV_2IN1.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE ..\..\tv\TV_2IN1.c BROWSE INCDIR(..\..\inc) DEBUG OBJECTEXTEND PRINT(..\..\
                    -1out\TV_2IN1.lst) OBJECT(..\..\1out\TV_2IN1.obj)

line level    source

   1          #define _TV_2IN1_C_
   2          
   3          #include "board.h"
   4          
   5          #define _TV_C_
   6          
   7          #include <math.h>
   8          #include "types.h"
   9          #include "Global.h"
  10          #if TV_ENABLE
  11          #include "Reg52.h"
  12          #include "TV.h"
  13          #include "devtuner.h"
  14          #include "misc.h"
  15          #include "nvram.h"
  16          #include "DevVD.h"
  17          #include "msosd.h"
  18          #include "DEBUG.h"
  19          #include "ms_reg.h"
  20          #include "ms_rwreg.h"
  21          #include "panel.h"
  22          #include "mstar.h"
  23          //#include "menudef.h"
  24          #include "menu.h"
  25          #include "UserPref.h"
  26          #include "Tda7052.h"
  27          #include "nvram.h"
  28          #include "M2_vd_agc_lib.h"
  29          
  30          #if(ENABLE_VD_DSP)
  31          #include "Maria2_dsp_lib.h"
  32          #endif
  33          
  34          
  35          BYTE XDATA  g_ucTryTimes;
  36          extern BYTE code strProgramText[LANG_Nums][12];
  37          
  38          extern void devSetSWF(BYTE ColorSoundSystem);
  39          extern void NVRam_WriteWord(WORD addr, WORD value);
  40          extern void Osd_SetTextColor(BYTE foreColor, BYTE backColor);
  41          extern BOOL ExecuteKeyEvent(MenuItemActionType menuAction);
  42          
  43          //extern BYTE g_ucMenuPageIndex;
  44          //extern BYTE g_ucMenuItemIndex;
  45          
  46          BYTE GetAFCValue(BYTE ucLoopCount)
  47          {
  48   1        BYTE value;
  49   1        BYTE code AUTOAFCMappingValue[16]=
  50   1        {
  51   1               0x08,// 0
  52   1               0x09,// 1
  53   1               0x0A,// 2
  54   1               0x0B,// 3
C51 COMPILER V8.18   TV_2IN1                                                               09/29/2009 23:58:04 PAGE 2   

  55   1               0x0C,// 4
  56   1               0x0D,// 5
  57   1               0x0E,// 6
  58   1               0x0F,// 7
  59   1               0x00,// 8
  60   1               0x01,// 9
  61   1               0x02,// A
  62   1               0x03,// B
  63   1               0x04,// C
  64   1               0x05,// D
  65   1               0x06,// E
  66   1               0x07,// F
  67   1        };
  68   1      
  69   1              value= devTunerGetStatus(ucLoopCount);
  70   1              value &= 0x1e;
  71   1              value >>= 1;
  72   1              value &= 0x0f;//16 counts
  73   1       // printf("AUTOAFC==%d", AUTOAFCMappingValue[value]);
  74   1       //   printf("value===%d", value);
  75   1              return  AUTOAFCMappingValue[value];//abs(value-7);//alue;//
  76   1      }
  77          
  78          /*
  79          void TurnerAFCHandler(void)
  80          {
  81                  BYTE AFCValue;
  82                 if(!PowerOnFlag)    // Nelson added 2006-01-24
  83                  return;                   // Nelson added 2006-01-24
  84                  if(!IsTVInUse())
  85                          return;
  86                  else if(AFCDisableFlag)
  87                          return;
  88                  else if(!(chData.ucChannelMisc&DoAFCFlag))
  89                          return;
  90                  else if(!(g_VdInfo.wVideoStatus&VD_HSYNC_LOCKED))
  91                          return;
  92                  else if(g_ucAFCTuneCounter<AFCTUNEMINCOUNT||g_ucAFCTuneCounter>AFCTUNEMAXCOUNT)
  93                          Set_AFCDisableFlag();
  94          
  95              AFCValue = GetAFCValue(5);
  96          
  97                  if(AFCValue>9)
  98                  {
  99                          chData.wFreq++;
 100                          g_ucAFCTuneCounter++;
 101                  }
 102                  else if(AFCValue<6)
 103                  {
 104                          chData.wFreq--;
 105                          g_ucAFCTuneCounter--;
 106                  }
 107                  else
 108                          return;
 109          
 110              ResetTuner();
 111          }
 112          */
 113          BOOL CheckTunerVsIsValid(WORD Vs)
 114          {
 115   1              if((Vs>=TN_FREQMIN)&&(Vs<=TN_FREQMAX))
 116   1                      return TRUE;
C51 COMPILER V8.18   TV_2IN1                                                               09/29/2009 23:58:04 PAGE 3   

 117   1              else
 118   1                      return FALSE;
 119   1      }
 120          
 121          void ReadTVChannelInfo(BYTE ch, BOOL ReallyAddr)
 122          {
 123   1              ReallyAddr=ReallyAddr;
 124   1              NVRam_ReadTbl(nvrChanneAddr(ch), (BYTE*)&chData,SIZE_TV_CHANNEL_INFO);
 125   1              if(!CheckTunerVsIsValid(chData.wFreq))
 126   1                      chData.wFreq=TN_FREQ_INVILIDDEF;
 127   1      }
 128          
 129          void SaveTVChannelInfo(BYTE ch, BOOL ReallyAddr)
 130          {
 131   1              ReallyAddr=ReallyAddr;
 132   1      
 133   1              if(!CheckTunerVsIsValid(chData.wFreq))
 134   1                      chData.wFreq=TN_FREQ_INVILIDDEF;
 135   1              NVRam_WriteTbl(nvrChanneAddr(ch), (BYTE*)&chData,SIZE_TV_CHANNEL_INFO);
 136   1      }
 137          
 138          void TV_SelectChannel( BYTE ucChannel )
 139          {
 140   1          g_TVChSetting.ucPreChannelNO = g_TVChSetting.ucCurChannelNO;
 141   1          g_TVChSetting.ucCurChannelNO = ucChannel;
 142   1          TV_SetCh();
 143   1      }
 144          
 145          void TV_SelectPreChannel(void)
 146          {
 147   1              BYTE temp;
 148   1              temp=g_TVChSetting.ucCurChannelNO;
 149   1              g_TVChSetting.ucCurChannelNO=g_TVChSetting.ucPreChannelNO;
 150   1              g_TVChSetting.ucPreChannelNO=temp;
 151   1              TV_SetCh();
 152   1      }
 153          
 154          void TV_SetCh(void)
 155          {
 156   1          VD_AGC_ResetGain( g_uwVideoAGC );
 157   1      
 158   1          ReadTVChannelInfo(g_TVChSetting.ucCurChannelNO,FALSE);
 159   1          g_TVChSetting.TvCurChannelMisc=chData.ucChannelMisc;
 160   1              //printf("chData.wFreq==%x", chData.wFreq);
 161   1          devTunerWrite(chData.wFreq);
 162   1              //SetColorSystem(chData);
 163   1          devSetSWF(chData.ucChannelMisc);
 164   1          devTunerSetAGCValue(g_VideoSetting.TunerAGC);
 165   1          msVDReset();
 166   1      
 167   1          //if( g_ucmsVDCtl&MSVD_CTL_FLAG_NOISE_HANDLER )
 168   1               msVDNoiseHandlerReset();
 169   1      
 170   1          SaveChannelNumberSetting();
 171   1          Set_InputTimingChangeFlag();
 172   1          Set_AFCDisableFlag();
 173   1          msVDColorBurstHandler( VD_COLOR_BURST_HANDLER_RESET );
 174   1      }
 175          
 176          BYTE TV_GetIncValidChannel( BYTE ucCurChannel )
 177          {
 178   1              if(ucCurChannel>(MAX_CHANNEL_NUM-2))//g_TVChSetting.ucMaxValidChNum)
C51 COMPILER V8.18   TV_2IN1                                                               09/29/2009 23:58:04 PAGE 4   

 179   1                      ucCurChannel=0;
 180   1              else
 181   1                      ucCurChannel++;
 182   1      
 183   1          return ucCurChannel;
 184   1      }
 185          
 186          BYTE TV_GetDecValidChannel( BYTE ucCurChannel )
 187          {
 188   1              if(ucCurChannel==0)
 189   1                      ucCurChannel=(MAX_CHANNEL_NUM-2);//g_TVChSetting.ucMaxValidChNum;
 190   1              else
 191   1                      ucCurChannel--;
 192   1      
 193   1          return ucCurChannel;
 194   1      }
 195          
 196          BYTE SearchTVNoSkipChannel(BYTE channel,BOOL Inc)
 197          {
 198   1              BYTE BkChannel=channel;
 199   1              BYTE temp;
 200   1      
 201   1              do
 202   1          {
 203   2              if(Inc)
 204   2                      channel=TV_GetIncValidChannel(channel);
 205   2              else
 206   2                      channel=TV_GetDecValidChannel(channel);
 207   2              NVRam_ReadByte((nvrChanneAddr(channel)+MISCOFFSETADDR),&temp);
 208   2              if((temp&NotSkipThisNum)||channel==g_TVChSetting.ucCurChannelNO)
 209   2                      break;
 210   2          }while(BkChannel!=channel);
 211   1      
 212   1              return channel;
 213   1      }
 214          
 215          
 216          void SaveChannelData( BYTE chIdx, StuChannelData* pChData )
 217          {
 218   1          //printf("nvrChanneAddr(chIdx)====%x", nvrChanneAddr(chIdx));
 219   1          //printf("SIZE_TV_CHANNEL_INFO===%x", SIZE_TV_CHANNEL_INFO);
 220   1          rmBurstWriteBytes( nvrChanneAddr(chIdx), (BYTE *)pChData, SIZE_TV_CHANNEL_INFO);
 221   1      }
 222          
 223          void InitChannelData( BYTE ucChIdx, StuChannelData* pChData)
 224          {
 225   1          pChData->wFreq = ((WORD)55.25*TN_FREQ_UNIT)+((WORD)(ucChIdx%100)*8*TN_FREQ_UNIT);
 226   1          pChData->ucChannelMisc=0;//default color sys auto
 227   1          pChData->ucChannelMisc =TV_SOUND_I|DoAFCFlag;
 228   1      }
 229          
 230          void ResetChannels(BYTE ucMinCh, BYTE ucMaxCh)
 231          {
 232   1          BYTE i;
 233   1          StuChannelData ChannelBff;
 234   1      
 235   1          i = ucMinCh;
 236   1              Delay1ms(100);
 237   1          do
 238   1          {
 239   2              WatchDogClear();
 240   2              //Delay1ms(100);
C51 COMPILER V8.18   TV_2IN1                                                               09/29/2009 23:58:04 PAGE 5   

 241   2              InitChannelData( i, &ChannelBff);
 242   2              SaveChannelData( i, &ChannelBff );
 243   2          } while((i++) != ucMaxCh); // while
 244   1      }
 245          
 246          void ChannelScanInit(void)
 247          {
 248   1          devAudioWrite(0);
 249   1          //msFPLLCtl( FPLL_TUNE_LINE_ONLY );
 250   1          g_ucOsdCounter = 0;
 251   1              Set_AFCDisableFlag();
 252   1      }
 253          
 254          void InitVDBeforeSearchStart(void)
 255          {
 256   1          g_VdInfo.ucVideoSystem = SIG_NONE;
 257   1          g_InOutCtl.bInterlace = 1;
 258   1      
 259   1          if( IsVideoPortInUse())
 260   1          {
 261   2              // For TV snow
 262   2          #if( TV_SYSTEM == TV_NTSC )
                      msVDSetupMode( VD_FSC_3579, SIG_NTSC );
                  #else
 265   2              msVDSetupMode( VD_FSC_4433|VD_VSYNC_50HZ, SIG_PAL );
 266   2          #endif
 267   2          }
 268   1      
 269   1          SetOutputTimingAndWindow( OUTPUT_SNOW );
 270   1      
 271   1          msSetBlueScreen( _DISABLE, FR_BLACK);
 272   1      }
 273          
 274          WORD g_wTVAutoScan_LastVTotal;
 275          void TV_ChannelAutoScanInit(void)
 276          {
 277   1          BYTE uctemp;
 278   1          ChannelScanInit(); //for auto scan
 279   1      
 280   1          devSetSWF(TV_SOUND_I);
 281   1      
 282   1          g_ucTVChannelAutoScanCount = 0; // select start channel
 283   1          chData.wFreq = TN_FREQMIN;//TN_FREQMIN;
 284   1          g_bTVAutoScanChannelEnable=TRUE;
 285   1      
 286   1          uctemp=((chData.ucChannelMisc&SoundSysMask)%TV_SOUND_NUMS);
 287   1          //printf("uctemp===%d", uctemp);
 288   1          //chData.ucChannelMisc=0;//default color sys auto

⌨️ 快捷键说明

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