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

📄 modehandle.lst

📁 车载SCALER模块源程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 503   3                              ch = (Vf.b[0] & 0x40) >> 1;
 504   3                              ch |= ch >> 1;
 505   3                              if(ch == HV_Pol)
 506   3                                      PolPass = 1;
 507   3                      }
 508   2                      if(PolPass){
 509   3                              if(abs(Hf.w - H_SYNC)<3){
 510   4                                      Vf.b[0] &= 0x0f;
 511   4                                      if(abs(Vf.w - V_SYNC) < 10){
 512   5                                                      break;
 513   5                                              }
 514   4                                      }
 515   3                              }
 516   2                      }
 517   1      #endif          
 518   1      /*
 519   1              if(ModePoint >=Graphic_Text_Mode_Start_No&&ModePoint <=Graphic_Text_Mode_End_No&&(SyncMode == 0 || SyncMo
             -de == 3)){
 520   1                      GTmodeEn = 1;
 521   1                      if(TextMode)
 522   1                              ModePoint++;            //for set in text mode kevin y50202
 523   1              }else{
 524   1                      GTmodeEn = 0;
 525   1              }
 526   1              if(ModePoint >= T_Total_Mode_No){
 527   1                      NewMode = 1;
 528   1                      SetUserMode();
 529   1              }else{
 530   1                      NewMode = 0;
 531   1                      }
 532   1      */      
 533   1              if(ModePoint >= 19)
 534   1                      ModePoint = 11;
 535   1              LoadModeDependentSettings();
 536   1      /*      
 537   1              if(ModePoint ==1)
 538   1                      FuncBuf[pHPOSITION] = 0x96;//0x4B;
 539   1              else{
 540   1                      FuncBuf[pHPOSITION] = 0x2e;//0x4B;
 541   1                      FuncBuf[pVPOSITION] = 0x14;//0x4B;
 542   1              }
 543   1      */      
 544   1              ResolutionPtr = EEP_ModeMap[T_EEaddr_Resol]&0x7f;
 545   1              Hresolution = Active_Tab[Get_active_index()].H_Active;
 546   1              Vresolution = Active_Tab[Get_active_index()].V_Active;
 547   1              if(Vresolution>VTotal)
 548   1                      Vresolution=VTotal-20;
 549   1              ClockBase = EEP_ModeMap[T_EEaddr_BaseHTotal];   //EEP_SyncMap[Addr+2];
