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

📄 modehandle.lst

📁 车载DVD的主控MCU的源程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 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   3                                      if(1)
 276   3                                      {
 277   4                              WriteIIC563(0x154,0x02);
 278   4                                              WriteIIC563(0x144,0);//Dvi power up for RU
 279   4                                              WriteIIC563(0x01d, 0x01);
 280   4                                              SetInterface();
 281   4                                              NoSyncFlag=0;
 282   4                                              #if PRINT_MESSAGE
                                                              printf("DVI Input\n");
                                                      #endif
 285   4                                      }
 286   3                              }
 287   2                      ChangeMode = 1;
 288   2                      FLG_Change_SyncMode=0;
 289   2              }
 290   1      }
 291          void CheckFreq(void)
 292          {
 293   1              bit UnStable;
 294   1              Byte i,Count;
 295   1              if(DetectIRQ() || ChangeMode>0){
 296   2               ForceToBackground(0,0,0);  
 297   2                      if(SyncMode == 3){
 298   3                              DVIBandWidthDetection();
 299   3                              }
 300   2                      OutOfRange = Within_range;
 301   2                      H_SYNC_Temp = 0x5555;
 302   2                      V_SYNC_Temp = 0x5555;
C51 COMPILER V7.06   MODEHANDLE                                                            12/11/2007 11:28:43 PAGE 6   

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

 365   3                                                      ChangeMode = 1;
 366   3                                              if(abs(H_SYNC_Temp - H_SYNC)>10)
 367   3                                                      ChangeMode = 1;
 368   3                                              if(abs(V_SYNC_Temp - V_SYNC)>10)
 369   3                                                      ChangeMode = 1;
 370   3                                              EndMute = 1;
 371   3                                              if(PowerDown)
 372   3                                                      {
 373   4                                                      ScalerPowerUp();
 374   4                                                      PowerTimer = POWER_TIME;
 375   4                                                      MuteTimer = 0;
 376   4                                                      }                       
 377   3                                      if(ChangeMode == 0)
 378   3                                              {
 379   4                                              INTEXT_FLG = INTE0;             //moved by kevin y50321
 380   4                                              INTEXT_EN=INTEN_INIT;
 381   4                                              WriteIIC563(0x1ab,0x3f);        //clear IRQ added by kevin y50321 move here from setdisplaynormal()
 382   4                                              WriteIIC563(0x1ac,0x1f);        //added by kevin y50321 
 383   4                                              WriteIIC563(0x1a9,0x3c);        //added by kevin y50321
 384   4                                              GetMode();
 385   4      
 386   4                                              if(SyncMode == 3)
 387   4                                              {
 388   5                                                      if(Hresolution <= 800)// joe 2005/5/3 for dvi 800x600@56 color dot 
 389   5                                                      {
 390   6                                                              WriteIIC563(0x144,0x04);//Jacky 20041221 
 391   6                                                              WriteIIC563(0x145,0x03);//Jacky 20041221 
 392   6                                                      }
 393   5                                                      else
 394   5                                                      {
 395   6                                                              WriteIIC563(0x145,0x00);//Jacky 20041221 
 396   6                                                              WriteIIC563(0x144,0x00);
 397   6      
 398   6                                                      }
 399   5                                              }
 400   4      
 401   4      
 402   4      
 403   4                              //              WriteIIC563(0x15D, 0X03);
 404   4                              //              WriteWordIIC563(0x162, 0X0025);
 405   4                              //              WriteWordIIC563(0x164, 0x01f1);
 406   4                              //              WriteWordIIC563(0x171, 0x01ee);
 407   4                                      //      WriteIIC563(0x158, PanelDethMode);
 408   4                                      //      WriteIIC563(0x158, PanelDethMode);
 409   4                                      //      WriteIIC563(0x158, PanelDethMode);
 410   4                                      //      WriteIIC563(0x158, PanelDethMode);
 411   4                                      //      WriteIIC563(0x158, PanelDethMode);
 412   4                                              
 413   4                                              SetDisplayNormal();
 414   4                                              
 415   4                                              ShowSource();
 416   4                                              WriteIIC563(0x158, PanelDethMode);
 417   4                                              PanelPowerUpSequence();
 418   4                              //              I_OBackLightHigh;
 419   4                                              VideoMute = 0;
 420   4                                              WriteIIC563(0x159,0x07);//07
 421   4                                              WriteIIC563(0x154,0x00);
 422   4                                              WriteIIC563(0x15D, 0X03);
 423   4                                              WriteWordIIC563(0x162, 0X0025);
 424   4                                              WriteWordIIC563(0x164, 0x01f1);
 425   4                                              WriteWordIIC563(0x171, 0x01ee);
 426   4                                      WriteWordIIC563(0x16f,0x0018);
C51 COMPILER V7.06   MODEHANDLE                                                            12/11/2007 11:28:43 PAGE 8   

 427   4         
 428   4                                              BackLightOn();
 429   4                                      }
 430   3                      }
 431   2              }
 432   1      //   BackLightOn();
 433   1      }
 434          void GetFuncRange(Byte Ptr)
 435          {
 436   1              FuncMin = 0;
 437   1              switch(Ptr)
 438   1                      {
 439   2                      case pBRIGHTNESS:
 440   2                              FuncMax = 100;
 441   2                              //FuncMax = 255;
 442   2                              break;
 443   2                      case pCONTRAST:
 444   2                              FuncMax = 100;
 445   2                              //FuncMax = FuncBuf[pContMax];
 446   2                              //FuncMin= FuncBuf[pContMin];
 447   2                              break;
 448   2                      case pPHASE:
 449   2                              FuncMax = 0x3f;
 450   2                              break;
 451   2                      case pCLOCK:
 452   2                              FuncMax = ClockBase + 50;
 453   2                              FuncMin = ClockBase - 50;
 454   2                              //FuncMax = ClockBase / 10 * 11;                ///10%
 455   2                              //FuncMin = ClockBase / 10 * 9;
 456   2                              break;
 457   2                      case pHPOSITION:
 458   2                                      FuncMin = 1;
 459   2                              FuncMax = FuncBuf[pCLOCK] - Hresolution - 2;
 460   2                              break;
 461   2                      case pVPOSITION:
 462   2                              FuncMin = 1;
 463   2                              //FuncMax = VTotal > Vresolution ? VTotal - Vresolution : 12;   //test
 464   2                              FuncMax = VTotal > Vresolution ? VTotal - Vresolution : 12;     //for は篜 ISSUE
 465   2                              
 466   2                              break;
 467   2                      case pRCOLOR:
 468   2                      case pGCOLOR:
 469   2                      case pBCOLOR:
 470   2                              FuncMax = 200;
 471   2                              break;
 472   2                      case pCOLORTEMP:
 473   2                              FuncMax = MAX_COLOR_TEMP-1;
 474   2                              break;
 475   2                      case pLANGUAGE:
 476   2                      case pSHARPNESS:
 477   2                              if(FuncBuf[pVIDEOSOURCE]<2)
 478   2      //                      FuncMax = 31; // change by Kevin y50303
 479   2                                      FuncMax = 15; // change by Kevin y50303
 480   2                              else
 481   2                                      FuncMax = 23; // change by Kevin y50303
 482   2                              break;
 483   2                      case pVIDEOSOURCE:
 484   2                              if(Saa7114En)
 485   2                                      FuncMax = 4;
 486   2                              else
 487   2                                      FuncMax = 2;
 488   2                              break;
C51 COMPILER V7.06   MODEHANDLE                                                            12/11/2007 11:28:43 PAGE 9   

 489   2                      case pVOLUME:
 490   2                              FuncMax = 100;
 491   2                              break;
 492   2                      case pRADC:
 493   2                      case pGADC:
 494   2                      case pBADC:
 495   2                              FuncMax = 255;
 496   2                              break;
 497   2                      case pROFFSET:
 498   2                      case pGOFFSET:
 499   2                      case pBOFFSET:
 500   2                              FuncMax = 255;
 501   2                              break;
 502   2                      };
 503   1      }
 504          void CheckDVIresolution()
 505          {
 506   1              Union Hf,Vf;
 507   1              if(SyncMode == 3){
 508   2                      Vf.w = ReadWordIIC563(0x03e);
 509   2                      Hf.w = ReadWordIIC563(0x03c);
 510   2      //              CheckFreqRange(Hf.w>>8);
 511   2                              Hresolution = Hf.w;
 512   2                              Vresolution = Vf.w;
 513   2              }
 514   1      }
 515          
 516          void GetMode(void)
 517          {
 518   1      #if 1
 519   1              bit PolPass;
 520   1              Byte ch;
 521   1              Union Hf,Vf;
 522   1      #endif  
 523   1              VTotal = (Word)(((unsigned long)H_SYNC * 1000)/ V_SYNC);
 524   1      #if 1   

⌨️ 快捷键说明

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