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

📄 autoadj.lst

📁 车载DVD的主控MCU的源程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 393   4                                              break;
 394   4                              }
 395   3                      }
 396   2              }
 397   1              FuncBuf[pCLOCK] = GoodClk;
 398   1              SetADC_PLL();
 399   1              FuncBuf[pPHASE] = (temp + 24) & 0x3f;
 400   1              SetADC_Phase();
 401   1      }
 402          /*==========================================
 403          ==========================================*/
 404          unsigned long CheckPhaseData()
 405          {
 406   1              Byte ch;
 407   1              Word zz;
 408   1              xdata unsigned long Value,MinValueTemp,MaxValueTemp;
 409   1              MaxValueTemp = 0;
 410   1              MinValueTemp = 0xffffffff;
 411   1              FuncBuf[pPHASE] = 0;
 412   1              SetADC_Phase();
 413   1              WriteIIC563(0x106,0x02); 
 414   1              LocalTimer = 10;
 415   1              for(FuncBuf[pPHASE]=4; FuncBuf[pPHASE]<0x42; FuncBuf[pPHASE] += 4)
 416   1              {
 417   2                      while((ReadIIC563(0x106) & BIT_1) && LocalTimer != 0)
 418   2                      {
 419   3                              CheckModeChange();
 420   3                              if(Abort)
 421   3                                      return 0;
 422   3                      }
 423   2                      SetADC_Phase();
 424   2                      WriteIIC563(0x106,0x02);
C51 COMPILER V7.06   AUTOADJ                                                               12/11/2007 11:28:43 PAGE 8   

 425   2                      LocalTimer = 10;
 426   2              Value = 0x00000000;
 427   2                      for(zz=0x116; zz>0x112; zz--)
 428   2                      {
 429   3                      ch = ReadIIC563(zz);
 430   3                              Value  = Value << 8;
 431   3                              Value  = Value + ch;
 432   3                      }
 433   2                      if(Value < MinValueTemp)
 434   2                      {
 435   3                              MinValueTemp = Value;
 436   3                              TempPhase = (FuncBuf[pPHASE] - 4) & 0x3f;
 437   3                      }
 438   2                      if(Value > MaxValueTemp)
 439   2                              MaxValueTemp = Value;
 440   2              }
 441   1              Value = MaxValueTemp - MinValueTemp;
 442   1              return Value;
 443   1      }
 444          /*==========================================
 445          ==========================================*/
 446          void AutoPhaseFineTune(Byte Val)
 447          {
 448   1              unsigned short   zz;
 449   1              unsigned char   qq,uu,yy,i;
 450   1              unsigned long   Phase_0, Phase_1, Phase_2, Phase_Pre3, Phase_Now3, Phase_Delta;
 451   1              unsigned char   value;
 452   1              if(Abort)
 453   1                      return;
 454   1      //-------------------------at color xx , calculate phase-------------------------
 455   1              Phase_1 = 0x00000000;   // (i-1)
 456   1              Phase_2 = 0x00000000;   // (i-2)
 457   1              Phase_Pre3 = 0x00000000;   // (pre sum)->(delta)->(now sum)
 458   1              Phase_Delta = 0xffffffff;   // (min delta)
 459   1              qq = FuncBuf[pPHASE];
 460   1              WriteIIC563(0x106,0x02); // 0x01 --> 0x09
 461   1              LocalTimer = 10;
 462   1              for(yy=1; yy<Val; yy++)
 463   1              {
 464   2                      while((ReadIIC563(0x106) & BIT_1) && LocalTimer != 0)
 465   2                      {
 466   3                              CheckModeChange();
 467   3                              if(Abort)
 468   3                                      return;
 469   3                      }
 470   2                      FuncBuf[pPHASE] = (qq + yy) & 0x3f;
 471   2                      SetADC_Phase();
 472   2                      WriteIIC563(0x106,0x02); // 0x01 --> 0x09
 473   2                      LocalTimer = 100;
 474   2                      Phase_Now3  = 0x00000000;
 475   2                      for (zz=0x116; zz>0x112; zz--)
 476   2                      {
 477   3                      value = ReadIIC563(zz);
 478   3                              Phase_Now3  = Phase_Now3 << 8;
 479   3                              Phase_Now3  = Phase_Now3 + value;
 480   3                      }
 481   2                      i = (FuncBuf[pPHASE] - 1) & 0x3f;
 482   2                      Phase_2 = Phase_1;  // Shift    
 483   2                      Phase_1 = Phase_0;
 484   2                      Phase_0 = Phase_Now3;
 485   2                      Phase_Now3 = (Phase_0>>1) + (Phase_1>>1) + (Phase_2>>2); // Phase_Now3
 486   2                      if(yy < 4)
C51 COMPILER V7.06   AUTOADJ                                                               12/11/2007 11:28:43 PAGE 9   

 487   2                              Phase_Pre3  = Phase_Now3;   // Phase_Pre3 = Phase_Now3
 488   2                      else
 489   2                      {
 490   3                              if(Phase_Now3 > Phase_Pre3)
 491   3                                      Phase_Pre3  = Phase_Now3 - Phase_Pre3;
 492   3                              else
 493   3                                      Phase_Pre3  = Phase_Pre3 - Phase_Now3;  // Phase_Pre3=delta
 494   3                              if(Phase_Pre3 < Phase_Delta)
 495   3                              {
 496   4                                      uu = i;           
 497   4                                      Phase_Delta = Phase_Pre3;
 498   4                              }
 499   3                              Phase_Pre3  = Phase_Now3;   // Phase_Pre3 = Phase_Now3
 500   3                      }     
 501   2              }
 502   1              FuncBuf[pPHASE] = (uu - 3) & 0x3f;
 503   1              SetADC_Phase();
 504   1      }
 505          /*==========================================
 506          ==========================================*/
 507          void AutoPhaseByClock()
 508          {
 509   1              //preset mode total
 510   1              Byte PhaseTemp;
 511   1              Word H_Act,MinHActiveTemp;
 512   1              MinHActiveTemp = 0xffff;
 513   1              FuncBuf[pPHASE] = 0;
 514   1              SetADC_Phase();
 515   1              
 516   1              for(FuncBuf[pPHASE]=4; FuncBuf[pPHASE]<0x42; FuncBuf[pPHASE] += 4)
 517   1              {
 518   2                      WriteIIC563(0x106,0x01);
 519   2                      LocalTimer = 10;
 520   2                      while((ReadIIC563(0x106) & BIT_0) && LocalTimer != 0)
 521   2                      {
 522   3                              CheckModeChange();
 523   3                              if(Abort)
 524   3                                      return;
 525   3                      }
 526   2                      SetADC_Phase();
 527   2                      H_Act = ReadWordIIC563(0x110) & 0x0fff;
 528   2                      if(H_Act < MinHActiveTemp)
 529   2                      {
 530   3                              MinHActiveTemp = H_Act;
 531   3                              PhaseTemp = (FuncBuf[pPHASE] - 4) & 0x3f;
 532   3                      }
 533   2              }
 534   1              FuncBuf[pPHASE] = PhaseTemp;
 535   1              SetADC_Phase();
 536   1      }
 537          /*==========================================
 538          ==========================================*/
 539          void LoadPresetModeSettings(Byte type)
 540          {
 541   1              switch(type)
 542   1              {
 543   2                      case 0:
 544   2                              FuncBuf[pPHASE] = EEP_ModeMap[T_Preset_ROM_Phase];//EEP_SyncMap[addr+7];        
 545   2                              FuncBuf[pCLOCK] =EEP_ModeMap[T_Preset_ROM_HTotal];// EEP_SyncMap[addr+4];
 546   2                              FuncBuf[pCLOCK] <<= 8;
 547   2                              FuncBuf[pCLOCK] |= EEP_ModeMap[T_Preset_ROM_HTotal+1];//EEP_SyncMap[addr+5];
 548   2                      case 1:
C51 COMPILER V7.06   AUTOADJ                                                               12/11/2007 11:28:43 PAGE 10  

 549   2                              FuncBuf[pVPOSITION] = EEP_ModeMap[T_Preset_ROM_VBP];//EEP_SyncMap[addr+1];
 550   2                              FuncBuf[pHPOSITION] = EEP_ModeMap[T_Preset_ROM_HBP];//EEP_SyncMap[addr+2];
 551   2                              FuncBuf[pHPOSITION] <<= 8;
 552   2                              FuncBuf[pHPOSITION] |= EEP_ModeMap[T_Preset_ROM_HBP+1];//EEP_SyncMap[addr+3];
 553   2                              break;
 554   2                      case 2:
 555   2                              FuncBuf[pCLOCK] =EEP_ModeMap[T_Preset_ROM_HTotal];// EEP_SyncMap[addr+4];
 556   2                              FuncBuf[pCLOCK] <<= 8;
 557   2                              FuncBuf[pCLOCK] |= EEP_ModeMap[T_Preset_ROM_HTotal+1];//EEP_SyncMap[addr+5];
 558   2                              break;
 559   2                      }
 560   1      }
 561          void WaitVblank()
 562          {
 563   1      /*
 564   1              LocalTimer = 3; //30ms
 565   1              while(!V_SyncPresent)   //Vsync Lo
 566   1                      {
 567   1                      if(LocalTimer == 0)
 568   1                              return;
 569   1                      }
 570   1              LocalTimer = 5; //50ms
 571   1              while(V_SyncPresent)    //Vsync Hi
 572   1                      {
 573   1                      if(LocalTimer == 0)
 574   1                              return;
 575   1                      }
 576   1      */
 577   1      }
 578          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2714    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----      77
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       4
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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