📄 src_ctrl.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 + -