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

📄 paltuner.lst

📁 此程序为twell8806驱动程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
                      TVChManual = 0;
              
                      if( NewCh <= TOTAL_PR )
                      {
                              TVChannel = DummyChannel = NewCh;
                              SetTVChannel();
                      }
              }
              
              BYTE UpDownTVChannel(BYTE flag)
              {
                      BYTE i=0, OldTVChannel;
                      BYTE MinChannel=START_PR;
                      BYTE MaxCount;
              
                      if(!ChannelEdit_Flag)
                              ClearOSDInfo();
              
                      MaxCount = TOTAL_PR ;
              
                      OldTVChannel = TVChannel;
              
                      do {
                              i++;
C51 COMPILER V7.50   PALTUNER                                                              08/20/2007 10:23:35 PAGE 6   

                              if( i > MaxCount ) 
                              {
                                      TVChannel = DummyChannel = OldTVChannel;
                                      break;
                              }       
              
                              if(flag == UP)   DummyChannel = ( TVChannel-MinChannel + 1 ) % MaxCount + MinChannel; 
                              else  DummyChannel = ( TVChannel - MinChannel + MaxCount - 1) % MaxCount + MinChannel; 
                              
                              TVChannel = DummyChannel;
              
                              if(ChannelEdit_Flag) break;     
              
                      } while( GetTVPrSystem(TVChannel) & SKIPCHN_MASK);
                      
                      SetTVChannel();
                      return TRUE;
              }
              
              // TV Channel Scan..
              void ManualTune(BYTE flag)
              {
                      DWORD TEMP_TVFREQ;
                      
                      AudioOff();
                      
                      TEMP_TVFREQ = TVFreq;
              
                      DisplayManualScanTVProg(flag);
                      SetTVFreq( TEMP_TVFREQ ); 
                      if( IsVideoInput() ) {
                                      if( flag == UP )        TEMP_TVFREQ += FREQ_INC;
                                      else    TEMP_TVFREQ -= FREQ_INC;
                      }
              
                      while(1)
                      {
                                      if( WantToStopTVScan() )
                                      break;
              
                                      if( flag == UP )        TEMP_TVFREQ += FREQ_INC;
                                      else    TEMP_TVFREQ -= FREQ_INC;
              
                                      SetTVFreq( TEMP_TVFREQ ); 
                                  delay(20);  // Wait for 150mS
              
                                      if( IsVideoInput() ) 
                                              if(AFT(TEMP_TVFREQ)) break;
              
                                      if( (TEMP_TVFREQ > MAX_FREQUENCY ) || (TEMP_TVFREQ < MIN_FREQUENCY)) break;
                      };
              
                      if( IsAudioMuteOn() )   DisplayMuteInfo();
                      else AudioOn();
              
              }
              
              void ScanTVChannel(void)
              {
                      BYTE i;
                      BYTE str[4];
                      WORD addr;
C51 COMPILER V7.50   PALTUNER                                                              08/20/2007 10:23:35 PAGE 7   

                      DWORD TEMP_TVFREQ;
              
                      TVChannel = 0;
              
                      AudioOff();
              
                      //if( Colorsystem == SECAM_L_BAND ) TEMP_TVFREQ = SECAM_L_MIN; 
                      //else
                      TEMP_TVFREQ = MIN_FREQUENCY;
              
                      for( ; TEMP_TVFREQ < MAX_FREQUENCY; TEMP_TVFREQ += FREQ_INC ) //1Mhz++
                      {
                              if( WantToStopTVScan() ) break;
              
                              SetTVFreq( TEMP_TVFREQ ); 
                              delay(20);      // Wait for 200mS
              
                              if( IsVideoInput() ) {
                                      if(AFT(TEMP_TVFREQ)){
                                      //TVFreq = TEMP_TVFREQ; 
                                      TEMP_TVFREQ = TVFreq;   
                                      TEMP_TVFREQ += FREQ_INC*2;//32++; 2Mhz++
                                      TVChannel++;
              
                                      utoa( (WORD)TVChannel, str,10); 
                                      DisplayScanTVChannel(str);              // Display Channel
              
                                      SetTVFreqEE( TVChannel, TVFreq );
                                      SetTVPrSystem(TVChannel, 0);    // Not skip
                                      SetFineTuneEE(TVChannel, 0);    // FineTune = 0
              
                                      addr = FIRST_SAVEDPR+TVCHNAME + TVChannel*BYTEPERCHANNEL;       // Channel Name = "-----" (Default)
                                      for(i=0; i<5; i++, addr++)
                                              WriteEEP( addr, '-' );
                              } 
              
                              if( TVChannel > TOTAL_PR )      break;
                                      }                       
              
                              }//for
              
                      i=TVChannel+1;
              
                      TVChannel = DummyChannel = 1; // First Channel
              
                      SetTVChannel();
              
                      if( IsAudioMuteOn() )   DisplayMuteInfo();
                      else AudioOn();
              
                      // Erase remain channel data 
                      for( ; i <= TOTAL_PR; i++ ){
                              SetTVFreqEE( i, 0x0fff );
                              SetTVPrSystem(i, SKIPCHN_MASK); // skip
                              WriteEEP(FIRST_SAVEDPR+TVCHNAME + i*BYTEPERCHANNEL, 0xff);      // First char of the name = 0xff;
                              SetFineTuneEE(i, 0);    // FineTune = 0
                      }
              
              }
              
              /*
              void SaveChannel( BYTE chn )
C51 COMPILER V7.50   PALTUNER                                                              08/20/2007 10:23:35 PAGE 8   

              {
                      TVChannel = chn;
                      SetTVFreqEE( TVChannel, TVFreq );
                      SetTVChannel();
              }
              */
              CODE struct RegisterInfo OSDFineTuneRange={ -31, 31, 0 };
              BYTE GetFineTune(void)
              {
                      char val;
                      int rd;
                      val =  GetFineTuneEE(TVChannel) ;
                      Mapping1( val, &OSDFineTuneRange, &rd, &UserRange );
                      return (BYTE)rd;
              }
              
              BYTE ChangeFineChannel(BYTE flag)
              {
                      int rd;
                      char val;
                      WORD Freq;
              
                      val = GetFineTuneEE(TVChannel) ;
                      Printf("\r\nFine Tune:%d", (WORD)val);
              
              //      if( val & 0x80 )        rd = -(val&0x7f)
                      val = ( flag==UP ?  val+1  :  val-1  );         
                      if( val < OSDFineTuneRange.Min || val > OSDFineTuneRange.Max )
                              return 0; // Retry!!
                      Freq = GetTVFreqEE(TVChannel);
              
                      Freq = Freq + val;
                      SetTVFreq( Freq );   
                      SetFineTuneEE(TVChannel, (BYTE)val);
              
                      Mapping1( val, &OSDFineTuneRange, &rd, &UserRange );
                      return (BYTE)rd;
              }
              
              
              void GetFirstChannel(void)
              {
                      TVChannel = DummyChannel = GetTVPrEE();
                      SetTVChannel();
              }
              
              BYTE IsSavedCurChn(void)
              {                                                                  
                      return( ( GetTVPrSystem( TVChannel ) & SKIPCHN_MASK ) ? CLEARED_CHN : SAVED_CHN   );
              }
              /*
              BYTE StoreClearCurChn(void)
              {
                      BYTE val,cleared;
              
                      val = GetTVPrSystem( TVChannel );
                      if( val & SKIPCHN_MASK )        {       val &= ( ~SKIPCHN_MASK );       cleared = SAVED_CHN ;    }
                      else                                            {       val |= SKIPCHN_MASK;        cleared = CLEARED_CHN ;     }
                      
                      SetTVPrSystem( TVChannel, val );
                      return cleared;
              }
C51 COMPILER V7.50   PALTUNER                                                              08/20/2007 10:23:35 PAGE 9   

              */
              void EditTVChn(BYTE _RemoDataCode)
              {
                      WORD TempChannel; 
                      TempChannel = DummyChannel ;
              
                      if( TVChManual ) {
                              TempChannel*= 10;
                              TempChannel+= _RemoDataCode;
              
                              if      (TempChannel > TOTAL_PR )
                              {                       
                                      while( TempChannel >= 10 )
                                              TempChannel -= 10;
                              }
                      }
                      else {
                              TempChannel = _RemoDataCode;
                      }
                      
                      DummyChannel = TempChannel;
                      DisplayTVChannel(DummyChannel, 0);
                      TVChManual = 1;         // Request to run channel after timeout.
              }
              
              BYTE GetMTSType(void)
              {
                      return MTSType;
              }
              
              BYTE SetMTSType(void)
              {
                      MTSType = (MTSType==MTS_STEREO? MTS_MONO: MTS_STEREO);
                      ChangeMTS(MTSType);
                      return MTSType;
              }
              
              void InitTV(void)
              {
                      MTSType             = MTS_STEREO;
              
                      #ifdef DEBUG_TV
                      dPrintf("\r\n++(InitTV) TunerI2CAddress:0x%04x", (WORD)TVTunerI2CAddress);
                      #endif
              
                      #if TVTunerDevice==TVAVA
                      WriteI2C(0x86, 0x00, 0x30);
                      WriteI2C(0x86, 0x01, 0x10);             //Set NTSC audio
                      WriteI2C(0x86, 0x02, 0x0c);             //Set NTSC Video
                      #endif
              
              }
              
              
              
              void ResetTVValue(void)
              {
              
              }
              
              #endif  //defined( PAL_TV ) && defined(SUPPORT_TV) 

C51 COMPILER V7.50   PALTUNER                                                              08/20/2007 10:23:35 PAGE 10  


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   ----    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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