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 + -
显示快捷键?