📄 main.lst
字号:
if ( DataOut[DvdRxIndex]&count )
{
mSetDvdIr();
}
else
{
mClrDvdIr();
}
}
else
{
if (DvdRxIndex<=1)
{
mSetDvdIr();
}
else
{
mClrDvdIr();
}
}
while (!mReadDvdClk())
{
if (mReadDvdCs())
{
goto _EINT2_EXIT;
}
}
// data in
DvdRxBuf[DvdRxIndex] |= (mReadDvdDat() ? count : 0);
while (mReadDvdClk())
{
if (mReadDvdCs())
{
goto _EINT2_EXIT;
}
}
}
}
mClrDvdIr();
if (DvdChecksumOk())
{
for (count=1;count<DVD_STATUS_BYTE;count++)
{
ShadowDvdInfo[count-1] = DvdRxBuf[count];
}
#ifndef MARTIN_MCU_AND_DVD_PROTOCOL //martin 14May08
for (count=0;count<CAR_INFO_BYTE;count++)
{
if ((ShadowCarInfo[count]&0xf0)==0)
ShadowCarInfo[count] = DvdRxBuf[DVD_STATUS_BYTE+count];
}
#endif
}
_EINT2_EXIT:
C51 COMPILER V8.05a MAIN 01/05/2009 15:57:47 PAGE 11
if (DataOutValid>0)
{
--DataOutValid;
}
}
EA = 1;
}
#endif
616
617
618 #ifdef MARTIN_DVD_COMM_NOT_SUPPORT_INT
619 void McuDvdComm(void) large
620 {
621 1 BYTE i, count;
622 1
623 1 // EA = 0;
624 1 if (!mReadDvdCs())
625 1 {
626 2 // fgDVDTVCMD=1;//02Aug08
627 2 mClrDvdIr();
628 2 TVRaCurrDataOut();
629 2 // bDataUpdateEn=1;
630 2 while (mReadDvdClk())
631 2 {
632 3 if (mReadDvdCs())
633 3 {
634 4 // fgDVDTVCMD=0; //02Aug08
635 4 mSetDvdIr();//02Aug08
636 4 goto _EINT2_EXIT;
637 4 }
638 3 }
639 2 bTempIrKey=0xff;
640 2 for (i=0;i<(COMDVD_BYTE);i++)
641 2 {
642 3 DvdRxIndex = i;
643 3 DvdRxBuf[DvdRxIndex] = 0;
644 3 for (count=0x80;count>0;count>>=1)
645 3 {
646 4 if ( DataOut[DvdRxIndex]&count ) // data Out
647 4 {
648 5 mSetDvdIr();
649 5 }
650 4 else
651 4 {
652 5 mClrDvdIr();
653 5 }
654 4
655 4 while (!mReadDvdClk())
656 4 {
657 5 if (mReadDvdCs())
658 5 {
659 6 // fgDVDTVCMD=0; //02Aug08
660 6 mSetDvdIr();//02Aug08
661 6 goto _EINT2_EXIT;
662 6 }
663 5 }
664 4
665 4 DvdRxBuf[DvdRxIndex] |= (mReadDvdDat() ? count : 0); // data in
666 4
C51 COMPILER V8.05a MAIN 01/05/2009 15:57:47 PAGE 12
667 4
668 4 while (mReadDvdClk())
669 4 {
670 5 if (mReadDvdCs())
671 5 {
672 6 // fgDVDTVCMD=0; //02Aug08
673 6 mSetDvdIr();//02Aug08
674 6 goto _EINT2_EXIT;
675 6 }
676 5 }
677 4 }
678 3
679 3 /* //27Aug08 test
680 3 if(DvdChecksumOk())
681 3 {
682 3
683 3 for (count=1;count<COMDVD_BYTE;count++)
684 3 {
685 3 ShadowDvdInfo[count-1] = DvdRxBuf[count];
686 3 // if(DvdRxBuf[1] == 0x81)
687 3 // _bIRKey0=IR_SYSTEM;
688 3 }
689 3 }
690 3 else
691 3 {
692 3 ShadowDvdInfo[0]=0xff;
693 3 }
694 3 */
695 3 }
696 2
697 2
698 2 mClrDvdIr();
699 2
700 2
701 2 _EINT2_EXIT:
702 2 mSetDvdIr();//02Aug08
703 2 // fgChangeTV=0;//02Aug08
704 2 // fgDVDTVCMD=0; //02Aug08
705 2 // bDataUpdateEn=0;
706 2 if (DataOutValid>0)
707 2 {
708 3 --DataOutValid;
709 3 }
710 2
711 2 if(DvdChecksumOk()) //27Aug08
712 2 {
713 3 for (count=1;count<COMDVD_BYTE;count++)
714 3 {
715 4 ShadowDvdInfo[count-1] = DvdRxBuf[count];
716 4 }
717 3 #ifdef OPEN_PRINTF
DRS232LogS("DVD Comm OK.\n");
#endif
720 3 }
721 2 else
722 2 {
723 3 ShadowDvdInfo[0]=0xff;
724 3 #ifdef OPEN_PRINTF
DRS232LogS("DVD Comm Fail.\n");
#endif
727 3 }
728 2 }
C51 COMPILER V8.05a MAIN 01/05/2009 15:57:47 PAGE 13
729 1 else //080808
730 1 {
731 2 mSetDvdIr(); //080808
732 2 }
733 1
734 1 // EA = 1;
735 1 }
736
737 #endif
738 //*****************************************************************************************
739 // Main Entrance
740 //*****************************************************************************************
741 void main(void)
742 {
743 1
744 1 CS8955_SEL = 0x80; // ALE disable
745 1 EA = 0; //enable all interrupt
746 1 vInitCPU(); //27Aug08 (ON);
747 1
748 1 vInitSys(); //martin 12May08
749 1
750 1
751 1 while(1)
752 1 {
753 2
754 2 /////************* communication for dvd ***************************//////
755 2
756 2 #ifdef MARTIN_DVD_COMM_NOT_SUPPORT_INT
757 2 // if((!fgDVDTVCMD)/*&&(!fgChangeTV)*/) //02Aug08
758 2 McuDvdComm();
759 2 #endif
760 2 ///****************************************************************//////
761 2
762 2 ////************************ TV search state ************************////
763 2
764 2 if (_bSearchState>0)
765 2 {
766 3 vTVSearch(_fgSearchDir);
767 3 }
768 2 ////*****************************************************************////
769 2
770 2 /////************************ tasks **********************************////
771 2
772 2 if (bTimer20ms)
773 2 {
774 3 TaskProc();
775 3 if (_bRemoteTimer>0)
776 3 --_bRemoteTimer;
777 3 bTimer20ms = 0;
778 3
779 3 #ifdef MARTIN_TEST_CHANNNEL_NUMBER_SHOW
780 3 vFreAFCAdjLoop();
781 3 #else
if(fgAFCADJCnt != 0x00)
{
fgAFCADJCnt--;
vFreAFCAdj(); //02Aug08
}
#endif
788 3
789 3 #ifdef MARTIN_TUNER_XF6A_PAL_M_NOT_SYNC
790 3 if((fgTunerType == TV_TYPE_XF6A) &&(_bSearchState == S_STATE_IDLE ))
C51 COMPILER V8.05a MAIN 01/05/2009 15:57:47 PAGE 14
791 3 {
792 4 vPalMBugAdj(); //17Sep08
793 4 }
794 3 #endif
795 3
796 3 #if 0 //#ifdef OPEN_PRINTF
if(_bSearchState == S_STATE_IDLE)
{
if(bReadAdcCnt < 0xf0)
{
bReadAdcCnt++;
}
if(bReadAdcCnt == 0xf0)
{
bReadAdcCnt=0x00;
bTvAdcValue=bTV_ADC_Read();
Delay1ms(30);
DRS232LogS("TV ADC VAULE: .\n");
DRS232LogB(bTvAdcValue,bTvAdcValue,bTvAdcValue,0xff);
}
}
#endif
815 3 }
816 2 ///****************************************************************////
817 2 }
818 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1374 ----
CONSTANT SIZE = 159 ----
XDATA SIZE = 71 51
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = 25 ----
BIT SIZE = 5 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -