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

📄 videosourceswitch.lst

📁 T103的开发程序 能兼容很多屏 可根据需要修改定义
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.08   VIDEOSOURCESWITCH                                                     11/23/2007 00:57:18 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE VIDEOSOURCESWITCH
OBJECT MODULE PLACED IN .\Object\VideoSourceSwitch.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE SourceFile\VideoSourceSwitch.c LARGE BROWSE INCDIR(.\IncludeFile;.\IncludeF
                    -ile\Panel;.\IncludeFile\Font_Icon) DEFINE(T108) DEBUG OBJECTEXTEND PRINT(.\List\VideoSourceSwitch.lst) OBJECT(.\Object\V
                    -ideoSourceSwitch.obj)

line level    source

   1          #include "Common.h"
   2          #include "Global.h"
   3          #include "ICControl.h"  
   4          #include "VideoSourceSwitch.h"
   5          #include "System.h"
   6          #include "SRC_ctrl.h"
   7          #include "TWICreg.h"
   8          #include "Timer0.h"
   9          #include "TxxInitTable.h"
  10          #include "VideoDetect.h"
  11          //#define  _Myson8957_
  12          #include "Myson8957.h"  
  13          Source code uiaSrcMux1[]={
  14          {0x0804, itypeCVBS,   isrcVIDEO    },
  15          {0x2004, itypeSVIDEO, isrcVIDEO    },
  16          #ifdef PC_MODE
              {0x2A24, itypeRGB,    isrcANALOG   },
              #endif
  19          #ifdef YPbPr
              {0x2824, itypeYPBPR,  isrcVIDEO    },
              #endif
  22          #ifdef DIGI_AVAILABLE
              {0x0100, itypeRGB565, isrcDIGITAL  },
              {0x2824, itype656,    isrcDIGITAL  },
              #endif
  26          };
  27          void SourceSelect(void)
  28          {
  29   1              
  30   1              ClosePanel(0x10, 0xff, 0x40);   // blue screen
  31   1              if((EepPublic.cSource==0)||(uiaSrcMux1[EepPublic.cSource].VideoType==itypeRGB565)||(uiaSrcMux1[EepPubl
             -ic.cSource].VideoType==itypeSVIDEO))
  32   1          {
  33   2                      SetSignalStd();             //set the chroma and the comb filter
  34   2                  SetOPTiming();              //set the scaler,line buffer,output PLL,display window
  35   2          }
  36   1              
  37   1              IC_WritByte(TWIC_P0,0x0f,0x70);   //for position shift,ADC Power Down Control
  38   1              IC_WritByte(TWIC_P0,0x0f,0x00);   //for position shift
  39   1              IC_WritByte(TWIC_P0,0x31,0x00);   //Source Select Reg, Clear All.
  40   1              IC_WritByte(TWIC_P0,0x1a, 0x87);  //ADC Analog AGC Selection,dynamic gain
  41   1      
  42   1      
  43   1              if(uiaSrcMux1[EepPublic.cSource].SourceRoute==isrcVIDEO)
  44   1              {
  45   2                      IC_WritByte(TWIC_P0,0x10, IC_ReadByte(TWIC_P0, 0x10)&~0x10);
  46   2                      IC_WritByte(TWIC_P0,0x18, uiaSrcMux1[EepPublic.cSource].ADCMUX>>8);  // cMux1);
  47   2                      IC_WritByte(TWIC_P0,0x19, uiaSrcMux1[EepPublic.cSource].ADCMUX&0xFF);  // cMux2);
  48   2                  IC_WritByte(TWIC_P0,0x31, 0x04);    //Select VD input
  49   2                      if(uiaSrcMux1[EepPublic.cSource].VideoType==itypeSVIDEO)
  50   2                      {       
  51   3                              
  52   3                              IC_WritByte(TWIC_P0,0x11, 0x0d);
C51 COMPILER V8.08   VIDEOSOURCESWITCH                                                     11/23/2007 00:57:18 PAGE 2   

  53   3                                                      
  54   3                              IC_WritByte(TWIC_P2,0x07, 0x06|0x20);           
  55   3                              IC_WritByte(TWIC_P2,0x00, IC_ReadByte(TWIC_P2,0x00)|0x01);
  56   3                              IC_WritByte(TWIC_P2,0x01, IC_ReadByte(TWIC_P2,0x01)&~ENYPbPr);
  57   3                              IC_WritByte(TWIC_P0,0x16, 0xD3);   //Line Lock PLL Divider Reg
  58   3                              IC_WritByte(TWIC_P2,0x03, IC_ReadByte(TWIC_P2,0x03)|0x03);
  59   3                      
  60   3                              IC_WritByte(TWIC_P0,0x17, 0x4C); // kenny 20060627
  61   3      
  62   3                              twdDelay(500);
  63   3                              //m_cBuff[0]= IC_ReadByte(TWIC_P2, 0x3A);
  64   3                              //if((m_cBuff[0]&0x06)==0x06)
  65   3                              if((IC_ReadByte(TWIC_P2, 0x3A)&0x06)==0x06)
  66   3                              {
  67   4                                      NoSignal=0;
  68   4                                      if(m_bPanelClose==1) //sm061011
  69   4                                              OpenPanel();                            
  70   4      
  71   4                              }                       
  72   3                      }
  73   2                      else if((uiaSrcMux1[EepPublic.cSource].VideoType==itypeCVBS))
  74   2                      {       // CVBS
  75   3                              
  76   3                              if(EepPublic.cSource==1)
  77   3                                      IC_WritByte(TWIC_P0,0x11, 0x08);
  78   3                              else if(EepPublic.cSource==2)
  79   3                                      IC_WritByte(TWIC_P0,0x11, 0x04);
  80   3                              else if(EepPublic.cSource==3)
  81   3                                      IC_WritByte(TWIC_P0,0x11, 0x00);
  82   3                              
  83   3                              IC_WritByte(TWIC_P2,0x07, 0x21);//0x05|0x22);
  84   3                              IC_WritByte(TWIC_P2,0x00, IC_ReadByte(TWIC_P2,0x00)&0xfe);
  85   3                              IC_WritByte(TWIC_P2,0x01, IC_ReadByte(TWIC_P2,0x01)&~ENYPbPr);
  86   3                              IC_WritByte(TWIC_P0,0x16, 0xD3);//Line Lock PLL Divider Reg
  87   3                              IC_WritByte(TWIC_P2,0x07, 0x02|0x20);
  88   3                              if(m_cChroma==S_NTSC_4)  
  89   3                                      IC_WritByte(TWIC_P2,0x03, IC_ReadByte(TWIC_P2,0x03)&0xf8|0x03);
  90   3                              else
  91   3                                      IC_WritByte(TWIC_P2,0x03, IC_ReadByte(TWIC_P2,0x03)&0xfc);
  92   3      
  93   3                              twdDelay(500);
  94   3      
  95   3                              if((IC_ReadByte(TWIC_P2, 0x3A)&0x06)==0x06)
  96   3                              {
  97   4                                      NoSignal=0;
  98   4                                      if(m_bPanelClose==1)  //sm061011
  99   4                                              OpenPanel();
 100   4                      
 101   4                              }       
 102   3                      }
 103   2                      else if (uiaSrcMux1[EepPublic.cSource].VideoType==itypeYPBPR)
 104   2                      {
 105   3                              IC_WritByte(TWIC_P0,0x11, 0x55);
 106   3                              IC_WritByte(TWIC_P2,0x07, 0x20);
 107   3                              IC_WritByte(TWIC_P2,0x01, IC_ReadByte(TWIC_P2,0x01)|ENYPbPr);
 108   3                      }  
 109   2      
 110   2              }
 111   1              else if(uiaSrcMux1[EepPublic.cSource].SourceRoute==isrcANALOG)   //rouce route videodecoder
 112   1              {
 113   2                              IC_WritByte(TWIC_P0,0x18, uiaSrcMux1[EepPublic.cSource].ADCMUX>>8);  // cMux1);
 114   2                              IC_WritByte(TWIC_P0,0x19, uiaSrcMux1[EepPublic.cSource].ADCMUX&0xFF);  // cMux2);
C51 COMPILER V8.08   VIDEOSOURCESWITCH                                                     11/23/2007 00:57:18 PAGE 3   

 115   2                              IC_WritByte(TWIC_P2,0x07, 0x06&~0x20);
 116   2                              
 117   2                              if (uiaSrcMux1[EepPublic.cSource].VideoType==itypeRGB)
 118   2                              {
 119   3                                      IC_WritByte(TWIC_P0,0x16, 0x00);
 120   3                                      IC_WritByte(TWIC_P0,0x31, 0x08);        //Select SDC RGB, SOY input.
 121   3                                      IC_WritByte(TWIC_P0,0x40, 0xC2);
 122   3                                      IC_WritByte(TWIC_P0,0x17, 0xC8);
 123   3                                      IC_WritByte(TWIC_P0,0x1A, IC_ReadByte(TWIC_P0,0x1A)&0xF8);
 124   3                                      //~ Enable Interrupt ~//
 125   3                                      IC_WritByte(TWIC_P0,0x33, 0xB0);
 126   3                                      IC_WritByte(TWIC_P0,0x32, 0xFF);
 127   3                                      IC_WritByte(TWIC_P0,0x37, 0x40);
 128   3                                      IC_WritByte(TWIC_P0,0x39, 0x10);
 129   3                                      twdDelay(50);        // For H/W stable.
 130   3                              }
 131   2                                                      
 132   2              }
 133   1      #ifdef DIGI_AVAILABLE   
                      else if(uiaSrcMux1[EepPublic.cSource].SourceRoute==isrcDIGITAL)
                      {
                              if (uiaSrcMux1[EepPublic.cSource].VideoType==itypeRGB565)
                              {
                                      IC_WritByte(TWIC_P0,0x16, 0xD3);
                                      IC_WritByte(TWIC_P0,0x40, 0xC2);
                                      IC_WritByte(TWIC_P0,0x17, 0xC8);
                                      IC_WritByte(TWIC_P0,0xfe, 0x58);
                                      SRC_565();
                              }else if (uiaSrcMux1[EepPublic.cSource].VideoType==itype656)
                              {
                                      IC_WritByte(TWIC_P0,0xfe, 0xa8);
                                      SRC_656();
                              }
                      }
              #endif
 150   1      
 151   1              if(uiaSrcMux1[EepPublic.cSource].SourceRoute!=isrcVIDEO)        
 152   1                      Detect_Sig(1);                 //tune sound control 20060809
 153   1              twdDelay(500);                                                                  
 154   1              IC_WritByte(TWIC_P0, 0xE2, 0x11);
 155   1              
 156   1      }
 157          
 158          
 159          
 160          
 161          /*   S E T   S I G N A L   S T D   */
 162          /*-------------------------------------------------------------------------
 163              set chroma agc(P20x0c),chroma DTO increment0,1,2,3,(P20x18,19,1a,1b)
 164              and Comb Filter Configuration(P20x82)
 165          -------------------------------------------------------------------------*/
 166          void SetSignalStd(void)
 167          {
 168   1              uCHAR RegIdx,ValIdx;//ruby,ChromaIdx;
 169   1      
 170   1              IC_WritByte(TWIC_P2, 0x3f, 0x01);  // reset comb filter //add by Sherman 06'01'16
 171   1      
 172   1              ValIdx=m_cChroma*SignalStdRegP2Cnt;     // S_NTSC=0x00
 173   1              for (RegIdx=0; RegIdx<SignalStdRegP2Cnt; RegIdx++, ValIdx++){
 174   2                      IC_WritByte(TWIC_P2, ucaSignalStdRegP2[RegIdx], ucaSignalStdValP2[ValIdx]);
 175   2              }
 176   1      
C51 COMPILER V8.08   VIDEOSOURCESWITCH                                                     11/23/2007 00:57:18 PAGE 4   

⌨️ 快捷键说明

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