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

📄 mstar.lst

📁 MSTARXX.rar
💻 LST
📖 第 1 页 / 共 5 页
字号:
 577   1              msFieldDetectCtl();
 578   1      
 579   1      #if SOG_ENABLE
 580   1              msFieldDetectCtl();
 581   1      #endif
 582   1      */
 583   1          msFieldDetectCtl();
 584   1      
 585   1          if( IsVideoPortInUse())
 586   1          {
 587   2              #if(ENABLE_VD_DSP)
 588   2              //g_ucmsVDCtl |= MSVD_CTL_FLAG_VSYNC;
 589   2              #endif
 590   2              msVDReset(); // When change source
 591   2          }
 592   1          else
 593   1          {
 594   2              #if(ENABLE_VD_DSP)
 595   2              //g_ucmsVDCtl &= (~MSVD_CTL_FLAG_VSYNC);
 596   2              VD_DSP_Ctl( _DISABLE, 525 ); // Disable DSP
 597   2              #endif
 598   2      
 599   2              //if( g_ucmsVDCtl2&MSVD_CTL2_FLAG_AGC_PROCESSOR )
 600   2              VD_AGC_Ctl( 0 ); // Disable SW AGC
 601   2          }
 602   1      
 603   1              msSetUserPref();
 604   1          msWriteByte( BK0_00_REGBK, REG_BANK_SCALER);
 605   1      }
 606          //*******************************************************************
 607          // Function Name: msPowerUp
 608          //
 609          // Decscription: Power on chip from power down mode
 610          //
 611          // callee: msWriteByte() in ms_rwreg.c
 612          //
