📄 paltuner.lst
字号:
510 1 SetTVFreq( TEMP_TVFREQ );
511 1
512 1 if( IsVideoInput() ) {
513 2 if( flag == UP ) TEMP_TVFREQ += FREQ_INC;
514 2 else TEMP_TVFREQ -= FREQ_INC;
515 2 }
516 1
517 1 while(1)
518 1 {
519 2 if( WantToStopTVScan() )
520 2 break;
521 2
522 2 if( flag == UP ) TEMP_TVFREQ += FREQ_INC;
523 2 else TEMP_TVFREQ -= FREQ_INC;
524 2
525 2 SetTVFreq( TEMP_TVFREQ );
526 2 DisplayTVFreq(TEMP_TVFREQ);
527 2 delay(20); // Wait for 150mS
528 2
529 2 if( IsVideoInput() )
530 2 if(AFT(TEMP_TVFREQ)) break;
531 2
532 2 if( (TEMP_TVFREQ > MAX_FREQUENCY ) || (TEMP_TVFREQ < MIN_FREQUENCY)) break;
533 2 };
534 1
535 1 if( IsAudioMuteOn() ) DisplayMuteInfo();
536 1 else AudioOn();
537 1
538 1 }
539
540 void ScanTVChannel(void)
541 {
542 1 BYTE i;
543 1 WORD addr;
544 1 WORD TEMP_TVFREQ;
545 1
546 1 TVChannel = 0;
547 1
548 1 AudioOff();
549 1
C51 COMPILER V7.50 PALTUNER 04/01/2008 15:02:41 PAGE 10
550 1 //if( Colorsystem == SECAM_L_BAND ) TEMP_TVFREQ = SECAM_L_MIN;
551 1 //else
552 1 TEMP_TVFREQ = MIN_FREQUENCY;
553 1
554 1 DisplayScanChannel(TVChannel);
555 1
556 1 for( ; TEMP_TVFREQ < MAX_FREQUENCY; TEMP_TVFREQ += FREQ_INC ) //1Mhz++
557 1 {
558 2 if( WantToStopTVScan() ) break;
559 2
560 2 SetTVFreq( TEMP_TVFREQ );
561 2
562 2 DisplayTVFreq(TEMP_TVFREQ);
563 2
564 2 delay(15); // Wait for 150mS
565 2
566 2 if( IsVideoInput() ) {
567 3 if(AFT(TEMP_TVFREQ)){
568 4 //TVFreq = TEMP_TVFREQ;
569 4 TEMP_TVFREQ = TVFreq;
570 4 TEMP_TVFREQ += FREQ_INC*2;//32++; 2Mhz++
571 4 TVChannel++;
572 4
573 4 DisplayScanChannel(TVChannel);
574 4
575 4 SetTVFreqEE( TVChannel, TVFreq );
576 4 SetTVPrSystem(TVChannel, 0); // Not skip
577 4 SetFineTuneEE(TVChannel, 0); // FineTune = 0
578 4
579 4 addr = FIRST_SAVEDPR+TVCHNAME + TVChannel*BYTEPERCHANNEL; // Channel Name = "-----" (Default)
580 4 for(i=0; i<5; i++, addr++)
581 4 WriteEEP( addr, '-' );
582 4 }
583 3
584 3 if( TVChannel > TOTAL_PR ) break;
585 3 }
586 2
587 2 }//for
588 1
589 1 i=TVChannel+1;
590 1
591 1 TVChannel = DummyChannel = 1; // First Channel
592 1
593 1 //070406-start
594 1 #if TVTunerDevice==LGTUNER_MK5
595 1 ClearScanTV(); // for fast clear scantv osd
596 1 #endif //TVTunerDevice==LGTUNER_MK5
597 1 //070406-end
598 1
599 1 SetTVChannel();
600 1
601 1 if( IsAudioMuteOn() ) DisplayMuteInfo();
602 1 else AudioOn();
603 1
604 1 // Erase remain channel data
605 1 for( ; i <= TOTAL_PR; i++ ){
606 2 SetTVFreqEE( i, 0x0fff );
607 2 SetTVPrSystem(i, SKIPCHN_MASK); // skip
608 2 WriteEEP(FIRST_SAVEDPR+TVCHNAME + i*BYTEPERCHANNEL, 0xff); // First char of the name = 0xff;
609 2 SetFineTuneEE(i, 0); // FineTune = 0
610 2 }
611 1 #ifdef DEBUG
C51 COMPILER V7.50 PALTUNER 04/01/2008 15:02:41 PAGE 11
612 1 dPuts("\r\n Channel scan-----Finished");
613 1 #endif
614 1
615 1 }
616
617 /*
618 void SaveChannel( BYTE chn )
619 {
620 TVChannel = chn;
621 SetTVFreqEE( TVChannel, TVFreq );
622 SetTVChannel();
623 }
624 */
625 CODE struct RegisterInfo OSDFineTuneRange={ -31, 31, 0 };
626 BYTE GetFineTune(void)
627 {
628 1 char val;
629 1 int rd;
630 1 val = GetFineTuneEE(TVChannel) ;
631 1 Mapping1( val, &OSDFineTuneRange, &rd, &UserRange );
632 1 return (BYTE)rd;
633 1 }
634
635 BYTE ChangeFineChannel(BYTE flag)
636 {
637 1 int rd;
638 1 char val;
639 1 WORD Freq;
640 1
641 1 val = GetFineTuneEE(TVChannel) ;
642 1 Printf("\r\nFine Tune:%d", (WORD)val);
643 1
644 1 // if( val & 0x80 ) rd = -(val&0x7f)
645 1 val = ( flag==UP ? val+1 : val-1 );
646 1 if( val < OSDFineTuneRange.Min || val > OSDFineTuneRange.Max )
647 1 return 0; // Retry!!
648 1 Freq = GetTVFreqEE(TVChannel);
649 1
650 1 Freq = Freq + val;
651 1 SetTVFreq( Freq );
652 1 SetFineTuneEE(TVChannel, (BYTE)val);
653 1
654 1 Mapping1( val, &OSDFineTuneRange, &rd, &UserRange );
655 1 return (BYTE)rd;
656 1 }
657
658
659 void GetFirstChannel(void)
660 {
661 1 TVChannel = DummyChannel = GetTVPrEE();
662 1 SetTVChannel();
663 1 }
664
665 BYTE IsSavedCurChn(void)
666 {
667 1 return( ( GetTVPrSystem( TVChannel ) & SKIPCHN_MASK ) ? CLEARED_CHN : SAVED_CHN );
668 1 }
669 /*
670 BYTE StoreClearCurChn(void)
671 {
672 BYTE val,cleared;
673
C51 COMPILER V7.50 PALTUNER 04/01/2008 15:02:41 PAGE 12
674 val = GetTVPrSystem( TVChannel );
675 if( val & SKIPCHN_MASK ) { val &= ( ~SKIPCHN_MASK ); cleared = SAVED_CHN ; }
676 else { val |= SKIPCHN_MASK; cleared = CLEARED_CHN ; }
677
678 SetTVPrSystem( TVChannel, val );
679 return cleared;
680 }
681 */
682 void EditTVChn(BYTE _RemoDataCode)
683 {
684 1 WORD TempChannel;
685 1 TempChannel = DummyChannel ;
686 1
687 1 if( TVChManual ) {
688 2 TempChannel*= 10;
689 2 TempChannel+= _RemoDataCode;
690 2
691 2 if (TempChannel > TOTAL_PR )
692 2 {
693 3 while( TempChannel >= 10 )
694 3 TempChannel -= 10;
695 3 }
696 2 }
697 1 else {
698 2 TempChannel = _RemoDataCode;
699 2 }
700 1
701 1 DummyChannel = TempChannel;
702 1 DisplayTVChannel(DummyChannel, 0);
703 1 TVChManual = 1; // Request to run channel after timeout.
704 1 }
705
706 void InitTV(void)
707 {
708 1 //070406-start
709 1 #if TVTunerDevice==LGTUNER_MK5
710 1 SetTVIFStd(IF_I);
711 1 #else //TVTunerDevice==LGTUNER_MK5
MTSType = MTS_STEREO;
#ifdef DEBUG_TV
dPrintf("\r\n++(InitTV) TunerI2CAddress:0x%04x", (WORD)TVTunerI2CAddress);
#endif
#if TVTunerDevice==TVAVA
WriteI2C(0x86, 0x00, 0x30);
WriteI2C(0x86, 0x01, 0x10); //Set NTSC audio
WriteI2C(0x86, 0x02, 0x0c); //Set NTSC Video
#endif
#endif //TVTunerDevice==LGTUNER_MK5
726 1 //070406-end
727 1
728 1 }
729
730 void SetTVIFStd(BYTE cStd)
731 {
732 1 CODE BYTE PALSECAMTunerSysReg[] = {
733 1 0x56,0x72,0x09, //for B/G
734 1 0x56,0x72,0x0a, //for I
735 1 0x56,0x72,0x0b, //for D/K
C51 COMPILER V7.50 PALTUNER 04/01/2008 15:02:41 PAGE 13
736 1 0x46,0x50,0x4b, //for L
737 1 0xc6,0x50,0x53 //for L'
738 1 };
739 1 MTSType = MTS_STEREO;
740 1
741 1 #ifdef DEBUG_TV
dPrintf("\r\n++(InitTV) TunerI2CAddress:0x%04x", (WORD)TVTunerI2CAddress);
#endif
744 1
745 1 cStd = GetVInputStdDetectModeEE();
746 1 WriteI2Cn_ExternalDev(TVTunerIFI2CAddress, 0x00, &PALSECAMTunerSysReg[cStd*3], 3);
747 1
748 1 }
749
750 void ResetTVValue(void)
751 {
752 1
753 1 }
754 #endif //defined( PAL_TV ) && defined(SUPPORT_TV)
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1770 ----
CONSTANT SIZE = 110 ----
XDATA SIZE = ---- ----
PDATA SIZE = 2 44
DATA SIZE = 3 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -