main.lst

来自「显示屏驱动源代码」· LST 代码 · 共 721 行 · 第 1/3 页

LST
721
字号
 458   1      
 459   1      }
 460          
 461          void SetOSDLastKeyInTime(void)
 462          {
 463   1              OSDLastKeyInTime = GetTime_ms();
 464   1      }
 465          
 466          WORD GetOSDLastKeyInTime(void)
 467          {
 468   1              return OSDLastKeyInTime ;
 469   1      }
 470          
 471          //=============================================================================
 472          //
 473          //=============================================================================
 474          #ifdef SUPPORT_PATTERN
              CODE BYTE PATTERN[7][] = {
                      {TW88I2CAddress,7, 0x61,0x5f, 0x64,0xff, 0x65,0x00, 0x66,0x00, 0x67,0xff, 0x68,0x00, 0x69,0x00, 0xff,0xff
             -},        // Red
                      {TW88I2CAddress,7, 0x61,0x5f, 0x64,0x00, 0x65,0xff, 0x66,0x00, 0x67,0x00, 0x68,0xff, 0x69,0x00, 0xff,0xff
             -},        // Green
                      {TW88I2CAddress,7, 0x61,0x5f, 0x64,0x00, 0x65,0x00, 0x66,0xff, 0x67,0x00, 0x68,0x00, 0x69,0xff, 0xff,0xff
             -},        // Blue
                      {TW88I2CAddress,7, 0x61,0x5f, 0x64,0xff, 0x65,0xff, 0x66,0xff, 0x67,0xff, 0x68,0xff, 0x69,0xff, 0xff,0xff
             -},        // White
                      {TW88I2CAddress,7, 0x61,0x5f, 0x64,0x00, 0x65,0x00, 0x66,0x00, 0x67,0xff, 0x68,0xff, 0x69,0xff, 0xff,0xff
             -},        // Gray
                      {TW88I2CAddress,7, 0x61,0x5f, 0x64,0x00, 0x65,0x00, 0x66,0x00, 0x67,0x00, 0x68,0x00, 0x69,0x00, 0xff,0xff
             -},        // Black
C51 COMPILER V7.06   MAIN                                                                  02/21/2008 14:00:27 PAGE 9   

                      {TW88I2CAddress,7, 0x61,0x00, 0x64,0xc0, 0x65,0xc0, 0x66,0xc0, 0x67,0x88, 0x68,0x88, 0x69,0x88, 0xff,0xff
             -}        // Gray scale
              };
              #endif // SUPPORT_PATTERN
 485          
 486          
 487          #ifdef SUPPORT_KRS_OSDDEMO
              #include "udfont_Krs.c"
              #include "OsdInitTable_KRS.c"
              
              #define MaxFontUdFont   174
              #define COLORFONT_START 0x3a
              
              void DownloadUDFont_Only(void)
              {
                      BYTE i;
              
                      WriteTW88(TW88_MULTISTART, COLORFONT_START); // Set Color Font Start Address. 
              
                      for(i=0; i< NO_UDFONT && i<= MaxFontUdFont ; i++) {
                              DownloadFont(i, RAMFONTDATA_KRS[i]);
                      }
              }
              
              void Change_OSDColorLookup_KRS(void)
              {
                      BYTE i,j,dt;
                      for(j=0; j<2; j++) {   
                              for(i=0; i<8; i++) {
                                      dt = ReadTW88(0x9c);
                                      dt &= 0xf0;
                                      WriteTW88(0x9c, i+j*8);
                                      WriteTW88(0x9d, OSD_Color_LookUp_Data_Table_KRS[j][i]);
                              }
                      }
              }
              
              #endif
 519                          
 520          void main_loop(void)
 521          {
 522   1              #ifdef INTERNAL_MCU
                      WORD    i;
                      #endif
 525   1      
 526   1              //---------------------------------------------------------------
 527   1              //                                   Main Loop
 528   1              //---------------------------------------------------------------
 529   1              while(1) {
 530   2                      
 531   2                #ifdef INTERNAL_MCU
                              #ifdef DEBUG_MCU
                              WriteTW88(0x16, resetCount);
                              #endif
                              if (POWER_DOWN == 1) {
                                      Puts("\r\nGot signal to Power Down!!! wait for some times.....");
                                      for ( i=0; i<0xFF0; i++ ) ;
                                      if ( POWER_DOWN == 1 ) {
                                              Puts("\r\n Entering Stop mode.....");
                                              PowerDown();
                                      }
                                      else
C51 COMPILER V7.06   MAIN                                                                  02/21/2008 14:00:27 PAGE 10  

                                              Puts("\r\nGlitch on Power Down signal");
                              }
                              
                              if ( TW88IRQ ) {                // it means EXT3_INT, TW88 IRQ has occured
                                      Printf("\r\nTW88 IRQ occur.....: 0x%4x", TW88IRQ);
                                      TW88IRQ = 0;
                              }
                        #else
 551   2                      //while(TestStop ) ; // Test By RYU.
 552   2                      if( (P4 & 0x02)==0 ) {
 553   3                              Printf("\r\nDisable main Micom I2C");
 554   3                              while((P4 & 0x02)==0);
 555   3                              Printf("\r\nEnable Main Micom I2C");
 556   3                      }
 557   2                #endif
 558   2      
 559   2                      //-------------- Check Serial Port -----------------
 560   2                      #ifdef SERIAL
 561   2                      while( RS_ready() ) 
 562   2                              Monitor();                              // for new monitor functions
 563   2                              //DebugKeyIn( RS_rx() );        // Input - Serial Port
 564   2      
 565   2                              #ifndef INTERNAL_MCU
 566   2                              //-------------- Check No Initial text mode -----------------
 567   2                              #ifdef NO_INITIALIZE
 568   2                              if( NoInitAccess )       // No Initialize
 569   2                              {
 570   3                                      if( P0_3 == 1 ) 
 571   3                                      {       
 572   4                                              NoInitAccess =0;
 573   4                                              Printf("\r\n Recovered normal mode from no-initialize Test mode ..\n");
 574   4                                      }
 575   3                                      else
 576   3                                              continue;
 577   3                              }
 578   2                              #endif  // NO_INITIALIZE
 579   2                              #endif //  INTERNAL_MCU
 580   2                      #endif // SERIAL
 581   2      
 582   2                      //-------------- Check Key in --------------------------
 583   2                      if( !CheckKeyIn() ) break;                      // POWEROFF
 584   2      
 585   2                      //-------------- Check Remote Controller ---------------
 586   2                      if( !CheckRemo() ) break;                       // POWEROFF
 587   2                              
 588   2                      //-------------- Check OSD timer -----------------------
 589   2                      #ifdef DEBUG_OSD                                //ljy012604
                              if(DebugLevel>=DEBUG_INFO)
                                      ;
                              else
                              #endif
 594   2                      CheckAndClearOSD();
 595   2      
 596   2                      //-------------- Check OFF timer -----------------------
 597   2                      if( OKSleepTime() ) break;
 598   2      
 599   2                    SourceProcess(); // Hans
 600   2      
 601   2              }
 602   1      
 603   1      }
 604          
