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

📄 tuner.lst

📁 TFT LCD驱动芯片T100A+AU7" Source code
💻 LST
📖 第 1 页 / 共 5 页
字号:
                              wTVFreq+=40;
                      }
C51 COMPILER V7.06   TUNER                                                                 06/16/2005 10:05:38 PAGE 12  

                      I2CWriteByte(EEPVIDEOBLOCK, 0x00, cTVNum);
                      twdDelay(NVRDELAY);
                      I2CWriteByte(EEPVIDEOBLOCK, 0x01, cTVNum);
              }
              */
              //p = CATV_CH_Tbl + ch; //Taiwan? CATV_CH_Tbl
              BOOL ChannelSel(uWORD *wTVFreq, uWORD wTVFreqMin)
              {
                      uCHAR cTemp, cTemp1,i;
              
                      SetTuner(*wTVFreq);
                      OSDDrawTVFreq(*wTVFreq);
              #ifdef PAL
                      OSDDrawBand(*wTVFreq);
              #endif
                      EX1=1;
                      twdDelay(1000); //2000
                      cTemp=TunerReadByte(0x86);
                      m_cBuff[0]=cTemp;
              
              
                      if(!(m_cBuff[0]&0x80))
                              return FALSE;
                      else
                      {
                              m_cBuff[0]=(m_cBuff[0]&0x1E)>>1;
                              if(m_cBuff[0]==0x00||m_cBuff[0]==0x0F)
                                              return TRUE;
                      }
                      m_cBuff[0]=0;
                      for(i=0;i<10;i++)
                      {
                              twdDelay(20);
                              m_cBuff[0]|=I2CReadByte(0xb8,0x3a);
                      }
              //      if(!(m_cBuff[0]&0x06))return FALSE;
                      i=0;
              
                      while((*wTVFreq>=wTVFreqMin)&&(*wTVFreq<=wTVFreqMin+40)&&(i<20))
                      {
                              if(cTemp&0x80)//Lock
                              {
                                      cTemp1=(cTemp&0x1E)>>1;
                                      if(cTemp1==0x00||cTemp1==0x0F)
                                              return TRUE;
                                      else if(cTemp1==0x01)
                                              (*wTVFreq)++;
                                      else if(cTemp1==0x02||cTemp1==0x03)
                                              (*wTVFreq)+=2;
                                      else if(cTemp1==0x04||cTemp1==0x05||cTemp1==0x06)
                                              (*wTVFreq)+=3;
                                      else if(cTemp1==0x07)
                                              (*wTVFreq)+=4;
                                      else if(cTemp1==0x08)
                                              (*wTVFreq)-=4;
                                      else if(cTemp1==0x09||cTemp1==0x0A||cTemp1==0x0B)
                                              (*wTVFreq)-=3;
                                      else if(cTemp1==0x0C||cTemp1==0x0D)
                                              (*wTVFreq)-=2;
                                      else if(cTemp1==0x0E)
                                              (*wTVFreq)--;
              
C51 COMPILER V7.06   TUNER                                                                 06/16/2005 10:05:38 PAGE 13  

                              }
                              else
                                      break;
                              //{
                              //      wTVFreq+=4;
                              i++;
                              SetTuner(*wTVFreq);
                              OSDDrawTVFreq(*wTVFreq);
              #ifdef PAL
                          OSDDrawBand(*wTVFreq);
              #endif
                              EX1=1;
                              twdDelay(300);  //1000
                              cTemp=TunerReadByte(0x86);
                      }
              
                      return FALSE;
              }
              
              
              void SetTuner(uWORD wChanneF)
              {
              #if 1
                      uCHAR k;
              #ifdef PAL
                      I2CWriteByte(0x86, 0x00,0xd6);
                      I2CWriteByte(0x86, 0x01,0x70);
                      I2CWriteByte(0x86, 0x02,m_cSoundSystem);
              #endif
              #ifdef NTSC
              //      I2CWriteByte(0x86, 0x00,0xd6);
              //      I2CWriteByte(0x86, 0x01,0x70);
              //      I2CWriteByte(0x86, 0x02,0x0f);
                      I2CWriteByte(0x86, 0x00,0x16);
                      I2CWriteByte(0x86, 0x01,0x30);
                      I2CWriteByte(0x86, 0x02,0x04);//IF 45.75MHz
              #endif
                      wChanneF&=0x7fff;
                      if(wChanneF < VLMAX)
                              k=BAND_VL;
                      else if(wChanneF > VHMAX)
                              k=BAND_UHF;
                      else
                              k=BAND_VH;
              #ifdef NTSC
                      wChanneF-=0x7c;
              #endif
                      TunerWriteByte(0xC6,(uCHAR)(wChanneF>>8),(uCHAR)(wChanneF&0x00FF),k);
              #endif
              
              }
              
              uCHAR TVEEPGetChannel(void)
              {
                      uCHAR cTotal, cNum;
              
              //      cTotal = I2CReadByte(EEPVIDEOBLOCK, 0x00);
              //      twdDelay(NVRDELAY);
                      cNum = I2CReadByte(EEPVIDEOBLOCK, 0x01);
                      if((cNum>cTotal)||(cNum<1))
                      {
              //              cNum=1;
C51 COMPILER V7.06   TUNER                                                                 06/16/2005 10:05:38 PAGE 14  

              //              twdDelay(NVRDELAY);
              //              I2CWriteByte(EEPVIDEOBLOCK, 0x00, cNum);
              //              twdDelay(NVRDELAY);
              //              I2CWriteByte(EEPVIDEOBLOCK, 0x01, cNum);
              //              twdDelay(NVRDELAY);
              //              I2CWriteByte(EEPVIDEOBLOCK, idTVCHANNEL_STAT+(cNum-1)*2, (uCHAR)(TVFREQ_BEGIN>>8));
              //              twdDelay(NVRDELAY);
              //              I2CWriteByte(EEPVIDEOBLOCK, idTVCHANNEL_STAT+(cNum-1)*2+1, (uCHAR)(TVFREQ_BEGIN&0x00FF));
                      }
                      return cNum;
              }
              
              uWORD TVSetChannel(uCHAR cNum)
              {
                      uWORD wTemp;
                      twdDelay(NVRDELAY);
                      if(m_bAir_Cable)
                      {
                      wTemp=I2CReadByte(EEPVIDEOBLOCK, idTVCHANNEL_STAT+cNum*2);
                      wTemp<<=8;
                      twdDelay(NVRDELAY);
                      wTemp|=I2CReadByte(EEPVIDEOBLOCK, idTVCHANNEL_STAT+cNum*2+1);
                      }
                      else
                      {
                      wTemp=I2CReadByte(EEPVIDEOBLOCK+2, idTVCHANNEL_STAT+cNum*2);
                      wTemp<<=8;
                      twdDelay(NVRDELAY);
                      wTemp|=I2CReadByte(EEPVIDEOBLOCK+2, idTVCHANNEL_STAT+cNum*2+1);
                      }
              //      SetTuner(wTemp);
                      //I2CWriteByte(EEPVIDEOBLOCK, 0x01,cTemp1);
              
                      return wTemp;
              }
              
              void ResetTVChannel(void)
              {
                      uCHAR i;
                      OSDShowRESET(0);
                      OSDResetVideoData();
                      OSDSetVideoValues();
                      EEPSaveVideoData();
              #ifdef NTSC
                      m_bAir_Cable=0;
                      for(i=0;i<83;i++)EEPSaveTVChannel(i, DK_CCIR1[i]);
                      m_bAir_Cable=1;
                      for(i=0;i<99;i++)EEPSaveTVChannel(i, DK_CCIR2[i]);
                      i=I2CReadByte(EEPVIDEOBLOCK, idVIDEO_FLAG_INDEX);
                      i|=0x01;
                      I2CWriteByte(EEPVIDEOBLOCK, idVIDEO_FLAG_INDEX,i);
                      OSDShowTVSource(0);
              #endif
              #ifdef PAL
                      for(i=0;i<96;i++)EEPSaveTVChannel(i, DK_CCIR[i]);
              #endif
                      OSDShowRESET(1);
              }
              #if 0
              void SetChannel(uCHAR cChannel)
              {
                      unsigned int *p;
C51 COMPILER V7.06   TUNER                                                                 06/16/2005 10:05:38 PAGE 15  

                      p = DK_CCIR + cChannel;
                      SetTuner(*p);
              }
              #endif
              
              #endif
 868          
 869          
 870          
 871          
 872          
 873          
 874          
 875          
 876          
 877          
 878          
 879          
 880          
 881          
 882          
 883          
 884          
 885          
C51 COMPILER V7.06   TUNER                                                                 06/16/2005 10:05:38 PAGE 16  

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


eSPANISH . . . . . . . . . . . . . . .  E_CONST  -----  U_CHAR   -----  1
P0 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0080H  1
COLOR. . . . . . . . . . . . . . . . .  TYPEDEF  -----  STRUCT   -----  3
  cColorR. . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0000H  1
  cColorG. . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0001H  1
  cColorB. . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0002H  1
isrcSVIDEO . . . . . . . . . . . . . .  E_CONST  -----  U_CHAR   -----  1
P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1

⌨️ 快捷键说明

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