C51 COMPILER V8.18   MSTAR                                                                 09/29/2009 23:58:02 PAGE 11  

 613          // caller: Power_PowerOnSystem() in power.c
 614          //*******************************************************************
 615          void msPowerUp(void)
 616          {
 617   1              msWriteByte(BK0_21_PLLCTRL2, 0); // power on master & output PLL
 618   1              msWriteByte(BK0_E2_SWRST0, OP2R_B|ADCR_B); // reset graphic port RO register
 619   1              msWriteByte(BK0_E2_SWRST0, 0);
 620   1      
 621   1          ChipPowerUpcontrol();
 622   1      
 623   1          Delay1ms(5);//(50);
 624   1          msWriteByte(BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU); // switch to Bank 1
 625   1      
 626   1      #if PANEL_ANALOG_TCON
 627   1          msWriteByte(BK1_A9_PD_VDAC, 0x00);
 628   1      #else
                  msWriteByte(BK1_4C, 0x5F);
              #endif
 631   1      
 632   1          msWriteByte(BK0_00_REGBK, REG_BANK_SCALER); // switch to Bank 0
 633   1          Delay1ms(5);//(50);
 634   1          msWriteByte(BK0_F4_TRISTATE, 0);
 635   1      
 636   1      #if ENABLE_MCU_USE_INTERNAL_CLOCK
 637   1          if( g_bMcuUseNewClock == 0 )
 638   1              McuUseInternalClock();
 639   1      #endif
 640   1      }
 641          
 642          ///////////////////////////////////////////////////////////////////////////////
 643          // <Function>: msSoftwareReset
 644          //
 645          // <Description>: MST chip software reset.
 646          //
 647          // <Parameter>:  -  <Flow>  -  <Description>
 648          //-----------------------------------------------------------------------------
 649          // ucParam       -    In    -  Software reset parameter
 650          // ucDelayTime   -    In    -  Delay time(unit: 1ms)
 651          ///////////////////////////////////////////////////////////////////////////////
 652          void msSoftwareReset(BYTE wParam, BYTE ucDelayTime)
 653          {
 654   1          msWriteByte(BK0_E2_SWRST0, wParam);
 655   1          Delay1ms(ucDelayTime);
 656   1          msWriteByte(BK0_E2_SWRST0, 0x00);
 657   1      }
 658          
 659          //*******************************************************************
 660          // Function Name: msPowerDown
 661          //
 662          // Decscription: Power down chip
 663          //
 664          // callee: msWriteByte() in ms_rwreg.c
 665          //
 666          // caller: Power_PowerOffSystem() in power.c
 667          //*******************************************************************
 668          void msPowerDown(void)
 669          {
 670   1          BYTE ucBank;
 671   1          ucBank = msReadByte(BK0_00_REGBK);
 672   1          msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
 673   1          #if ENABLE_MCU_USE_INTERNAL_CLOCK
 674   1          msWriteByte(BK0_EE_PDMD2, 0 );
C51 COMPILER V8.18   MSTAR                                                                 09/29/2009 23:58:02 PAGE 12  

 675   1          g_bMcuUseNewClock = 0;
 676   1          #endif
 677   1      
 678   1          msWriteByte(BK0_F4_TRISTATE, 0xFF);
 679   1          msWriteByte(BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU); // switch to Bank 1
 680   1          msWriteByte(BK1_31, 0x7F);
 681   1          msWriteByte(BK1_32, 0xFF);
 682   1      
 683   1          msWriteByte(BK1_45, 0x01);
 684   1      
 685   1      #if PANEL_ANALOG_TCON
 686   1          msWriteByte(BK1_A9_PD_VDAC, 0x0F);
 687   1      #else
                  msWriteByte(BK1_4C, 0x5F);
              #endif
 690   1      
 691   1          msWriteByte(BK0_00_REGBK, REG_BANK_SCALER); // switch to Bank 0
 692   1          msWriteByte(BK0_E0_PDMD0, 0xB0);
 693   1          msWriteByte(BK0_E1_PDMD1, 0xFF);
 694   1      
 695   1          msWriteByte(BK0_00_REGBK, ucBank);
 696   1      
 697   1          TH1 = TIMER1_MODE2_TH1;      // set timer1(buad rate)
 698   1          TR1 = 1;    // timer1 run
 699   1          PX1 = 1; // set INT1 priority high      //Nicolee 20051231 add for low power mode ir power on set
 700   1      
 701   1          #if(IR_FORMAT == IR_RC5)
                  PT2 = 1;
                  #endif
 704   1      }
 705          
 706          void LoadGammaTbl(void)
 707          {
 708   1          BYTE i;
 709   1          BYTE count;
 710   1      
 711   1          msWriteByte(BK0_91_GAMMA_ADR_PORT,0x00);
 712   1          msWriteByte(BK0_90_GAMMA_EN,msReadByte(BK0_90_GAMMA_EN)|_BIT1);
 713   1          for (i=0;i<3;i++)
 714   1          {
 715   2                  for(count=0;count<33;count++)
 716   2                      msWriteByte(BK0_92_GAMMA_DAT_PORT,tGammaTableNormal[i][count]);
 717   2          }
 718   1      }
 719          
 720          void msInitGamma(void)
 721          {
 722   1          msWriteByte(BK0_90_GAMMA_EN, GAMMA_EN_B);
 723   1              LoadGammaTbl();
 724   1      }
 725          
 726          void SystemDelay_translate_To_Dsp_Processor(BYTE wDelaycount)
 727          {
 728   1              BYTE i;
 729   1              for( i = 0; i < wDelaycount; i ++ )
 730   1              {
 731   2                  Delay1ms(10);
 732   2              #if( ENABLE_VD_DSP&&((DSP_RUN_MODE == DSP_RUN_MODE_POLLING)||(DSP_RUN_MODE == DSP_RUN_MODE_TIMER_AND_POLL
             -ING)) )
 733   2                  //if( g_ucmsVDCtl & MSVD_CTL_FLAG_VSYNC )
 734   2                  {
 735   3                      VD_DSP();
C51 COMPILER V8.18   MSTAR                                                                 09/29/2009 23:58:02 PAGE 13  

 736   3                  }
 737   2              #endif
 738   2              }
 739   1      }
 740          
 741          
 742          WORD GetStdModeHFreq( BYTE ucModeIdx )
 743          {
 744   1          return tStandardMode[ucModeIdx].HFreq;
 745   1      }
 746          
 747          
 748          WORD GetStdModeHTotal( BYTE ucModeIdx )
 749          {
 750   1          if (tStandardModeResolution[tStandardMode[ucModeIdx].ResIndex].DispWidth < PanelWidth)
 751   1              return tStandardMode[ucModeIdx].HTotal* 2;
 752   1          else
 753   1              return tStandardMode[ucModeIdx].HTotal;
 754   1      }
 755          
 756          
 757          WORD msCalculateHFreqX10( WORD wHPeriod )
 758          {
 759   1          return ((((DWORD)MST_CLOCK_KHZ * 10) + (wHPeriod / 2)) / wHPeriod); // kHz
 760   1      }
 761          
 762          
 763          BYTE msCalculateVSyncTime(void)
 764          {
 765   1          WORD wHFreqX10; // horizontal frequency
 766   1      
 767   1          wHFreqX10 = msCalculateHFreqX10( (WORD)msGetHorizontalPeriod() ); // calculate HSync frequency
 768   1          return (BYTE)((( (WORD)msGetVerticalTotal() * 10 ) + (wHFreqX10 / 2)) / wHFreqX10);
 769   1      }
 770          
 771          WORD msGetHorizontalPeriod(void)
 772          {
 773   1          WORD wHorizontalPeriod;
 774   1          BYTE ucBank;
 775   1      
 776   1          ucBank = msReadByte( BK0_00_REGBK);
 777   1          msWriteByte( BK0_00_REGBK, REG_BANK_SCALER );
 778   1          wHorizontalPeriod = (msReadWord(BK0_EB_HSPRD_H) & MST_H_PERIOD_MASK);
 779   1          msWriteByte( BK0_00_REGBK, ucBank );
 780   1          return wHorizontalPeriod;
 781   1      }
 782          
 783          WORD msGetVerticalTotal(void)
 784          {
 785   1          WORD wVerticalTotal;
 786   1          BYTE ucBank = msReadByte( BK0_00_REGBK);
 787   1      
 788   1          msWriteByte( BK0_00_REGBK, REG_BANK_SCALER );
 789   1          wVerticalTotal = (msReadWord(BK0_ED_VTOTAL_H) & MST_V_TOTAL_MASK);
 790   1      
 791   1          msWriteByte( BK0_00_REGBK, ucBank );
 792   1          return wVerticalTotal;
 793   1      }
 794          
 795          void GetInputSignalHV(void)
 796          {
 797   1      #if VGA_ENABLE
C51 COMPILER V8.18   MSTAR                                                                 09/29/2009 23:58:02 PAGE 14  

 798   1          if( IsVGAInUse()) // PC/YPbPr
 799   1          {
 800   2              g_InOutCtl.inHPeriod = g_wHorizontalPeriod;
 801   2              g_InOutCtl.inVTotal = g_wVerticalTotal;
 802   2          }
 803   1          else // CVBS/SV/656
 804   1      #endif
 805   1          {
 806   2              g_InOutCtl.inHPeriod = msGetVideoHPeriod(2);
 807   2              g_InOutCtl.inVTotal = msVDGetVTotal();
 808   2          }
 809   1          g_InOutCtl.inHFreq = MST_CLOCK_HZ/g_InOutCtl.inHPeriod;
 810   1          g_InOutCtl.inOutVFreq = (g_InOutCtl.inHFreq+(g_InOutCtl.inVTotal/2))/g_InOutCtl.inVTotal;
 811   1      
 812   1          if( g_InOutCtl.bInterlace )
 813   1              g_InOutCtl.inOutVFreq *= 2;
 814   1      
 815   1          //printf("\r\n\r\ninHP=%d",g_InOutCtl.inHPeriod);
 816   1          //printf("\r\ninHF=%d",g_InOutCtl.inHFreq);
 817   1          //printf("\r\ninVT=%d",g_InOutCtl.inVTotal);
 818   1          //printf("\r\nInOutVFreq=%d", g_InOutCtl.inOutVFreq);
 819   1      }
 820          
 821          void msSetOutputSyncControl( BYTE ucOutputTimingCtl )
 822          {
 823   1          BYTE ucBk0_57;
 824   1      
 825   1          ucBk0_57 = _BIT6; // Frame lock mode 1
 826   1      
 827   1      #if (PANEL_SYNC_MODE_1)
                  ucBk0_57 |= _BIT7; // Output v sync manually
              #endif
 830   1      
 831   1      #if (SCALING_FORMULA)
 832   1          ucBk0_57 |= _BIT2; // Scaling range add 1
 833   1      #endif
 834   1      
 835   1          if( ucOutputTimingCtl&OUTPUT_FREERUN )
 836   1          {
 837   2              #if(ENABLE_CHECK_AUTO_H_TOTAL)
 838   2              g_bEnableAutoHTotal = 0;
 839   2              #endif
 840   2          }
 841   1          else
 842   1          {
 843   2              if( IsVGAInUse()) // PC/YPBPR
 844   2              {
 845   3                  ucBk0_57 |= _BIT1;
 846   3                  ucBk0_57 |= _BIT7;
 847   3              }
 848   2              else
 849   2              {
 850   3                  #if(ENABLE_CHECK_AUTO_H_TOTAL)
 851   3                  g_bEnableAutoHTotal = 0;
 852   3                  #else
                          ucBk0_57 |= _BIT1;
                          #endif
 855   3              }
 856   2          }
 857   1      
 858   1          msWriteByte_Bank_BackupBank( REG_BANK_SCALER, BK0_57_OSCTRL1, ucBk0_57 );
 859   1      }
C51 COMPILER V8.18   MSTAR                                                                 09/29/2009 23:58:02 PAGE 15  

 860          
 861          void SetScalingRatio( BOOL bInterlace )
 862          {
 863   1          BYTE ucBank; // bank buffer
 864   1          DWORD dwTemp;
 865   1          WORD wInputVSize;
 866   1      
 867   1          ucBank = msReadByte(BK0_00_REGBK); // store bank

⌨️ 快捷键说明

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