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

📄 measure.lst

📁 此程序为twell8806驱动程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 257   2                      SetVactiveStart( GetVactiveStart()+add );
 258   2                      SaveVactiveEE(PcMode);                                          // HHY 1.33
 259   2              }
 260   1              else {
 261   2                      SetVactiveStart( GetVactiveStart()+add );
 262   2                      SaveVactiveEE(PcMode);                                          // HHY 1.33
 263   2                      SetVBackPorch( GetVBackPorch()+add );           // A6
 264   2                      SaveVBackPorchEE(PcMode);                                       // HHY 1.33
 265   2              }
 266   1      }
 267          
 268          void MoveActiveHpos(BYTE dir)           //=== Right
 269          {
 270   1              char add;
 271   1              WORD hstart, hend;
 272   1      
 273   1              if( dir==UP ) {
 274   2                      if( HPosCurr>=HPosMax ) return;
 275   2                      add = 1;
 276   2              }
 277   1              else {
 278   2                      if( HPosCurr==0 ) return;
 279   2                      add = -1;
 280   2              }
 281   1              HPosCurr += add;
 282   1      
 283   1              hstart = GetHactiveStart();
 284   1              hend   = GetHactiveEnd();
 285   1      
 286   1              hstart += add;
 287   1              hend   += add;
 288   1              SetHactiveStart(hstart);
 289   1              SetHactiveEnd(hend);
 290   1      
 291   1              SaveHactiveEE(PcMode);          // HHY 1.33
 292   1      }
 293          
 294          BYTE GetVPosition(void)
 295          {
 296   1              int newv;
 297   1      
 298   1              VPositionRange.Max = VPosMax;
 299   1              VPositionRange.Default = VPosMax/2;
 300   1              Mapping2( VPosCurr, &VPositionRange, &newv, &UserRange );
 301   1      
 302   1              return newv;
 303   1      }
