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

📄 modehandle.lst

📁 NT68521源代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
 511          
 512          void GoToCompositeSync(void)
 513          {
 514   1              HVI_REG = 0xA0; // HVI_REG
 515   1              WriteIIC_HW(Scaler_Addr,0x86,0xc0);
 516   1              WriteIIC_HW(Scaler_Addr,0x87,0x80);
 517   1              WriteIIC_HW(Scaler_Addr,0xd5,0x00);
 518   1              WriteIIC_HW(Scaler_Addr,0xe6,0x03);
 519   1              WriteIIC_HW(Scaler_Addr,0xf8,DTF8);
 520   1              if(Use_TCON != 0){
 521   2                      WriteIIC_HW(Scaler_Addr,0xfe,0xc1);
 522   2              }
 523   1              else{
 524   2                      WriteIIC_HW(Scaler_Addr,0xfe,0xc0);
 525   2              }
 526   1              SyncMode = 1;
 527   1              if((flag3 & BIT_2) != 0x00){
 528   2                      printf("Composite Sync\r\n");
 529   2              }
 530   1      }
 531          
 532          void CheckSOG(void)
 533          {
 534   1              WriteIIC_HW(Scaler_Addr,0x86,0xe0);
 535   1              WriteIIC_HW(Scaler_Addr,0x87,0x00);
 536   1              WriteIIC_HW(Scaler_Addr,0xd5,0x04);
 537   1              WriteIIC_HW(Scaler_Addr,0xe6,0x7f);
 538   1              WriteIIC_HW(Scaler_Addr,0xf8,(DTF8|BIT_7));
 539   1              if(Use_TCON != 0){
 540   2                      WriteIIC_HW(Scaler_Addr,0xfe,0xd1);
 541   2              }
 542   1              else{
 543   2                      WriteIIC_HW(Scaler_Addr,0xfe,0xd0);
 544   2              }
 545   1              SYNC_REG = 0x40;
 546   1              Sleep(40);
 547   1              Timer1 = 40;
 548   1              H_SYNC = 0;
 549   1              V_SYNC = 0;
 550   1              while(Timer1 != 0){
C51 COMPILER V7.50   MODEHANDLE                                                            03/18/2008 22:04:55 PAGE 10  

 551   2                      if((PortC & BIT_2) == 0){
 552   3                              V_SYNC++;
 553   3                      }
 554   2                      else{
 555   3                              H_SYNC++;
 556   3                      }
 557   2              }
 558   1              H_SYNC >>= 2;
 559   1              SYNC_REG = 0x60;
 560   1              if(H_SYNC > V_SYNC){
 561   2                      HVI_REG = 0x20; // HVI_REG
 562   2                      SyncMode = 2;
 563   2                      if((flag3 & BIT_2) != 0x00){
 564   3                              printf("Sync on green\r\n");
 565   3                      }
 566   2              }
 567   1              else{
 568   2                      GoToSeparateSync();
 569   2              }
 570   1      }
 571          
 572          void NoSync(void)
 573          {
 574   1              if((flag1 & BIT_3) == 0){
 575   2                      OSD_Control &= ~BIT_0;
 576   2                      WriteIIC_HW(Scaler_Addr,0x95,OSD_Control);
 577   2                      flag1 |= BIT_3;
 578   2                      flag2 &= 0xe1;
 579   2                      flag3 &= ~BIT_1;                //in range
 580   2                      BackLightOff();
 581   2                      ForceToBackground(0);   //Set force to background
 582   2                      PoSvTimer = 500;
 583   2                      if((flag3 & BIT_2) != 0x00){
 584   3                              printf("NoSync\r\n");
 585   3                      }
 586   2              }
 587   1              else if((PoSvTimer < 300)&&(PoSvTimer > 0)&&((flag2 & BIT_1)==0)){
 588   2      //      else if((PoSvTimer == 0)&&((flag2 & BIT_1)==0)){
 589   2                      flag2 |= BIT_1;
 590   2                      ShowNoSync();
 591   2                      if((PortC & BIT_0) == 0){
 592   3                              BackLightOn();
 593   3                      }
 594   2              }
 595   1      }
 596          
 597          void SetMinMax(void)
 598          {
 599   1      #if 0
              code unsigned short TypClk[]={
                      800,900,832,1040,1152,1344,1600,1800,1688,2160,1688,1688,1688,1056
              };
              unsigned short i,k;
              unsigned char w;
                      if(ModePoint >= UserModeSt){
              // Set Minimum and Maximum
                              i = 0x106 + (ModePoint * 8);
                              i = Read24C16(i);
                              HP_Max = TypClk[i] - H_Act;
                              if(HP_Start > HP_Max){
                                      HP_Max = HP_Start;
                              }
C51 COMPILER V7.50   MODEHANDLE                                                            03/18/2008 22:04:55 PAGE 11  

                              HP_Min = (unsigned char)((TypClk[i] * 3) / 100);
                              if(HP_Start < HP_Min){
                                      HP_Min = HP_Start;
                              }
                              if((HP_Start + H_Act) < (TypClk[i] - 50)){
                                      Clk_Min = TypClk[i] - 50;
                                      Clk_Max = TypClk[i] + 50;
                              }
                              else{
                                      Clk_Min = HP_Start + H_Act;
                                      Clk_Max = Clk_Min + 100;
                              }
                      }
                      else{
              // Set Minimum and Maximum
                              i = 0x104 + (ModePoint * 8);
                              k = MCU_DataMap[i];
                              i++;
                              k <<= 8;
                              k += MCU_DataMap[i];
                              w = HPW_REG;
                              w = (unsigned long)H_SYNC * k / (120000 / w);
              //              w = (unsigned long)H_SYNC * k / (140000 / w);
                              HP_Max = k - H_Act - w;
              //              HP_Max = k - H_Act;
                              if(HP_Start > HP_Max){
                                      HP_Max = HP_Start;
                              }
                              HP_Min = (unsigned char)((k * 3) / 100);
                              if(HP_Start < HP_Min){
                                      HP_Min = HP_Start;
                              }
                              if((HP_Start + H_Act) < (k - 50)){
                                      Clk_Min = k - 50;
                                      Clk_Max = k + 50;
                              }
                              else{
                                      Clk_Min = HP_Start + H_Act;
                                      Clk_Max = Clk_Min + 100;
                              }
                      }
              #else
 655   1      unsigned short i,k;
 656   1      unsigned char w;
 657   1      // Set Minimum and Maximum
 658   1                      i = 0x290 + (ModePoint << 1);
 659   1                      k = Read24C16(i);
 660   1                      i++;
 661   1                      k <<= 8;
 662   1                      k += Read24C16(i);
 663   1                      w = HPW_REG;
 664   1                      w = (unsigned long)H_SYNC * k / (120000 / w);
 665   1      //              w = (unsigned long)H_SYNC * k / (140000 / w);
 666   1                      HP_Max = k - H_Act - w;
 667   1      //              HP_Max = k - H_Act;
 668   1                      if(HP_Start > HP_Max){
 669   2                              HP_Max = HP_Start;
 670   2                      }
 671   1                      HP_Min = (unsigned char)((k * 3) / 100);
 672   1                      if(HP_Start < HP_Min){
 673   2                              HP_Min = HP_Start;
 674   2                      }
C51 COMPILER V7.50   MODEHANDLE                                                            03/18/2008 22:04:55 PAGE 12  

 675   1                      if((HP_Start + H_Act) < (k - 50)){
 676   2                              Clk_Min = k - 50;
 677   2                              Clk_Max = k + 50;
 678   2                      }
 679   1                      else{
 680   2                              Clk_Min = HP_Start + H_Act;
 681   2                              Clk_Max = Clk_Min + 100;
 682   2                      }
 683   1                      if((flag3 & BIT_2) != 0x00){
 684   2                              printf("HPW = %d\r\n",(unsigned short)w);
 685   2                              printf("HP_Max = %d\r\n",HP_Max);
 686   2                              printf("HP_Min = %d\r\n",(unsigned short)HP_Min);
 687   2                              printf("Clk_Max = %d\r\n",Clk_Max);
 688   2                              printf("Clk_Min = %d\r\n",Clk_Min);
 689   2                      }
 690   1      #endif
 691   1      }
 692          
 693          void CheckModeChange(void)
 694          {
 695   1      #if 0
                      if(((INTHV_FLG & 0x07) != 0)||((MUTE_CTRL & 0x30) != 0x30)){
                              BackLightOff();
                              flag2 |= BIT_0;
                              H_SYNC_Temp = 0xffff;
                              V_SYNC_Temp = 0xffff;
                      }
              #else
 703   1      unsigned char value,temp;
 704   1      unsigned long Freq;
 705   1              if(PowerStatus > 0x80)
 706   1                      return;
 707   1              if(((INTHV_FLG & 0x07) != 0)||((MUTE_CTRL & 0x30) != 0x30)){
 708   2                      BackLightOff();
 709   2                      flag2 |= BIT_0;
 710   2                      H_SYNC_Temp = 0xffff;
 711   2                      V_SYNC_Temp = 0xffff;
 712   2                      return;
 713   2              }
 714   1      
 715   1              flag1 |= BIT_0;
 716   1      //V_SYNC=xx.xHz
 717   1              temp = VCNT_LB;
 718   1              value = VCNT_HB;
 719   1              if((value & BIT_7) != 0){
 720   2                      V_SYNC = 0;
 721   2                      flag1 &= ~BIT_0;
 722   2              }
 723   1              else{
 724   2                      V_SYNC = value & 0x3f;
 725   2                      V_SYNC <<= 8;
 726   2                      V_SYNC = V_SYNC | temp;
 727   2                      if((V_SYNC == 0x3fff)||(V_SYNC == 0)){
 728   3                              V_SYNC = 0;
 729   3                              flag1 &= ~BIT_0;
 730   3                      }
 731   2                      else{
 732   3                          Freq = (unsigned long)12500000 / V_SYNC + 5;
 733   3                              V_SYNC = Freq / 10;
 734   3                      }
 735   2              }
 736   1              if(V_SYNC_Temp > V_SYNC){
C51 COMPILER V7.50   MODEHANDLE                                                            03/18/2008 22:04:55 PAGE 13  

 737   2                      if((V_SYNC_Temp - V_SYNC) > 3){
 738   3                              BackLightOff();
 739   3                              flag2 |= BIT_0;
 740   3                              H_SYNC_Temp = 0xffff;
 741   3                              V_SYNC_Temp = 0xffff;
 742   3                              return;
 743   3                      }
 744   2              }
 745   1              else{
 746   2                      if((V_SYNC - V_SYNC_Temp) > 3){
 747   3                              BackLightOff();
 748   3                              flag2 |= BIT_0;
 749   3                              H_SYNC_Temp = 0xffff;
 750   3                              V_SYNC_Temp = 0xffff;
 751   3                              return;
 752   3                      }
 753   2              }
 754   1      #endif
 755   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   3336    ----
   CONSTANT SIZE    =    409    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      23
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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