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

📄 tuner.lst

📁 车载DVD osdIC TW8816原厂代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
                      dPuts("\r\n__(SetTVFreq)");
                      #endif
              }
              
              //BYTE GetTVChannel(void)
              //{
              //      return TVChannel;
              //}
              //---------------------------------------------------------------------------
              //Auto Fine Tune
              //      if (FINE == 0) {        
                       // +/-1.5Mhz : Data +/-24, : AutoScan 
C51 COMPILER V7.50   TUNER                                                                 04/01/2008 15:02:43 PAGE 5   

                       // +/-2.0Mhz : Data +/-32  : ManualScan
                       // Data 1: 62.25Khz
              //      }  
              /*#ifdef PAL_TV
              // Read Tuner ADC Data
              BYTE ReadTuner(void)
              {
                      BYTE Val;
              
                      I2CStart();
                      I2CWriteData(TVTunerI2CAddress & 0xFE);
                      I2CStart();
                      I2CWriteData(TVTunerI2CAddress | 0x01);
                      Val = I2CReadData();
                      I2CStop();
              
                      Printf("\rTuner ADC:0x%02x",(WORD)Val);
              
                      return Val;
              }
              
              BYTE AFT( WORD TVFreqDiv )
              {
                      BYTE amount = 8, Check_Cnt=8, val;
                      
                      //FreqDiv = FreqDiv & ( ~SKIPCHN_MASK );
                      if( IsNoInput() ) return FALSE;  // ???
              
                      SetTVFreq(TVFreqDiv);
                      delay(30);      
                      val = ReadTuner();
                      if(((val & 0x07) < 0x03 ) && ((val & 0x07) > 0x01 ))    
                                      goto true_aft;
              
                      if( (val & 0x07) == 4 )         {
                              TVFreqDiv -= 12;
                              SetTVFreq(TVFreqDiv);
                              delay(30);      
                              val = ReadTuner();
                              if ( (val & 0x07) == 4 ) {
                                      TVFreqDiv += 24;
                                      SetTVFreq(TVFreqDiv);
                                      delay(30);      
                                      val = ReadTuner();
                                      if ( (val & 0x07) == 4 ) {
                                              TVFreqDiv -= 36;
                                              SetTVFreq(TVFreqDiv);
                                              delay(30);      
                                              val = ReadTuner();
                                              if ( (val & 0x07) == 4 ) {
                                                      TVFreqDiv += 48;
                                                      SetTVFreq(TVFreqDiv);
                                                      delay(30);      
                                                      val = ReadTuner();
                                              if ( (val & 0x07) == 4 )  goto fail_aft;
                                          }
                                      }
                              }
                      }
              
                      do{
                              SetTVFreq(TVFreqDiv);
C51 COMPILER V7.50   TUNER                                                                 04/01/2008 15:02:43 PAGE 6   

                              delay(30);      
                              val = ReadTuner();
                              if ( (val & 0x07) > 2 )  
                                      TVFreqDiv += amount;
                              else if( (val & 0x07) < 2 )  
                                      TVFreqDiv -= amount;
                              else goto true_aft; // == 2 ?
              
                              amount = (amount==1 ? 1 : amount >> 1 );
              
                        }while( Check_Cnt-- > 0 );
                        goto fail_aft;
              
                      if(((val & 0x07) < 0x03 ) && ((val & 0x07) > 0x01 )) goto true_aft;
              
              fail_aft:
                              return FALSE;
              
              true_aft:
                              if( IsNoInput() ) return FALSE;
                              if(IsVideoInput())      return TRUE;
                              else return FALSE;
              }
              #endif
              */
              void SetTVChannel(void)
              {
                      WORD TVFreq;
                      char Fine;
              
                      //BYTE val;
                      //val = ReadDecoder(MISC3);
                      //WriteDecoder(MISC3, val|0x08);  // Force to output blue or black Screen
                      //ljy061303..Already in DisplayTVChannel()..CheckAndClearBlockedInput();
                      //ljy061303..Already in CheckAndClearMuteOn..ClearMuteOn();
                      PanelBlack(1);
                      CheckAndClearMuteOn();
                      AudioOff();     // to remove Pop Noise.
                      delay(5);
              
                      TVFreq = Get_Channel2Divid();
              
                      Fine = GetFineTuneEE(TVChannel);// - 31;
                      #ifdef DEBUG_TV
                      Printf("\rTVFreqDiv:0x%04x",(WORD)Fine);
                      #endif
                      if( Fine ) SetTVFreq( TVFreq + Fine); // 
                      else{
                      
                              //if( AFT(TVFreq)) ;
                              //else 
                                      SetTVFreq( TVFreq ); // AFT Fail
                      }
                      
                      delay(10);
                      
                      //SWReset();
                      //WriteDecoder(MISC3, val);     // Disable Blue/black Screen
                      //WriteDecoder(0x2f, 0x91); // Rewrite Clroma low pass filter data for Noinput color killer problem.
                      DisplayTVChannel(TVChannel,1);          
                      SetTVPrEE();
                      PanelBlack(0);
C51 COMPILER V7.50   TUNER                                                                 04/01/2008 15:02:43 PAGE 7   

              
                      AudioOn();                      //SetMSPVol();
              
              
              
              }
              
              //=======================  Called from outside ==============================================
              void ChangeTVChannel(BYTE NewCh)
              {
                      TVChManual = 0;
              
                      if( NewCh >= MIN_TVCHN[TVInputSel - AIRTV] && NewCh <= MAX_TVCHN[TVInputSel - AIRTV] )          
                      {
                              TVChannel = DummyChannel = NewCh;
                              SetTVChannel();
                      }
              }
              
              BYTE UpDownTVChannel(BYTE flag)
              {
                      BYTE i=0, OldTVChannel;
                      BYTE MinChannel=0;
                      BYTE MaxCount;
              
                      ClearOSDInfo();
              
                      MinChannel = MIN_TVCHN[TVInputSel - AIRTV];
                      MaxCount = MAX_TVCHN[TVInputSel - AIRTV]  -  MinChannel + 1;
              
                      OldTVChannel = TVChannel;
              
                      do {
                              i++;
                              if( i > MaxCount ) 
                              {
                                      TVChannel = DummyChannel = OldTVChannel;
                                      break;
                              }       
              
                              if(flag == UP)   DummyChannel = ( TVChannel + 1 - MinChannel) % MaxCount + MinChannel; 
                              else  DummyChannel = ( TVChannel + MaxCount - 1 - MinChannel) % MaxCount + MinChannel; 
                              
                              TVChannel = DummyChannel;
              
                      } while( GetTVPrSystem(TVChannel) & SKIPCHN_MASK);
                      
                      SetTVChannel();
                      return TRUE;
              }
              
              // TV Channel Auto Scan..
              void ScanTVChannel(void)
              {
                      BYTE i;
                      BYTE str[4];
                      DWORD TEMP_TVFREQ;
                      #ifdef SUPPORT_HRCIRC
                      BYTE HRC_Count = 0;
                      BYTE STD_Count = 0;
                      bit HRC_Flag=0, IRC_Flag = 0;
                      #endif
C51 COMPILER V7.50   TUNER                                                                 04/01/2008 15:02:43 PAGE 8   

                      BYTE PreTVChannel;
              
                      PreTVChannel = TVChannel;
                      AudioOff();
              
                      for(i=MIN_TVCHN[TVInputSel-AIRTV]; i<= MAX_TVCHN[TVInputSel-AIRTV]; i++) {
              
                              if( WantToStopTVScan() )
                                      break;
              
                              TVChannel = i;
                              SetTVPrSystem(TVChannel, SKIPCHN_MASK); // skip
                              SetFineTuneEE(TVChannel, 0);
                              TEMP_TVFREQ = Get_Channel2Divid(); // Get Freq Data from Channel table. 
              
                              utoa( (WORD)i, str,10);
                              DisplayScanTVChannel(str);              
              
                              #ifdef SUPPORT_HRCIRC
                              // HRC Check
                              if( (TVChannel != 5) && (TVChannel != 6)){
                                              SetTVFreq( TEMP_TVFREQ-20 );       // STD-1.25 Mhz
                                              delay(30);      // Wait for 100mS
                                              if(IsVideoInput()) 
                                              {       
                                                      HRC_Count++ ;
                                                      //Video_Status = TRUE;
                                                      SetTVPrSystem(TVChannel, 0);    // Not skip
                                              }
                              }
                                      
                              if( (TVChannel == 5) || (TVChannel == 6)){
                                      // STD
                                              SetTVFreq( TEMP_TVFREQ);           // STD
                                              delay(30);      
                                              if(IsVideoInput()) 
                                              {       
                                                      STD_Count++ ;

⌨️ 快捷键说明

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