C51 COMPILER V7.06   MAIN                                                                  02/21/2008 14:00:27 PAGE 11  

 605          void main(void)
 606          {
 607   1              TW88HWReset = 0;                        //TW88 HW reset by port pin, internal MCU no meaning
 608   1              //P4=0x0f;
 609   1      
 610   1              InitCPU();
 611   1      
 612   1              SetMonAddress(TW88I2CAddress);
 613   1      
 614   1              InitVars();
 615   1      
 616   1              InitTechwell();
 617   1      
 618   1              while(1) {
 619   2                      main_loop();            //exit when power off
 620   2                      
 621   2                      PowerOff();
 622   2                      WaitPowerOn();
 623   2                      ChangeInput( GetInputSelectionEE() );
 624   2              }
 625   1      }
 626          
 627          #if defined SUPPORT_TV
              BYTE WantToStopTVScan(void)
              {
                      BYTE AutoKey=0, ret=0, _RemoDataCode=0;
              
                      ret = GetKey(1); 
              
                      if( ret == MENUKEY ) {
                              //Printf("\r\n(WantToStopTVScan) Pushed Menu Key!!");
                              return 1;
                      }
              
                      if( !ret )
                              ret = IsRemoDataReady(&_RemoDataCode, &AutoKey);
              
                      if( _RemoDataCode==REMO_MENU  ) ret = 1;
                      else    ret = 0;
              
                      #if defined DEBUG_KEYREMO || defined DEBUG_TV
                      dPrintf("\r\n(WantToStopTVScan) ret:0x%x, RemoDataCode:0x%x", (WORD)ret, (WORD)_RemoDataCode);
                      #endif
              
                      return ret;
              }
              
              void ChangeVInputStdDetectMode(BYTE val)
              {
                      VInputStdDetectMode = val;
                      SaveVInputStdDetectModeEE(val);
                      
                      if( VInputStdDetectMode ==AUTO )        
                              SetAutoDetectStd();
                      else {
                              SetVInputStd(val);
                              ClearAutoDetectStd(val-1);
              //              InitVideoData( val );                   
                      }       
              }
              #endif          //SUPPORT_TV
 666          
C51 COMPILER V7.06   MAIN                                                                  02/21/2008 14:00:27 PAGE 12  



MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    656    ----
   CONSTANT SIZE    =    461    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =      6       9
   DATA SIZE        =      9    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      6       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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