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

📄 modehandle.lst

📁 车载SCALER模块源程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 247   2                      }
 248   1      
 249   1                      if(HV_Pol & BIT_4){
 250   2                      WriteIIC563(0x021,0x81);
 251   2                              /*if((SCID & 0x0f) == 7)        //NT68663A
 252   2                                      WriteIIC563(0x021,0xc1);
 253   2                              else                    
 254   2                                      WriteIIC563(0x021,0x81);
 255   2                              */
 256   2                              }
 257   1                      else{
 258   2                      WriteIIC563(0x021,0x01);
 259   2                              /*if((SCID & 0x0f) == 7)        //NT68663A
 260   2                                      WriteIIC563(0x021,0x41);
 261   2                              else                    
 262   2                                      WriteIIC563(0x021,0x01);
 263   2                              */
 264   2                              }
 265   1      }
 266          void SyncSource()
 267          {
 268   1      //      Byte temp,Max;
 269   1      //      Bit ExitLoop;
 270   1      
 271   1              if(FLG_Change_SyncMode) 
 272   1              {
 273   2              //      if(SyncMode == 3)
 274   2              //              {
 275   2              //                      if(1)
 276   2              //                      {
 277   2                                              WriteIIC563(0x144,0);//Dvi power up for RU
 278   2                                              WriteIIC563(0x01d, 0x01);
 279   2                                              SetInterface();
 280   2                                              NoSyncFlag=0;
 281   2                                              #if PRINT_MESSAGE
                                                              printf("DVI Input\n");
                                                      #endif
 284   2              //                      }
 285   2              //              }
 286   2                      ChangeMode = 1;
 287   2                      FLG_Change_SyncMode=0;
 288   2              }
 289   1      }
 290          void CheckFreq(void)
 291          {
 292   1              bit UnStable;
 293   1              Byte i,Count;
 294   1              if(DetectIRQ() || ChangeMode>0){
 295   2                      if(SyncMode == 3){
 296   3                              DVIBandWidthDetection();
 297   3                              }
 298   2                      OutOfRange = Within_range;
 299   2                      H_SYNC_Temp = 0x5555;
 300   2                      V_SYNC_Temp = 0x5555;
 301   2                      ForceToBackground(0xff,0,0);//Set fource to background
 302   2                      Count = 0;
C51 COMPILER V7.06   MODEHANDLE                                                            10/16/2007 19:09:01 PAGE 6   

 303   2                      for(i=0;i<3;i++){
 304   3                              UnStable = 0;
 305   3                              GetCounter();
 306   3                              if(HV_Pol_Temp != HV_Pol)
 307   3                                      UnStable = 1;
 308   3                              if(abs(H_SYNC_Temp - H_SYNC)>10)
 309   3                                      UnStable = 1;
 310   3                              if(abs(V_SYNC_Temp - V_SYNC)>10)
 311   3                                      UnStable = 1;
 312   3                              if(UnStable){
 313   4                                      
 314   4                                      if((SyncMode==3)&&(abs(DVI_Clock-ReadIIC563(0x016))>2)){
 315   5                                              DVIBandWidthDetection();
 316   5                                              }       
 317   4      
 318   4                                      
 319   4                                      HV_Pol_Temp = HV_Pol;
 320   4                                      H_SYNC_Temp = H_SYNC;
 321   4                                      V_SYNC_Temp = V_SYNC;
 322   4                                      i = 0;
 323   4                              }
 324   3                              Sleep(35);              //wait for Vsync update
 325   3                              Count++;
 326   3                              if(Count > 15){ //freq unstable too long
 327   4                                      V_SYNC = 0;
 328   4                                      H_SYNC = 0;
 329   4                                      NoSyncFlag = 1;
 330   4                                      break;
 331   4                              }
 332   3                      }
 333   2                              ChangeMode = 0;
 334   2                              FastMuteEnable = 1;
 335   2                              WriteIIC563(0x1ab,0x3f);        //clear IRQ
 336   2                              WriteIIC563(0x1ac,0x1f);
 337   2                              EndMute = 0;
 338   2                              MuteTimer = MUTE_DELAY_TIME;
 339   2                      }
 340   1              if(NoSyncFlag){
 341   2                      if(ChangeMode == 0){
 342   3                              FastMuteEnable = 0;
 343   3                              if(!BurnInMode){
 344   4                                      INTEXT_FLG = INTE0;             //add by kevin 92/10/17
 345   4                      //              INTEXT_EN = INTEN_INIT;         // Disable interrupt INT0 enable INT1
 346   4                                      ChangeMode++;
 347   4                                      return;
 348   4                              }
 349   3                      }
 350   2              }else{
 351   2                      if(ChangeMode == 0 && !EndMute && MuteTimer == 0){                              
 352   3                              BackLightOff();
 353   3                              GetCounter();
 354   3                              //recheck frequency
 355   3                              if(HV_Pol_Temp != HV_Pol)
 356   3                                      ChangeMode = 1;
 357   3                              if(abs(H_SYNC_Temp - H_SYNC)>10)
 358   3                                      ChangeMode = 1;
 359   3                              if(abs(V_SYNC_Temp - V_SYNC)>10)
 360   3                                      ChangeMode = 1;
 361   3                              EndMute = 1;
 362   3                              if(PowerDown){
 363   4                                      ScalerPowerUp();
 364   4                                      PowerTimer = POWER_TIME;
C51 COMPILER V7.06   MODEHANDLE                                                            10/16/2007 19:09:01 PAGE 7   

 365   4                                      MuteTimer = 0;
 366   4                              }                       
 367   3                              if(ChangeMode == 0){
 368   4                                      INTEXT_FLG = INTE0;             //moved by kevin y50321
 369   4                      //              INTEXT_EN=INTEN_INIT;
 370   4                                      WriteIIC563(0x1ab,0x3f);        //clear IRQ added by kevin y50321 move here from setdisplaynormal()
 371   4                                      WriteIIC563(0x1ac,0x1f);        //added by kevin y50321 
 372   4                                      WriteIIC563(0x1a9,0x3c);        //added by kevin y50321
 373   4                                      GetMode();
 374   4      
 375   4                                      if(SyncMode == 3)
 376   4                                      {
 377   5                                              if(Hresolution <= 800)// joe 2005/5/3 for dvi 800x600@56 color dot 
 378   5                                              {
 379   6                                                      WriteIIC563(0x144,0x04);//Jacky 20041221 
 380   6                                                      WriteIIC563(0x145,0x03);//Jacky 20041221 
 381   6                                              }
 382   5                                              else
 383   5                                              {
 384   6                                                      WriteIIC563(0x145,0x00);//Jacky 20041221 
 385   6                                                      WriteIIC563(0x144,0x00);
 386   6      
 387   6                                              }
 388   5                                      }
 389   4      
 390   4                                      
 391   4                                      SetDisplayNormal();
 392   4                                      WriteIIC563(0x158, PanelDethMode);
 393   4                                      PanelPowerUpSequence();
 394   4                                      I_OBackLightHigh;
 395   4                                      VideoMute = 0;
 396   4                              }
 397   3                      }
 398   2              }
 399   1      }
 400          void GetFuncRange(Byte Ptr)
 401          {
 402   1              FuncMin = 0;
 403   1              switch(Ptr)
 404   1                      {
 405   2                      case pBRIGHTNESS:
 406   2                              FuncMax = 100;
 407   2                              //FuncMax = 255;
 408   2                              break;
 409   2                      case pCONTRAST:
 410   2                              FuncMax = 100;
 411   2                              //FuncMax = FuncBuf[pContMax];
 412   2                              //FuncMin= FuncBuf[pContMin];
 413   2                              break;
 414   2                      case pPHASE:
 415   2                              FuncMax = 0x3f;
 416   2                              break;
 417   2                      case pCLOCK:
 418   2                              FuncMax = ClockBase + 50;
 419   2                              FuncMin = ClockBase - 50;
 420   2                              //FuncMax = ClockBase / 10 * 11;                ///10%
 421   2                              //FuncMin = ClockBase / 10 * 9;
 422   2                              break;
 423   2                      case pHPOSITION:
 424   2                                      FuncMin = 1;
 425   2                              FuncMax = FuncBuf[pCLOCK] - Hresolution - 2;
 426   2                              break;
C51 COMPILER V7.06   MODEHANDLE                                                            10/16/2007 19:09:01 PAGE 8   

 427   2                      case pVPOSITION:
 428   2                              FuncMin = 1;
 429   2                              //FuncMax = VTotal > Vresolution ? VTotal - Vresolution : 12;   //test
 430   2                              FuncMax = VTotal > Vresolution ? VTotal - Vresolution : 12;     //for は篜 ISSUE
 431   2                              
 432   2                              break;
 433   2                      case pRCOLOR:
 434   2                      case pGCOLOR:
 435   2                      case pBCOLOR:
 436   2                              FuncMax = 200;
 437   2                              break;
 438   2                      case pCOLORTEMP:
 439   2                              FuncMax = MAX_COLOR_TEMP-1;
 440   2                              break;
 441   2                      case pLANGUAGE:
 442   2                      case pSHARPNESS:
 443   2                              if(FuncBuf[pVIDEOSOURCE]<2)
 444   2      //                      FuncMax = 31; // change by Kevin y50303
 445   2                                      FuncMax = 15; // change by Kevin y50303
 446   2                              else
 447   2                                      FuncMax = 23; // change by Kevin y50303
 448   2                              break;
 449   2                      case pVIDEOSOURCE:
 450   2                              if(Saa7114En)
 451   2                                      FuncMax = 4;
 452   2                              else
 453   2                                      FuncMax = 2;
 454   2                              break;
 455   2                      case pVOLUME:
 456   2                              FuncMax = 100;
 457   2                              break;
 458   2                      case pRADC:
 459   2                      case pGADC:
 460   2                      case pBADC:
 461   2                              FuncMax = 255;
 462   2                              break;
 463   2                      case pROFFSET:
 464   2                      case pGOFFSET:
 465   2                      case pBOFFSET:
 466   2                              FuncMax = 255;
 467   2                              break;
 468   2                      };
 469   1      }
 470          void CheckDVIresolution()
 471          {
 472   1              Union Hf,Vf;
 473   1              if(SyncMode == 3){
 474   2                      Vf.w = ReadWordIIC563(0x03e);
 475   2                      Hf.w = ReadWordIIC563(0x03c);
 476   2      //              CheckFreqRange(Hf.w>>8);
 477   2                              Hresolution = Hf.w;
 478   2                              Vresolution = Vf.w;
 479   2              }
 480   1      }
 481          
 482          void GetMode(void)
 483          {
 484   1      #if 1
 485   1              bit PolPass;
 486   1              Byte ch;
 487   1              Union Hf,Vf;
 488   1      #endif  
C51 COMPILER V7.06   MODEHANDLE                                                            10/16/2007 19:09:01 PAGE 9   

 489   1              VTotal = (Word)(((unsigned long)H_SYNC * 1000)/ V_SYNC);
 490   1      #if 1   
 491   1              for(ModePoint=0;ModePoint< T_Total_Mode_No;ModePoint++){
 492   2                      Hf.b[0] = EEP_ModeMap[T_EEaddr_H_Freq_Hi_Byte]; //check h_sync
 493   2                      Hf.b[1] = EEP_ModeMap[T_EEaddr_H_Freq_Low_Byte];
 494   2                      Vf.b[0] = EEP_ModeMap[T_EEaddr_V_Freq_Hi_Byte];
 495   2                      Vf.b[1] = EEP_ModeMap[T_EEaddr_V_Freq_Low_Byte];
 496   2                      
 497   2                      PolPass = 0;
 498   2                      if(Vf.b[0] & 0x80)
 499   2                              PolPass = 1;
 500   2                      if((Vf.b[0] & 0x30) == HV_Pol)
 501   2                              PolPass = 1;
 502   2                      if(Vf.b[0] & 0x40){

⌨️ 快捷键说明

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