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

📄 src_ctrl.lst

📁 Realtek 公司的RTD2523A芯片原厂source code,没有被修改过的。
💻 LST
字号:
C51 COMPILER V6.20c  SRC_CTRL                                                              04/15/2004 13:05:14 PAGE 1   


C51 COMPILER V6.20c, COMPILATION OF MODULE SRC_CTRL
OBJECT MODULE PLACED IN .\Output\Src_Ctrl.obj
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE Code\Src_Ctrl.c OPTIMIZE(9,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Output\
                    -Src_Ctrl.lst) OBJECT(.\Output\Src_Ctrl.obj) 

stmt level    source

   1          #define __SOURCECTRL__
   2          
   3          #include "Header\Lcd_main.h"
   4          #include "Header\Lcd_func.h"
   5          #include "Header\Mode_Detect.h"
   6          #include "Header\Initial.h"
   7          #include "Header\Src_Ctrl.h"
   8          #include "Header\Access.h"
   9          #include "Header\Frame_Sync.h"
  10          
  11          bit Source_Control(void)
  12          {
  13   1          if ((stGUD1.INPUT_SOURCE & 0x07) != ucInputSrc)
  14   1          {
  15   2              stGUD1.INPUT_SOURCE = (stGUD1.INPUT_SOURCE & 0xf8) | (ucInputSrc & 0x07);
  16   2              Save_GUD1();
  17   2              
  18   2              ucModeCnt   = MODE_DETECT_FREQ;     // Reset Input Mode Detector
  19   2      
  20   2              Reset_Mode();
  21   2      
  22   2              Init_Input_Source();
  23   2              Measure_Mode();
  24   2      
  25   2              return _TRUE;
  26   2          }
  27   1          
  28   1          return _FALSE;
  29   1      }
  30          
  31          void Change_Source(unsigned char source)
  32          {
  33   1          if (SOURCE_MAX < source)    return;
  34   1          
  35   1          if (SOURCE_VGA == source)
  36   1          {
  37   2              ucInputSrc  = SOURCE_VGA;
  38   2          }
  39   1          else if (SOURCE_DVI == source)
  40   1          {
  41   2      #if (TMDS_ENABLE) 
  42   2              ucInputSrc  = SOURCE_DVI;
  43   2      #else
                      ucInputSrc  = SOURCE_VGA;
              #endif
  46   2          }
  47   1          else if (SOURCE_AV == source || SOURCE_SV == source)
  48   1          {
  49   2      #if (VIDEO_CHIP != VDC_NONE)
                      ucInputSrc  = source;   // SOURCE_AV or SOURCE_SV      
              #else
  52   2              ucInputSrc  = SOURCE_VGA;
  53   2      #endif
  54   2          }
C51 COMPILER V6.20c  SRC_CTRL                                                              04/15/2004 13:05:14 PAGE 2   

  55   1          else if (SOURCE_YUV == source)
  56   1          {
  57   2      #if (VIDEO_CHIP == VDC_SAA7118)
                      ucInputSrc  = source;   // SOURCE_YUV
              #else
  60   2              ucInputSrc  = SOURCE_VGA;
  61   2      #endif
  62   2          }
  63   1          else
  64   1          {
  65   2      #if (TV_CHIP != TV_NONE)
                      ucInputSrc = source;    // SOURCE_TV
              #else
  68   2              ucInputSrc = SOURCE_VGA;
  69   2      #endif
  70   2          }
  71   1      }
  72          
  73          
  74          #if (SOURCE_AUTO_SCAN)
  75          void Source_Auto_Scan(void)
  76          {
  77   1          Data[0] = stGUD1.INPUT_SOURCE & 0x07; 
  78   1          
  79   1          if ((Data[0] == MASTER_SOURCE) || (Data[0] == SLAVE_SOURCE) || (Data[0] == THIRD_SOURCE)) 
  80   1          {
  81   2              bSourceScanEnable = !bSourceScanEnable;
  82   2          }
  83   1      	
  84   1          if (!bSourceScanEnable)
  85   1          {
  86   2              Mode_Detector();
  87   2          }
  88   1          else if (bStable)
  89   1          {
  90   2      #if (!SOURCE_PRIORITY)
  91   2              // Issac :
  92   2              // Original source-scan function is designed by Forster.
  93   2              // By setting SOURCE_PRIORITY to 0, you can just search other source ONLY when current source has 
             -no singal.
  94   2              if (MODE_NOSIGNAL != ucMode_Curr)
  95   2              {
  96   3                  ucSource_Times  = 0;
  97   3      
  98   3                  RTDSetByte(SYNC_CTRL_4A, 0x00);
  99   3      
 100   3                  if ((SOURCE_VGA == (stGUD1.INPUT_SOURCE & 0x07)) && (SYNC_SS != ucSync_Type))
 101   3                      RTDSetByte(SYNC_POR_4C, 0x22);
 102   3                  else
 103   3                      RTDSetByte(SYNC_POR_4C, 0x02);
 104   3               
 105   3                  return;
 106   3              }
 107   2      #endif
 108   2      
 109   2              if (SOURCE_VGA == ucNext_Source)
 110   2              {
 111   3                  RTDSetByte(SYNC_CTRL_4A, 0x00);
 112   3                  Delay_Xms(1);
 113   3      
 114   3                  RTDRead(SYNC_CTRL_4A, 1, N_INC);
 115   3      
C51 COMPILER V6.20c  SRC_CTRL                                                              04/15/2004 13:05:14 PAGE 3   

 116   3                  Data[1] = Data[0] & 0x20;
 117   3              }
 118   2              else if (SOURCE_DVI == ucNext_Source)
 119   2              {
 120   3                  RTDSetByte(SYNC_CTRL_4A, 0x03);
 121   3                  RTDSetByte(SYNC_POR_4C, 0x02);
 122   3      
 123   3                  RTDSetByte(STATUS0_01, 0x00);
 124   3                  
 125   3                  Data[1] = 40;
 126   3                  do
 127   3                  {
 128   4                      Delay_Xms(1);
 129   4      
 130   4                      RTDRead(STATUS0_01, 1, N_INC);
 131   4      
 132   4                      if (bFrameSync && (Data[0] & 0x63))
 133   4                      {
 134   5                          Data[1] = 0;
 135   5                          break;
 136   5                      }
 137   4      
 138   4                      RTDRead(SYNC_POR_4C, 1, N_INC);
 139   4                  }
 140   3                  while ((Data[0] & 0x02) && --Data[1]);
 141   3      
 142   3                  if (Data[1])
 143   3                  {
 144   4                      RTDRead(SYNC_POR_4C, 5, Y_INC);
 145   4      
 146   4                      Data[1] = ((Data[2] | Data[4]) & 0x80) ? 0 : 1;
 147   4                  }
 148   3              }
 149   2              else
 150   2              {
 151   3      #if (VIDEO_CHIP != VDC_NONE)
                          // Not tested yet
                          I2CWrite(V_ENABLE);
                          I2CWrite(SOURCE_AV == ucNext_Source ? AV_DETECT : SV_DETECT);
                          I2CRead(ADDR_VIDEO, 0x1f, 0x01);  
                          Data[1] = Data[0] & 0x40;
              #else
 158   3                  Data[1] = 0;
 159   3      #endif
 160   3              }
 161   2      
 162   2              if (Data[1])
 163   2              {
 164   3      #if (SOURCE_PRIORITY)
                          if (ucSource_Times < (1 * VGA_SEARCH_TIMES))
              #else
 167   3                  if (ucSource_Times < (6 * VGA_SEARCH_TIMES))
 168   3      #endif
 169   3                      ucSource_Times += 1;
 170   3                  else
 171   3                  {
 172   4                      ucInputSrc      = ucNext_Source;
 173   4                      ucNext_Source   = MASTER_SOURCE; 
 174   4                      ucSource_Times  = 0;
 175   4                  }
 176   3              }
 177   2              else
C51 COMPILER V6.20c  SRC_CTRL                                                              04/15/2004 13:05:14 PAGE 4   

 178   2              {
 179   3                  ucSource_Times  = 0;
 180   3                  
 181   3                  ucNext_Source   = (ucNext_Source == MASTER_SOURCE) ? SLAVE_SOURCE 
 182   3                      : (ucNext_Source == SLAVE_SOURCE ) ? THIRD_SOURCE : MASTER_SOURCE;
 183   3              }
 184   2              
 185   2              RTDSetByte(SYNC_CTRL_4A, 0x00);
 186   2      
 187   2              if ((SOURCE_VGA == (stGUD1.INPUT_SOURCE & 0x07)) && (SYNC_SS != ucSync_Type))
 188   2                  RTDSetByte(SYNC_POR_4C, 0x22);
 189   2              else
 190   2                  RTDSetByte(SYNC_POR_4C, 0x02);
 191   2          }
 192   1      }
 193          #endif


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    377    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =      2    ----
   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 + -