C51 COMPILER V7.50   MEASURE                                                               08/20/2007 10:23:31 PAGE 6   

 304          
 305          BYTE SetVPosition(BYTE val)             //0:UP, 1:DOWN
 306          {
 307   1              int newv;
 308   1      
 309   1              MoveActiveVpos(val);
 310   1      
 311   1              VPositionRange.Max = VPosMax;
 312   1              VPositionRange.Default = VPosMax/2;
 313   1              Mapping2( VPosCurr, &VPositionRange, &newv, &UserRange );
 314   1              
 315   1              return newv;
 316   1      }
 317          
 318          BYTE GetHPosition(void)
 319          {
 320   1              return HPosCurr;
 321   1      }
 322          
 323          BYTE SetHPosition(BYTE val)
 324          {
 325   1              MoveActiveHpos(val);
 326   1      
 327   1              return HPosCurr;
 328   1      }
 329          //=============================================================================
 330          //              Phase Measurement
 331          //                      Return : PhaseBlue, PhaseGreen, PhaseRed                                                                                   
 332          //=============================================================================
 333          DWORD ReadOut4(void)
 334          {
 335   1              BYTE    i;
 336   1              DWORD   dat=0;
 337   1      
 338   1              for(i=0; i<4; i++) {
 339   2                      dat <<= 8;
 340   2                      dat |= (DWORD)ReadTW88(0x5a-i);
 341   2              }
 342   1              return dat;
 343   1      }
 344          
 345          BYTE GetPhaseRGB(void)          // HHY 1.10 BYTE return 
 346          {
 347   1              static bit flag=0;
 348   1              DWORD _RGB;
 349   1      
 350   1              #ifdef DEBUG_PC
                      BYTE sign;
                      #endif
 353   1      
 354   1              _RGB = PhaseRGB;
 355   1      
 356   1              if( !MeasureAndWait(3) ) {
 357   2                      #ifdef DEBUG_PC
                              Puts("\r\n  Error at GetPhaseRGB");
                              #endif
 360   2                      return 0;               //LJY001219
 361   2              }
 362   1      
 363   1              WriteTW88(0x5b, 0x00);                  // Read Phase B
 364   1              PhaseRGB  = ReadOut4();
 365   1      
C51 COMPILER V7.50   MEASURE                                                               08/20/2007 10:23:31 PAGE 7   

 366   1              WriteTW88(0x5b, 0x10);                  // Read Phase G
 367   1              PhaseRGB += ReadOut4();
 368   1      
 369   1              WriteTW88(0x5b, 0x20);                  // Read Phase R
 370   1              PhaseRGB += ReadOut4();
 371   1      
 372   1              #ifdef DEBUG_PC
                      if( PhaseRGB  >= _RGB ) sign = '+'; else sign = '-';
                      dPrintf("(%c%08lx)", (WORD)sign, PhaseRGB);
                      #endif
 376   1      
 377   1              if( PhaseRGB==_RGB ) {                  // NO INPUT ???
 378   2                      dPuts("\r\n??? SYNC loss...");
 379   2                      if(flag) {
 380   3                              flag = 0;
 381   3                              return 0;
 382   3                      }
 383   2                      else flag = 1;
 384   2              }
 385   1              else flag = 0;
 386   1      
 387   1              return 1;
 388   1      }
 389          //============================================================================
 390          //                      Detect Input source for DTV
 391          //============================================================================
 392          BYTE DetectDTVInputSource(void)
 393          {
 394   1              BYTE     mode, _PcMode;
 395   1      
 396   1              mode = ReadADC(0xC2)>>1 ;
 397   1              #ifdef DEBUG_PC
                      Printf("\n +++DetectDTVInputSource==> Detect from ADC : 0x%2x", (WORD)mode);
                      #endif
 400   1      
 401   1              if( GetInputSelection()==PC ) {
 402   2                      switch(mode)
 403   2                      {
 404   3                      case 1: _PcMode = EE_RGB_480I;  break;
 405   3                      case 2: _PcMode = EE_RGB_576I;  break;
 406   3                      case 3: _PcMode = EE_RGB_480P;  break;
 407   3                      case 4: _PcMode = EE_RGB_576P;  break;
 408   3                      case 5: _PcMode = EE_RGB_720P;  break;
 409   3                      default:_PcMode = EE_PC_UNKNOWN;        break;
 410   3                      }
 411   2              }
 412   1              else {
 413   2                      switch(mode)
 414   2                      {
 415   3                      case 1: _PcMode = EE_YPbPr_480I;        break;
 416   3                      case 2: _PcMode = EE_YPbPr_576I;  break;
 417   3                      case 3: _PcMode = EE_YPbPr_480P;        break;
 418   3                      case 4: _PcMode = EE_YPbPr_576P;        break;
 419   3                      case 5: _PcMode = EE_YPbPr_720P;        break;
 420   3                      default:_PcMode = EE_PC_UNKNOWN;        break;
 421   3                      }
 422   2              }
 423   1              return _PcMode;
 424   1      }
 425          
 426          
 427          //============================================================================
