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

📄 sync.lst

📁 MST720-DEMO程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 652   3                      #if RS232DBG
 653   3                              sysWriteString("VD Status change !\x0d\x0a");
 654   3                              sysWriteString("BK3_72: ");
 655   3                              sysWriteHex(ucTemp_VDStatus, 1);
 656   3                              sysWriteString(tChangeLine);
 657   3                      #endif  //RS232DBG
 658   3                      }
 659   2              }
 660   1              else
 661   1              {
 662   2                      mstWriteByte(GEN_00_REGBK, REGBANKSCALER);
 663   2      
 664   2                      ucTemp0_1E = mstReadByte(BK0_1E_INTSTD);
 665   2                      if(((ucTemp0_1E & 0x1F)!=0) && ((g_ucSystemFlag&INPUT_TIMING_CHANGE_FLAG) == 0))
 666   2                      {
 667   3                              mstEnableMute();
 668   3                              g_ucSystemFlag |= INPUT_TIMING_CHANGE_FLAG;
 669   3                              g_ucSystemFlag &= ~INPUT_SIGNAL_STABLE_FLAG;
 670   3                              g_ucSyncStableCounter = 0;
 671   3      
C51 COMPILER V7.50   SYNC                                                                  03/18/2008 22:29:09 PAGE 12  

 672   3                      #if RS232DBG
 673   3                              sysWriteString("Sync change flag set \x0d\x0a ");
 674   3                              sysWriteString("BK0_1E_INTSTD:  ");
 675   3                              sysWriteHex(ucTemp0_1E, 1);
 676   3                              sysWriteString(tChangeLine);
 677   3                      #endif  //RS232DBG
 678   3                      }
 679   2              }
 680   1      
 681   1              mstWriteByte(GEN_00_REGBK, ucBank);
 682   1      
 683   1      #else
                      BYTE ucTemp0_18 = 0;
                      BYTE ucTemp0_1E = 0;
                      BYTE ucTemp3_72 = 0;
                      
                      ucTemp0_1E = mstReadByte(BK0_1E_INTSTD);
                      ucTemp0_18 = mstReadByte(BK0_18_INTSTA);
                      
                      if(((ucTemp0_1E & 0x1F)!=0) && ((g_ucSystemFlag&INPUT_TIMING_CHANGE_FLAG) == 0))
                      {
                              if(g_bVCRMode && (ucTemp0_1E & 0x1C))   //20050921 for VCR
                                      return;
                              
                              mstEnableMute();
              
              #if (MARIA_TYPE_SEL == MARIA_2)
                              mstWriteByte(GEN_00_REGBK, REGBANKVCF);
                              ucTemp3_72 = mstReadByte(BK3_72_COMB_STSC);
                              mstWriteByte(GEN_00_REGBK, REGBANKSCALER);
                              if((g_ucSystemFlag & NO_INPUT_SIGNAL_FLAG) && (ucTemp3_72 & _BIT3))
                              {
                                      return;
                              }
              #endif
                              g_ucSystemFlag |= INPUT_TIMING_CHANGE_FLAG;
                              g_ucSystemFlag &= ~INPUT_SIGNAL_STABLE_FLAG;
                              g_ucSyncStableCounter = 0;
              #if 0 //(MARIA_TYPE_SEL == MARIA_2)
                              mstResetVedioDecoder();
              #endif
              
                      #if RS232DBG
                              sysWriteString("Sync change flag set \x0d\x0a ");
                              sysWriteString("BK0_1E_INTSTD:  ");
                              sysWriteHex(ucTemp0_1E, 1);
                              sysWriteString(tChangeLine);
                      #endif  //RS232DBG
                      }
                      //else if((( ucTemp0_18 & 0xCD) != 0) && ((g_ucSystemFlag&INPUT_TIMING_CHANGE_FLAG) == 0))
                      else if((( ucTemp0_18 & 0xCC) != 0) && ((g_ucSystemFlag&INPUT_TIMING_CHANGE_FLAG) == 0))//20050905
                      {
                              if((g_ucSystemFlag & NO_INPUT_SIGNAL_FLAG) == 0)        // have signal input
                              {
                                      mstEnableMute();
                                      g_ucSystemFlag |= INPUT_TIMING_CHANGE_FLAG;
                                      g_ucSystemFlag &= ~INPUT_SIGNAL_STABLE_FLAG;
                                      g_ucSyncStableCounter = 0;
              
                      #if RS232DBG
                                      sysWriteString("Sync change flag set \x0d\x0a ");
                                      sysWriteString("BK0_18_INTSTA_L:  ");
C51 COMPILER V7.50   SYNC                                                                  03/18/2008 22:29:09 PAGE 13  

                                      sysWriteHex(ucTemp0_18, 1);
                                      sysWriteString(tChangeLine);
                      #endif  //RS232DBG
                              }
                              else                                            // no signal input
                              {
                                      if((ucTemp0_18 & 0xC0)!=0)
                                      {
                                              g_ucSystemFlag |= INPUT_TIMING_CHANGE_FLAG;
                                              g_ucSystemFlag &= ~INPUT_SIGNAL_STABLE_FLAG;
                                              g_ucSyncStableCounter = 0;
                                              
                              #if RS232DBG
                                              sysWriteString("Sync change flag set \x0d\x0a ");
                                              sysWriteString("BK0_18_INTSTA_H:  ");
                                              sysWriteHex(ucTemp0_18, 1);
                                              sysWriteString(tChangeLine);
                              #endif  //RS232DBG
                                      }
                              }
                              
                      }
              
                      if( (g_ucSystemFlag & INPUT_TIMING_CHANGE_FLAG) != 0)
                              return;
                      
                      // 20050823 Antony for (check sync. status for full odd field)
                      if((g_ucSyncStatus & INTERLANCE_MODE_B) != (mstReadByte(BK0_EF_STATUS2) & INTERLANCE_MODE_B))
                      {
                              mstEnableMute();
                              g_ucSystemFlag |= INPUT_TIMING_CHANGE_FLAG;
                              g_ucSystemFlag &= ~INPUT_SIGNAL_STABLE_FLAG;
                              g_ucSyncStableCounter = 0;
                      }
              
              #endif
 770   1      }
 771          
 772          BYTE mstSyncDetect(void)
 773          {
 774   1              WORD uwHFreq, uwVFreq, uwFreqTemp;
 775   1              BYTE ucSyncStatus, ucSyncTemp;
 776   1      #if ((MARIA_TYPE_SEL == MARIA_2) && ENABLE_NEW_SYNC)
 777   1              BYTE ucBank;
 778   1              BYTE ucTempBK3_72;
 779   1      #endif
 780   1      
 781   1              ucSyncStatus = 0;
 782   1      
 783   1      #if ((MARIA_TYPE_SEL == MARIA_2) && ENABLE_NEW_SYNC)
 784   1              ucBank = mstReadByte(GEN_00_REGBK);
 785   1      
 786   1              if(tOSDSourcSELSequence[Display.ucSourceSEL] < VGA)
 787   1              {
 788   2                      mstWriteByte(GEN_00_REGBK, REGBANKVCF);         // Switch bank3 VCF
 789   2                      ucTempBK3_72 = mstReadByte(BK3_72_COMB_STSC);
 790   2                      if((ucTempBK3_72 & _BIT3) != 0)
 791   2                      {
 792   3                              ucSyncStatus |= SYNC_LOSS_MASK;
 793   3                      }
 794   2                      if((ucTempBK3_72 & 0xF0) == 0)
 795   2                      {
C51 COMPILER V7.50   SYNC                                                                  03/18/2008 22:29:09 PAGE 14  

 796   3                              ucSyncStatus |= SYNC_LOSS_MASK;
 797   3                      }
 798   2                      
 799   2                      if(ucTempBK3_72 != g_ucVDStatus)
 800   2                      {
 801   3                              ucSyncStatus |= SYNC_LOSS_MASK;
 802   3                              g_ucVDStatus = ucTempBK3_72;
 803   3                      }
 804   2                      mstWriteByte(GEN_00_REGBK, REGBANKSCALER);              // Switch bank0 Scaler
 805   2                      //if(ucSyncStatus & SYNC_LOSS_MASK)
 806   2                              //mstResetVedioDecoder();
 807   2              }
 808   1                      
 809   1      #endif
 810   1      
 811   1              mstWriteByte(BK0_18_INTSTA, 0x00);                      // 20050809 Antony
 812   1      
 813   1              uwHFreq = mstReadWord(BK0_EB_HSPRD_H) & 0x1FFF; // Get H Period count
 814   1              if ((uwHFreq == 0x1FFF) || (uwHFreq < 10))              
 815   1                      ucSyncStatus |= NO_HSYNC_B;
 816   1              
 817   1              uwVFreq = mstReadWord(BK0_ED_VTOTAL_H) & 0x7FF;         // Get V period count
 818   1              if ((uwVFreq == 0x7FF) || (uwVFreq < 10))
 819   1                      ucSyncStatus |= NO_VSYNC_B;
 820   1      
 821   1              ucSyncTemp = mstReadByte(BK0_EF_STATUS2);               // Get SYNC status
 822   1      
 823   1              ucSyncStatus |= (ucSyncTemp & (PAL_MODE_B+CSYNC_MODE_B+INTERLANCE_MODE_B+HSYNC_NEGATIVE_B+VSYNC_NEGATIVE_
             -B));
 824   1      
 825   1      #if !DEMODULELATOR_MODE
                      mstWriteByte(GEN_00_REGBK, REGBANKVCF);         // Switch bank3 VCF
                      
                      mstWriteByte(BK3_70_COMB_STSA, 0xFF);                   // clear CF status
              
                      mstWriteByte(GEN_00_REGBK, REGBANKSCALER);              // Switch bank0 Scaler
              #endif  //DEMODULELATOR_MODE
 832   1      
 833   1              miscDelay1ms(30);
 834   1      
 835   1              ucSyncTemp = mstReadByte(BK0_EF_STATUS2);
 836   1      
 837   1              if ((ucSyncStatus&(HSYNC_NEGATIVE_B+VSYNC_NEGATIVE_B)) != (ucSyncTemp&(HSYNC_NEGATIVE_B+VSYNC_NEGATIVE_B)
             -))
 838   1                      ucSyncStatus |= SYNC_LOSS_MASK;
 839   1              #if 0 //RS232DBG
                              sysWriteString("sd1: ");
                              sysWriteHex(ucSyncStatus, 1);
                              sysWriteString(tChangeLine);
                      #endif  //RS232DBG
 844   1      
 845   1              if (!g_bVCRMode)
 846   1              {
 847   2      
 848   2                      if (!g_bAllOddFiled)
 849   2                      {
 850   3                              uwFreqTemp = mstReadWord(BK0_EB_HSPRD_H) & 0x1FFF;
 851   3      
 852   3                              if (((uwHFreq-uwFreqTemp)>4)||((uwFreqTemp-uwHFreq)>4))
 853   3                                      ucSyncStatus |= SYNC_LOSS_MASK;
 854   3      
 855   3                      }
C51 COMPILER V7.50   SYNC                                                                  03/18/2008 22:29:09 PAGE 15  

 856   2      
 857   2                      uwFreqTemp = mstReadWord(BK0_ED_VTOTAL_H) & 0x7FF;
 858   2      
 859   2                      if (((uwVFreq-uwFreqTemp)>2)||((uwFreqTemp-uwVFreq)>2))
 860   2                              ucSyncStatus |= SYNC_LOSS_MASK;
 861   2      
 862   2              }
 863   1              
 864   1              #if 0 //RS232DBG
                              sysWriteString("sd2: ");
                              sysWriteHex(ucSyncStatus, 1);
                              sysWriteString(tChangeLine);
                      #endif  //RS232DBG
 869   1      

⌨️ 快捷键说明

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