C51 COMPILER V7.06   MODEHANDLE                                                            10/16/2007 19:09:01 PAGE 10  

 550   1              ClockBase <<= 8;
 551   1              ClockBase |=  EEP_ModeMap[T_EEaddr_BaseHTotal+1];       //[Addr+3];
 552   1              
 553   1              SetInterface();
 554   1              SetScaler();
 555   1      //      SetADC_PLL();
 556   1              if(SyncMode < 3)        //skip setadcpll while in DVI mode
 557   1                      {
 558   2                      SetADC_PLL();
 559   2                      SetADC_Phase();
 560   2                      }
 561   1              else
 562   1                      {
 563   2                      CheckDVIresolution();
 564   2      //              CheckDVIFreqRange();
 565   2                      }
 566   1              if(SyncMode == 3)       //DVI
 567   1                      {
 568   2                      #if DVImode == DEmode
 569   2                              //FuncBuf[pVPOSITION] = 0x1e0;  // for DE mode scaler shut down Jacky20040629
 570   2                              FuncBuf[pVPOSITION] = 0;        // for DE mode scaler shut down Jacky20040629
 571   2                              FuncBuf[pHPOSITION] = 0;
 572   2                      //      SetDVI_Sharpness();
 573   2                              WriteWordIIC563(0x030,FuncBuf[pVPOSITION]);
 574   2                              WriteWordIIC563(0x02e,FuncBuf[pVPOSITION]);
 575   2                              WriteWordIIC563(0x030,FuncBuf[pVPOSITION]);
 576   2                              WriteWordIIC563(0x034,FuncBuf[pHPOSITION]);
 577   2                      #else
                                      AutoPosition();
                              #endif
 580   2                      }       
 581   1              
 582   1      //      SetVP();
 583   1      //      SetHP();
 584   1              WriteIIC563(0x66,0x07);
 585   1      //      SetSharpness();
 586   1      }
 587          /*
 588          void SetUserMode(void)
 589          {
 590          #ifdef Wide19
 591          code unsigned short Vt_Tab[]={
 592                      490,590,610,730,778,800,874,910,970,1050,1080
 593          };
 594          
 595          code unsigned char UserTimeTab[]={
 596                  T_Timing_Parameters(0x10,0x60,0x384,Re_0720x0400),
 597                  T_Timing_Parameters(0x10,0x50,0x342,Re_0640x0480),
 598                  T_Timing_Parameters(0x10,0x17,0x3b0,Re_0720x0576),
 599                  T_Timing_Parameters(0x10,0x98,0x418,Re_0800x0600),
 600                  T_Timing_Parameters(0x10,0xe0,0x6c0,Re_1280x0720),
 601                  T_Timing_Parameters(0x12,0xc8,0x680,Re_1280x0768),
 602                  T_Timing_Parameters(0x10,0xd0,0x540,Re_1024x0768),
 603                  T_Timing_Parameters(0x10,0xd0,0x5c8,Re_1152x0864),
 604                  T_Timing_Parameters(0x19,0xe8,0x778,Re_1440x0900),
 605                  T_Timing_Parameters(0x10,0xe0,0x6c0,Re_1280x0960),
 606                  T_Timing_Parameters(0x10,0xf8,0x698,Re_1280x1024),
 607                  T_Timing_Parameters(0x2e,0x130,0x870,Re_1600x1200),
 608          };
 609          unsigned char i,j;
 610                for(i=0; i<11; i++){
 611                      if(VTotal < Vt_Tab[i]){
C51 COMPILER V7.06   MODEHANDLE                                                            10/16/2007 19:09:01 PAGE 11  

 612                            break;
 613                      }
 614                }
 615          #else
 616          code unsigned short Vt_Tab[]={
 617                      490,590,610,730,778,874,970,1050,1080
 618          };
 619          
 620          code unsigned char UserTimeTab[]={
 621                  T_Timing_Parameters(0x10,0x60,0x3a8,Re_0720x0400),
 622                  T_Timing_Parameters(0x10,0x50,0x342,Re_0640x0480),
 623                  T_Timing_Parameters(0x10,0x17,0x3b0,Re_0720x0576),
 624                  T_Timing_Parameters(0x10,0x98,0x418,Re_0800x0600),
 625                  T_Timing_Parameters(0x10,0xe0,0x6c0,Re_1280x0720),
 626                  T_Timing_Parameters(0x10,0xd0,0x540,Re_1024x0768),
 627                  T_Timing_Parameters(0x10,0xd0,0x5c8,Re_1152x0864),
 628                  T_Timing_Parameters(0x10,0xe0,0x6c0,Re_1280x0960),
 629                  T_Timing_Parameters(0x10,0xf8,0x698,Re_1280x1024),
 630                  T_Timing_Parameters(0x2e,0x130,0x870,Re_1600x1200),
 631          };
 632          unsigned char i,j;
 633                for(i=0; i<9; i++){
 634                      if(VTotal < Vt_Tab[i]){
 635                            break;
 636                      }
 637                }
 638          #endif    
 639                j = i * T_Timing_Data_No;
 640                ModePoint = Read24C16(T_EEaddr_User_Start);
 641                if((ModePoint <T_Preset_Timing_No)||(ModePoint >=T_Total_Mode_No)){
 642                      ModePoint = T_Preset_Timing_No;
 643                }
 644                Write24C16(T_EEaddr_User_Start,ModePoint+1);          //index to nextuser mode
 645                for(i=0; i<T_Timing_Data_No; i++){
 646                      Write24C16(T_EEaddr_Mode_data+i,UserTimeTab[j+i]);
 647                }
 648                Write24C16(T_EEaddr_H_Freq_Hi_Byte,H_SYNC >> 8);
 649                Write24C16(T_EEaddr_H_Freq_Low_Byte,(Byte)H_SYNC);
 650                Write24C16(T_EEaddr_V_Freq_Hi_Byte,(V_SYNC >> 8)|HV_Pol);
 651                Write24C16(T_EEaddr_V_Freq_Low_Byte,V_SYNC);
 652                ResolutionPtr = Read24C16(T_EEaddr_Resol)&0x7f;
 653          }
 654          */
 655          /*==========================================
 656          ==========================================*/
 657          
 658          
 659          void CheckModeChange(void)
 660          {
 661   1      
 662   1              unsigned char temp;
 663   1              if(DetectIRQ() || ChangeMode>0){
 664   2                              temp = ReadIIC563(0x1ab);
 665   2                              if((temp & 0x3c) != 0){
 666   3                                      BackLightOff();
 667   3                                      Abort = 1;
 668   3                                      H_SYNC_Temp = 0xffff;
 669   3                                      V_SYNC_Temp = 0xffff;
 670   3                              }
 671   2                              
 672   2                              temp = ReadIIC563(0x19a);
 673   2                              if(((SyncMode > 0)&&(SyncMode < 3))||((SyncMode > 4)&&(SyncMode < 7))){         //compostive
C51 COMPILER V7.06   MODEHANDLE                                                            10/16/2007 19:09:01 PAGE 12  

 674   3                                      if((temp & BIT_5) == 0){
 675   4                                              BackLightOff();
 676   4                                              Abort = 1;
 677   4                                              H_SYNC_Temp = 0xffff;
 678   4                                              V_SYNC_Temp = 0xffff;
 679   4                                              return;
 680   4                                      }
 681   3                              }else{
 682   3                                      if((temp & 0x18) != 0x18){
 683   4                                              BackLightOff();
 684   4                                              Abort = 1;
 685   4                                              H_SYNC_Temp = 0xffff;
 686   4                                              V_SYNC_Temp = 0xffff;
 687   4                                              return;
 688   4                                      }
 689   3                              }
 690   2              }
 691   1      }
 692          
 693          bit VsyncValide()
 694          {
 695   1      /*
 696   1              Word VsyncWidth;
 697   1              LocalTimer = 2; //20ms
 698   1              while(!V_SyncPresent)   //Vsync Lo
 699   1                      {
 700   1                      if(LocalTimer == 0)
 701   1                              return 0;
 702   1                      }
 703   1              LocalTimer = 10;        //100ms
 704   1              while(V_SyncPresent)    //Vsync Hi
 705   1                      {
 706   1                      if(LocalTimer == 0)
 707   1                              return 0;
 708   1                      }
 709   1              VsyncWidth = 0;
 710   1              while(!V_SyncPresent)   //Vsync Hi 1:7us
 711   1                      {
 712   1                      VsyncWidth ++;
 713   1                      if(VsyncWidth > 50)             //over 350us
 714   1                              return 0;
 715   1                      }
 716   1              VsyncWidth = 0;
 717   1              while(V_SyncPresent)            //Vsync Hi 1:7us
 718   1                      {
 719   1                      VsyncWidth ++;
 720   1                      if(VsyncWidth > 714)    //over 5ms
 721   1                              return 1;
 722   1                      }
 723   1      */      return 0;
 724   1      }
 725          
 726          void LoadModeDependentSettings(void)
 727          {
 728   1      //      Sharp,V_BP,H_BP,H_Tatol,Phase
 729   1      //unsigned short addr;
 730   1      //      addr = T_EEaddr_Mode_data;
 731   1              FuncBuf[pSHARPNESS] = EEP_ModeMap[T_EEaddr_Sharp];//(addr++);
 732   1              FuncBuf[pVPOSITION] = EEP_ModeMap[T_EEaddr_VBP];//(addr++);
 733   1              FuncBuf[pHPOSITION] = EEP_ModeMap[T_EEaddr_HBP];//(addr++);
 734   1              FuncBuf[pHPOSITION] <<= 8;
 735   1              FuncBuf[pHPOSITION] |= EEP_ModeMap[T_EEaddr_HBP+1];//(addr++);
C51 COMPILER V7.06   MODEHANDLE                                                            10/16/2007 19:09:01 PAGE 13  

 736   1              FuncBuf[pCLOCK] = EEP_ModeMap[T_EEaddr_HTotal];//(addr++);
 737   1              FuncBuf[pCLOCK] <<= 8;
 738   1              FuncBuf[pCLOCK] |= EEP_ModeMap[T_EEaddr_HTotal+1];//(addr++);
 739   1      //      addr++;
 740   1              FuncBuf[pPHASE] = EEP_ModeMap[T_EEaddr_Phase];//(addr); 
 741   1      }


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


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

⌨️ 快捷键说明

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