C51 COMPILER V7.50   MEASURE                                                               08/20/2007 10:23:31 PAGE 8   

 428          //                      Determine InputSource Format based on VPN
 429          //============================================================================
 430          //      Input   VPN
 431          //      Return  PcMode
 432          //                      InputSource (PC_XGA, PC_SVGA, PC_VGA)
 433          
 434          BYTE DecideVGAInputSource(WORD vpn, WORD ivf)
 435          {
 436   1              BYTE _PcMode;
 437   1              WORD    sync;
 438   1      
 439   1              _PcMode     = EE_PC_UNKNOWN;
 440   1              //InputSource = UNKNOWN;
 441   1      
 442   1              _PcMode = DetectDTVInputSource();
 443   1              if(_PcMode != EE_PC_UNKNOWN ) return _PcMode;
 444   1      
 445   1              //====================== PC DOS ================================
 446   1              if( vpn >= 440  && vpn <= 460 ) { 
 447   2                      //InputSource = PC_DOS1;  
 448   2                      switch( ivf ) {
 449   3                      case 69: case 70: case 71:      _PcMode = EE_DOS;                       break;
 450   3                      
 451   3                      case 84: case 85: case 86: case 87:
 452   3                              GetHpnVpn(1);
 453   3                              if( ReadTW88(0x40) & 0x02 ) 
 454   3                                      _PcMode = EE_SP1;                       
 455   3                              else
 456   3                                      _PcMode = EE_SP2;                       
 457   3                              break;
 458   3      
 459   3                      default:                                        _PcMode = EE_PC_UNKNOWN;        break;
 460   3      
 461   3                      }
 462   2              }
 463   1              //====================== PC VGA, DTV 480P ======================
 464   1              else if( vpn>=490  && vpn<=540 ) { 
 465   2      
 466   2                      //------ DTV YPbPr 480P ------
 467   2                      if( GetInputSelection()==DTV ) {
 468   3                              _PcMode = EE_YPbPr_480P;
 469   3                      }
 470   2                      //------ PC VGA --------------
 471   2                      else {
 472   3                      switch( ivf ) {
 473   4                      case 59: case 60: case 61:
 474   4                              //#ifdef SUPPORT_DTV
 475   4                                      MeasureAndWait(3);
 476   4                                      sync = GetVSYNCPulse();
 477   4                                      if(sync > 5)    _PcMode = EE_RGB_480P;          
 478   4                                      else
 479   4                              //#endif
 480   4                                      _PcMode = EE_VGA_60;
 481   4                                      break;
 482   4                      case 65: case 66: case 67:      _PcMode = EE_VGA_66;            break;
 483   4                      case 69: case 70: case 71:      _PcMode = EE_VGA_70;            break;
 484   4                               case 72: case 73:      _PcMode = EE_VGA_72;            break;
 485   4                      case 74: case 75: case 76:      _PcMode = EE_VGA_75;            break;
 486   4                      case 83:
 487   4                      case 84: case 85: case 86:      _PcMode = EE_VGA_85;            break;
 488   4                      default:                                        _PcMode = EE_PC_UNKNOWN;        break;
 489   4                      }
C51 COMPILER V7.50   MEASURE                                                               08/20/2007 10:23:31 PAGE 9   

 490   3      
 491   3                      }
 492   2              }
 493   1              //====================== PC SVGA ===============================
 494   1              else if( vpn>=610 && vpn<=680+30 ) {
 495   2                      //InputSource = PC_SVGA;        
 496   2                      switch( ivf ) {
 497   3      
 498   3                      
 499   3                      case 49: case 50: case 51:
 500   3                              if( GetInputSelection()==PC ) _PcMode = EE_RGB_576P;
 501   3                              else                                               _PcMode = EE_YPbPr_576P;
 502   3                              break;
 503   3                      
 504   3                      case 55: case 56: case 57:      _PcMode = EE_SVGA_56;           break;
 505   3                      case 59: case 60: case 61:      _PcMode = EE_SVGA_60;           break;
 506   3                      case 69: case 70: case 71:      _PcMode = EE_SVGA_70;           break;
 507   3                               case 72: case 73:      _PcMode = EE_SVGA_72;           break;
 508   3      
 509   3                      case 74: case 75: case 76:
 510   3                              if( vpn>=650 )                  _PcMode = EE_832_75;
 511   3                              else                                    _PcMode = EE_SVGA_75;
 512   3                              break;
 513   3      
 514   3                      case 83:
 515   3                      case 84: case 85: case 86:      _PcMode = EE_SVGA_85;           break;
 516   3                      
 517   3                      default:                                        _PcMode = EE_PC_UNKNOWN;        break;
 518   3                      }
 519   2              }
 520   1      
 521   1      

⌨️ 快捷键说明

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