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

📄 mstar.lst

📁 MSTARXX.rar
💻 LST
📖 第 1 页 / 共 5 页
字号:
              
                  if(IsVideoPortInUse())
                  {
                      msWriteRegsTbl(tVideoFCC);    // Nelson 2006-03-25 Add
                      if(PortSwitch==Input_TV)
                          msWriteRegsTbl(t_TVInitializeFCC);
                      else
                          msWriteRegsTbl(t_AVInitializeFCC);
                  }
              
                      if (bk1_2F_value==PORT_CVBS_SV1C)
                      bk1_90_mask=_BIT3;
              
                      msWriteByte(BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU);
                      msWriteByte(BK1_2F, bk1_2F_value);
              
                      bk1_2F_value=msReadByte(BK1_90_SARADC_CTRL);
                      bk1_2F_value&=~_BIT3;
C51 COMPILER V8.18   MSTAR                                                                 09/29/2009 23:58:02 PAGE 6   

                      msWriteByte(BK1_90_SARADC_CTRL, bk1_2F_value|bk1_90_mask);
              
                      msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
              }
              #elif (MST_CHIP==MST720A)
              void SwitchInputPort(InputPortType PortSwitch)
              {
                      BYTE bk1_2F_value;
                      BYTE bk1_90_mask=0;
              
                      switch(PortSwitch)
                      {
                              case Input_TV:
                                      bk1_2F_value=TV_RealPortSet;
                                      break;
                              case Input_CVBS1:
                                      bk1_2F_value=CVBS1_RealPortSet;
                                      //bk1_90_mask=_BIT3;
                                      break;
                              case Input_SVIDEO1:
                                      bk1_2F_value=SVIDEO1_RealPortSet;
                                      break;
                      }
              
                  if(IsVideoPortInUse())
                  {
                     msWriteRegsTbl(tVideoFCC);    // Nelson 2006-03-25 Add
                      if(PortSwitch==Input_TV)
                          msWriteRegsTbl(t_TVInitializeFCC);
                      else
                          msWriteRegsTbl(t_AVInitializeFCC);
                  }
              
                      msWriteByte(BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU);
                      msWriteByte(BK1_2F, bk1_2F_value);
              
                      bk1_2F_value=msReadByte(BK1_90_SARADC_CTRL);
                      bk1_2F_value&=~_BIT3;
                      msWriteByte(BK1_90_SARADC_CTRL, bk1_2F_value|bk1_90_mask);
              
                      msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
              }
              #endif
 346          
 347          
 348          void SetChromaMode(void)
 349          {
 350   1              BYTE uctemp, temp2;
 351   1      
 352   1      #if TV_ENABLE
 353   1              if(IsTVInUse())
 354   1                  {
 355   2                      uctemp=((g_TVChSetting.TvCurChannelMisc&ColorSysMask)>>4)%CHROMA_NUMS;
 356   2              devSetSWF(((g_TVChSetting.TvCurChannelMisc&SoundSysMask)%TV_SOUND_NUMS));
 357   2                  }
 358   1              else
 359   1      #endif
 360   1      
 361   1              uctemp=g_VideoSetting.VideoColorSys%CHROMA_NUMS;
 362   1              msWriteByte(BK0_00_REGBK, REG_BANK3_COMB);
 363   1      
 364   1              switch (uctemp)
C51 COMPILER V8.18   MSTAR                                                                 09/29/2009 23:58:02 PAGE 7   

 365   1              {
 366   2                  case CHROMA_SECAM:
 367   2                  case CHROMA_AUTO:
 368   2                          temp2=0;
 369   2                          break;
 370   2                  case CHROMA_PAL:
 371   2                          temp2=0x02;
 372   2                          break;
 373   2                  case CHROMA_NTSC:
 374   2                          temp2=0x01;
 375   2                          break;
 376   2              }
 377   1              msWriteByteMask(BK3_1C_CTRLSWCH, temp2, 0x03);
 378   1              msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
 379   1      }
 380          
 381          void msLineBufferDelayCtl( BOOL bInterlace )
 382          {
 383   1          BYTE ucTmp = 0;
 384   1          bInterlace=bInterlace;
 385   1          ucTmp = 0x20;
 386   1          msWriteByte(BK0_0F_ASCTRL, ucTmp );
 387   1      }
 388          
 389          ///////////////////////////////////////////////////////////////////////////////
 390          // <Function>: msSetInterrupt
 391          //
 392          // <Description>: Set chip interrrupt.
 393          //
 394          // <Parameter>:  -  <Flow>  -  <Description>
 395          //-----------------------------------------------------------------------------
 396          //    IntSel     -    In    -  interrupt setting
 397          ///////////////////////////////////////////////////////////////////////////////
 398          void msSetInterrupt(msInterruptType IntSel)
 399          {
 400   1          BYTE ucBank;
 401   1      
 402   1          ucBank = msReadByte( BK0_00_REGBK);
 403   1      
 404   1          msWriteByte(BK0_00_REGBK,REG_BANK_SCALER);
 405   1      
 406   1          msWriteByte(BK0_1D_INTENC, 0x00); // Interrupt enable control byte C
 407   1          msWriteByte(BK0_1F_INTEND, 0x00); // Interrupt enable control byte D
 408   1          switch( IntSel )
 409   1          {
 410   2              case INTERRUPT_PC:
 411   2                  msWriteByte(BK0_1F_INTEND, 0x0E); // V change,H loss,V loss
 412   2                  break;
 413   2              case INTERRUPT_YPBPR:
 414   2                  msWriteByte(BK0_1F_INTEND, 0x06); // H loss,V loss
 415   2                  break;
 416   2              case INTERRUPT_INPUT_VSYNC:
 417   2                  msWriteByte(BK0_1D_INTENC, 0x40); // H loss,V loss
 418   2                  break;
 419   2          }
 420   1      
 421   1          msWriteByte(BK0_00_REGBK, ucBank);
 422   1      }
 423          
 424          void ChipPowerUpcontrol(void)
 425          {
 426   1          BYTE vbk0_e0,vbk0_e1,vbk1_31,vbk1_32;
C51 COMPILER V8.18   MSTAR                                                                 09/29/2009 23:58:02 PAGE 8   

 427   1      
 428   1          if( IsCVBSInUse())
 429   1          {
 430   2              vbk0_e0=0x80;
 431   2              vbk0_e1=0x1C;
 432   2              vbk1_31=0x24;
 433   2              vbk1_32=0x76;
 434   2          }
 435   1          else if(IsSVideoInUse())
 436   1          {
 437   2              vbk0_e0=0x90;
 438   2              vbk0_e1=0x18;
 439   2              vbk1_31=0x20;
 440   2              vbk1_32=0x34;
 441   2          }
 442   1      #if VGA_ENABLE
 443   1          else if(IsVGAInUse())
 444   1          {
 445   2              vbk0_e0=0xb0;
 446   2              vbk0_e1=0x11;
 447   2              vbk1_31=0x00;
 448   2              vbk1_32=0x04;
 449   2          }
 450   1      #endif
 451   1      
 452   1          msWriteByte(BK0_E0_PDMD0, vbk0_e0);
 453   1          msWriteByte(BK0_E1_PDMD1, vbk0_e1);
 454   1          Delay1ms(5);//(50);
 455   1          msWriteByte(BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU); // switch to Bank 1
 456   1          msWriteByte(BK1_31, vbk1_31);
 457   1          msWriteByte(BK1_32, vbk1_32);
 458   1      
 459   1          msWriteByte(BK0_00_REGBK, REG_BANK_SCALER); // switch to Bank 0
 460   1      }
 461          
 462          void msSetupInputPort(void)
 463          {
 464   1              SwitchInputPort(g_VideoSetting.InputType);
 465   1      
 466   1          ChipPowerUpcontrol();
 467   1      
 468   1      #if VGA_ENABLE
 469   1          if( IsVGAInUse()) // PC
 470   1          {
 471   2              msWriteByte(BK0_0D_LYL, 0x00);
 472   2              msAdjustPCRGB(0x80, 0x80, 0x80);
 473   2              msWriteByte(BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU );
 474   2              msWriteByte( BK1_24, 0x50 );
 475   2              msWriteByte( BK1_25, 0 ); // FPLL_DIVN => Divide by 1
 476   2              msWriteByte( BK1_29, 0x18 ); // 20051007
 477   2              msWriteByte( BK1_2C, 0x00 ); // I clamp
 478   2              msWriteByte( BK0_00_REGBK, REG_BANK_SCALER);
 479   2              //msWriteByte( BK0_37, 0 ); // 20051004 Lizst: Disable D-Edge
 480   2              msWriteByte( BK0_83_DELTA_L, 0 );
 481   2              msWriteByte( BK0_84_DELTA_H, 0 );
 482   2                      //should turn off in VGA mode,we don't support YPBPR here
 483   2              //msLPFCtl(LPF_CTL_ANALOG_PORT);
 484   2              msLPFCtl(LPF_CTL_TURN_OFF);
 485   2              msWriteRegsTbl(tProgVGAPort); // program VGA port
 486   2          }
 487   1          else // CVBS/SV/CCIR656
 488   1      #endif
C51 COMPILER V8.18   MSTAR                                                                 09/29/2009 23:58:02 PAGE 9   

 489   1          {
 490   2                  msWriteByte(BK0_0D_LYL, 0x07);
 491   2      
 492   2                  msWriteByte(BK0_10_COCTRL1,COCTRL1_VALUE);
 493   2              if( IsVideoPortInUse())
 494   2              {
 495   3                  //msWriteByte( BK0_00_REGBK, REG_BANK3_COMB );
 496   3                  //msWriteBit( BK3_11_COMBCFGB, 1, _BIT5 ); // Patch IC
 497   3      
 498   3                  msWriteByte(BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU );
 499   3                  msWriteByte( BK1_24, 0x40 );
 500   3                  msWriteByte( BK1_25, 0x01 ); // FPLL_DIVN => Divide by 2
 501   3                  msWriteByte( BK1_29, 0x1F ); // 20051007
 502   3                  msWriteByte( BK1_2C, 0xF0 ); // 20050624 David.Shen: I clamp
 503   3      
 504   3                  // Reset ADC register for internal VD
 505   3                  msWriteByte( BK1_04_RGAIN_ADC, 0x80);
 506   3                  msWriteByte( BK1_05_GGAIN_ADC, 0x80);
 507   3                  msWriteByte( BK1_06_BGAIN_ADC, 0x80);
 508   3                  msWriteByte( BK1_07_ROFFS_ADC, 0x80);
 509   3                  msWriteByte( BK1_08_GOFFS_ADC, 0x80);
 510   3                  msWriteByte( BK1_09_BOFFS_ADC, 0x80);
 511   3                  msWriteByte( BK1_18_CALEN, 0);
 512   3      
 513   3                  //if( g_ucmsVDCtl&MSVD_CTL_FLAG_NOISE_HANDLER )
 514   3                      msVDNoiseHandlerReset();
 515   3      
 516   3                  if( IsCVBSInUse())
 517   3                  {
 518   4                              msWriteRegsTbl(tProgMsAvPort); // program CVBS port
 519   4                      msWriteByte(BK0_00_REGBK, REG_BANK2_VD);
 520   4                      msWriteByteMask(BK2_1A_SVD_EN, 0x00, 0xC0); // Disable SV
 521   4                      msWriteBit(BK2_1F, 0, _BIT7); // Disable clamp C
 522   4                      msWriteByte(BK2_7F,0x63);
 523   4                      msWriteByte(BK0_00_REGBK, REG_BANK3_COMB);
 524   4                      msWriteBit(BK3_10_COMBCFGA, 0, _BIT7); // Enable comb filter
 525   4                      msWriteBit(BK3_A1_SCM_IDSET1, 0, _BIT3); // Disable Secam-SV
 526   4                  }
 527   3                  else if( IsSVideoInUse())
 528   3                  {
 529   4                              msWriteRegsTbl(tProgMsSvPort); // program SV port
 530   4                              msWriteByte(BK0_00_REGBK, REG_BANK2_VD);
 531   4                      msWriteByteMask(BK2_1A_SVD_EN, 0xC0, 0xC0); // Enable SV
 532   4                      msWriteBit(BK2_1F, 1, _BIT7); // Enable clamp C
 533   4                      msWriteByte(BK2_7F,0x62);
 534   4                      msWriteByte(BK0_00_REGBK, REG_BANK3_COMB);
 535   4                      msWriteBit(BK3_10_COMBCFGA, 1, _BIT7); // Bypass comb
 536   4                      msWriteBit(BK3_A1_SCM_IDSET1, 1, _BIT3); // Disable Secam-SV
 537   4                  }
 538   3                      msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
 539   3      
 540   3                  msVDCombLineBufferCtl( MSVD_COMB_LINE_BUFFER_CTL_HW_AUTO );
 541   3      
 542   3                  #if TV_ENABLE
 543   3                  if( IsTVInUse() )
 544   3                  {
 545   4                      hw_SetTunerOn();
 546   4                      #if(!ENABLE_VCR_HANDLER)
 547   4                      msWriteByte(BK0_00_REGBK, REG_BANK2_VD);
 548   4                      msWriteByteMask(BK2_6A_VCR_DETECT1, 0x80, 0xC0); // 20051128.Eric.Lin: Force non-VCR mode
 549   4                      #endif
 550   4      
C51 COMPILER V8.18   MSTAR                                                                 09/29/2009 23:58:02 PAGE 10  

 551   4                      msWriteByte(BK0_00_REGBK, REG_BANK3_COMB);
 552   4                      //msWriteByte( BK3_2F, 0x00 ); // IF_COEF for tuner input
 553   4                      msWriteByte(BK3_24_TH2DHOR, 0x0A); // C-Trap disable: For PAL-DEM
 554   4                      msWriteByteMask(BK3_21_COMB2DCFGB, 0x00, 0x08); //
 555   4                  }
 556   3                  else
 557   3                  #endif
 558   3                  {
 559   4                      hw_SetTunerOff();
 560   4                      #if(!ENABLE_VCR_HANDLER)
 561   4                      msWriteByte(BK0_00_REGBK, REG_BANK2_VD);
 562   4                      msWriteByteMask(BK2_6A_VCR_DETECT1, 0x40, 0xC0); // 20051128.Eric.Lin: Auto VCR mode
 563   4                      #endif
 564   4                      msWriteByte(BK0_00_REGBK, REG_BANK3_COMB);
 565   4                      //msWriteByte( BK3_2F, 0x00 );
 566   4                      msWriteByte(BK3_24_TH2DHOR, 0x20); // C-Trap disable: For PAL-DEM
 567   4                      msWriteByteMask(BK3_21_COMB2DCFGB, 0x08, 0x08); //
 568   4                  }
 569   3                      msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
 570   3              }
 571   2          }
 572   1      
 573   1          msLineBufferDelayCtl( 0 ); // For Change source
 574   1      
 575   1      /*
 576   1          if(!IsVGAInUse())

⌨️ 快捷键说明

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