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

📄 modehandle.lst

📁 NT68521源代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
 251   3                      }
 252   2                      ModePoint++;
 253   2                      CLRWDT = 0x55;
 254   2              }
 255   1              if(ModePoint >= ModeNum){
 256   2                      if((flag3 & BIT_2) != 0x00){
 257   3                              printf("user's mode\r\n");
 258   3                      }
 259   2                      SetUserMode();
 260   2              }
 261   1              LoadModeDependentSettings();
 262   1              i = 0x106 + (ModePoint * 8);
 263   1              i = Read24C16(i);
 264   1              VP_Max = (unsigned char)(VTotal - V_ActiveTab[i] + 20);
 265   1              if(VP_Max < VP_Start)
 266   1                      VP_Max = (unsigned char)VP_Start;
 267   1              if((flag3 & BIT_2) != 0x00){
 268   2                      printf("HV_Pol= %x\r\n",(unsigned short)HV_Pol);
 269   2                      printf("H_SYNC= %d\r\n",H_SYNC);
 270   2                      printf("V_SYNC= %d\r\n",V_SYNC);
 271   2                      printf("VP_Max = %d\r\n",(unsigned short)VP_Max);
 272   2              }
 273   1              if((SyncMode == 2)||(SyncMode == 1))
 274   1                      WriteIIC_HW(Scaler_Addr,0x01,(0x58 | DT01));
 275   1              else
 276   1                      WriteIIC_HW(Scaler_Addr,0x01,(0x48 | DT01));
 277   1              SetADC_PLL();
 278   1              if((flag3 & BIT_1) == 0){
 279   2                      SetScaler();
 280   2                      if(SyncMode != 3){
 281   3                              SetADC_Phase();
 282   3                              SetSharpness();
 283   3                      }
 284   2              }
 285   1      #if DVImode == DEmode
                      VP_Start = 0;
                      HP_Start = 0;
                      WriteWordIIC_HW(Scaler_Addr,0x14,VP_Start);
                      WriteWordIIC_HW(Scaler_Addr,0x18,HP_Start);
              #else
 291   1              if((SyncMode == 3) && ((PortD & BIT_2) != 0))   //DVI
 292   1                      AutoPosition();
 293   1      #endif
 294   1      }
 295          
 296          void SetUserMode(void)
 297          {
 298   1      code unsigned short Vt_Tab[]={
 299   1              500,600,700,768,850,950,1050,1080
 300   1      };
 301   1      
 302   1      code unsigned char UserTimeTab[]={
C51 COMPILER V7.50   MODEHANDLE                                                            03/18/2008 22:04:55 PAGE 6   

 303   1              0x00,0x10,0x00,0x60,0x03,0x84,0x01,0x10,        //720x400
 304   1              0x00,0x10,0x00,0x50,0x06,0x80,0x02,0x10,        //640x480
 305   1              0x00,0x10,0x00,0x98,0x04,0x18,0x03,0x10,        //800x600
 306   1              0x00,0x10,0x00,0xe0,0x06,0xc0,0x0c,0x10,        //1280x720
 307   1              0x00,0x10,0x00,0xd0,0x05,0x40,0x05,0x10,        //1024x768
 308   1              0x00,0x10,0x00,0xd0,0x06,0x40,0x06,0x10,        //1152x864
 309   1              0x00,0x10,0x00,0xe0,0x06,0xc0,0x07,0x10,        //1280x960
 310   1              0x00,0x10,0x00,0xf8,0x06,0x98,0x08,0x10,        //1280x1024
 311   1              0x00,0x2e,0x01,0x30,0x08,0x70,0x09,0x10         //over (1600x1200)
 312   1      };
 313   1      
 314   1      unsigned short addr;
 315   1      unsigned char i,j,k;
 316   1              if((flag3 & BIT_2) != 0x00){
 317   2                      printf("Vtotal = %d\r\n",VTotal);
 318   2              }       
 319   1              if((flag3 & BIT_6) != 0){
 320   2                      addr = VTotal << 1;
 321   2              }
 322   1              else{
 323   2                      addr = VTotal;
 324   2              }
 325   1              j = 8;
 326   1              for(i=0; i<8; i++){
 327   2                      if(addr < Vt_Tab[i]){
 328   3                              j = i;
 329   3                              break;
 330   3                      }
 331   2              }
 332   1              j = j * 8;
 333   1              ModePoint = Read24C16(0xd2);
 334   1              ModePoint++;
 335   1              if(ModePoint >= ModeNum){
 336   2                      ModePoint = UserModeSt - 1;
 337   2              }
 338   1              Write24C16(0xd2,ModePoint);
 339   1              if((flag3 & BIT_2) != 0x00){
 340   2                      printf("UserModePoint =  %d\r\n",(unsigned short)ModePoint);
 341   2              }
 342   1              addr = 0x100 + (ModePoint * 8);
 343   1              for(i=0; i<8; i++){
 344   2                      k = UserTimeTab[j];
 345   2                      Write24C16(addr,k);
 346   2                      if((flag3 & BIT_2) != 0x00){
 347   3                              printf("Data %x = %x\r\n",(unsigned short)i,(unsigned short)k);
 348   3                      }
 349   2                      addr++;
 350   2                      j++;
 351   2              }
 352   1              addr = ModePoint * 4;
 353   1              k = H_SYNC >> 8;
 354   1              Write24C16(addr,k);
 355   1              addr++;
 356   1              k = H_SYNC;
 357   1              Write24C16(addr,k);
 358   1              addr++;
 359   1              k = V_SYNC >> 8;
 360   1              k |= HV_Pol;
 361   1              Write24C16(addr,k);
 362   1              addr++;
 363   1              k = V_SYNC;
 364   1              Write24C16(addr,k);
C51 COMPILER V7.50   MODEHANDLE                                                            03/18/2008 22:04:55 PAGE 7   

 365   1              addr = 0x290 + (ModePoint << 1);
 366   1              j = j - 4;
 367   1              k = UserTimeTab[j];
 368   1              Write24C16(addr,k);
 369   1              addr++;
 370   1              j++;
 371   1              k = UserTimeTab[j];
 372   1              Write24C16(addr,k);
 373   1      }
 374          
 375          void SyncSource(void)
 376          {
 377   1      unsigned char value;
 378   1              if((flag1 & BIT_3) != 0){
 379   2                      if((PoSvTimer == 0)&&((PortC & BIT_0) != 0))
 380   2                      {
 381   3                              if((flag3 & BIT_0) == 0)
 382   3                              {
 383   4                                      if(Read24C16(0xdc) == 0)
 384   4                                      //Power saving flag 0 = no power saving, 1 = have power saving
 385   4                                      {
 386   5                                              PoSvTimer = 500;
 387   5                                      }
 388   4                                      else
 389   4                                      {
 390   5                                              PowerSaving();
 391   5                                      }
 392   4                              }
 393   3                              else
 394   3                              {
 395   4                                      OSD_OFF();                      //Factory mode
 396   4                                      PoSvTimer = 500;
 397   4                                      value = ReadIIC_HW(Scaler_Addr,0x4d) & 0x1f;
 398   4                                      value >>= 2;
 399   4                                      if(++value > 7)
 400   4                                              value = 0;
 401   4                                      flag1 &= ~BIT_1;                //Clear fource to background
 402   4                                      ForceToBackground(value);       //Set fource to background
 403   4                              }
 404   3                      }
 405   2      #ifdef MoveAltOSD
 406   2                      else if(((PortD & BIT_5) != 0)&&(PoSvTimer < 400)&&((flag3 & BIT_0) == 0)){
 407   3                              if(PoSvTimer == 0)
 408   3                              {
 409   4                                      ScalerPowerUp();
 410   4                              }
 411   3                              else
 412   3                              {
 413   4                                      PoSvTimer = 500;
 414   4                                      ShowDisconnector();
 415   4                                      if((PortC & BIT_0) == 0)
 416   4                                      {
 417   5                                              BackLightOn();
 418   5                                      }
 419   4                              }
 420   3                              return;
 421   3                      }
 422   2                      else if(((PortD & BIT_5) == 0)&&((flag2 & BIT_2) != 0)&&((flag3 & BIT_0) == 0))
 423   2                      {
 424   3                              flag1 &= ~BIT_3;                //preset no sync
 425   3                              NoSync();
 426   3                      }
C51 COMPILER V7.50   MODEHANDLE                                                            03/18/2008 22:04:55 PAGE 8   

 427   2      #endif
 428   2                      switch(SyncMode)
 429   2                      {
 430   3                      case 0x00:              // H/V
 431   3                              value = MUTE_CTRL & 0x30;
 432   3                              if(value == 0x00)
 433   3                              {       //no H,V; goto SOG
 434   4                                      CheckSOG();
 435   4                              }
 436   3                              else if(value == 0x20)
 437   3                              {       //no V; goto H+V
 438   4                                      GoToCompositeSync();
 439   4                              }
 440   3                              break;
 441   3                      case 0x01:              // H+V
 442   3                              value = MUTE_CTRL & 0x30;
 443   3                              if(value == 0x00)
 444   3                              {       //no H,V; goto SOG
 445   4                                      CheckSOG();
 446   4                              }
 447   3                              else if(value == 0x20)
 448   3                              {       //no V; goto H/V
 449   4                                      GoToSeparateSync();
 450   4                              }
 451   3                              break;
 452   3                      case 0x02:              //SOG
 453   3                              GoToSeparateSync();
 454   3                              break;
 455   3                      case 0x03:              //DVI
 456   3                              DIG_SEL();
 457   3                              HVI_REG = 0xE0; // HVI_REG
 458   3      #if DVImode == DEmode
                                      WriteIIC_HW(Scaler_Addr,0x12,0xb1);
              #else
 461   3                              WriteIIC_HW(Scaler_Addr,0x12,0x81);
 462   3      #endif
 463   3                              WriteIIC_HW(Scaler_Addr,0x86,0xc0);
 464   3                              WriteIIC_HW(Scaler_Addr,0x87,0xc0);
 465   3                              WriteIIC_HW(Scaler_Addr,0xd5,0x00);
 466   3                              WriteIIC_HW(Scaler_Addr,0xe5,0xc0);
 467   3                              WriteIIC_HW(Scaler_Addr,0xe6,0x03);
 468   3                              WriteIIC_HW(Scaler_Addr,0xf8,DTF8);
 469   3                              if(Use_TCON != 0){
 470   4                                      WriteIIC_HW(Scaler_Addr,0xfe,0xc1);
 471   4                              }
 472   3                              else{
 473   4                                      WriteIIC_HW(Scaler_Addr,0xfe,0xc0);
 474   4                              }
 475   3                              if((flag3 & BIT_2) != 0x00)
 476   3                              {
 477   4                                      printf("DVI Input\r\n");
 478   4                              }
 479   3                              break;
 480   3                      }
 481   2                      Timer3 = 50;
 482   2                      while(Timer3 != 0)
 483   2                      {
 484   3                      CheckIRKey();
 485   3                              CheckKey();
 486   3                              CLRWDT = 0x55;
 487   3                      }
 488   2              }
C51 COMPILER V7.50   MODEHANDLE                                                            03/18/2008 22:04:55 PAGE 9   

 489   1      }
 490          
 491          void GoToSeparateSync(void)
 492          {
 493   1              DIG_Off();
 494   1              HVI_REG = 0xE0; // HVI_REG
 495   1              WriteIIC_HW(Scaler_Addr,0x86,0xc0);
 496   1              WriteIIC_HW(Scaler_Addr,0x87,0xc0);
 497   1              WriteIIC_HW(Scaler_Addr,0xd5,0x00);
 498   1              WriteIIC_HW(Scaler_Addr,0xe6,0x03);
 499   1              WriteIIC_HW(Scaler_Addr,0xf8,DTF8);
 500   1              if(Use_TCON != 0){
 501   2                      WriteIIC_HW(Scaler_Addr,0xfe,0xc1);
 502   2              }
 503   1              else{
 504   2                      WriteIIC_HW(Scaler_Addr,0xfe,0xc0);
 505   2              }
 506   1              SyncMode = 0;
 507   1              if((flag3 & BIT_2) != 0x00){
 508   2                      printf("Separate Sync\r\n");
 509   2              }
 510   1      }

⌨️ 快捷键说明

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