📄 src_ctrl.lst
字号:
C51 COMPILER V7.06 SRC_CTRL 11/21/2005 13:47:43 PAGE 1
C51 COMPILER V7.06, 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 CODE SYMBOLS PR
-INT(.\Output\Src_Ctrl.lst) PREPRINT(.\Output\Src_Ctrl.i) 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
10 bit Source_Control(void)
11 {
12 1 if ((stGUD1.INPUT_SOURCE & 0x07) != ucInputSrc)
13 1 {
14 2 stGUD1.INPUT_SOURCE = (stGUD1.INPUT_SOURCE & 0xf8) | (ucInputSrc & 0x07);
15 2 Save_GUD1();
16 2
17 2 ucModeCnt = MODE_DETECT_FREQ; // Reset Input Mode Detector
18 2
19 2 Reset_Mode();
20 2
21 2
22 2 Init_Input_Source();
23 2 Measure_Mode();
24 2
25 2 Set_Task(STATE_SOURCECHANGE); // Notify Task State Machine
26 2
27 2 bNotify_Timer0_Int = 0;
28 2
29 2 //continue; // leave current iteration.
30 2 return _TRUE;
31 2 }
32 1 return _FALSE;
33 1 }
34
35 void Change_Source(unsigned char source)
36 {
37 1 if (SOURCE_MAX < source) return;
38 1
39 1 if (SOURCE_VGA == source)
40 1 {
41 2 ucInputSrc = SOURCE_VGA;
42 2 }
43 1 else if (SOURCE_DVI == source)
44 1 {
45 2 #if (TMDS_ENABLE)
46 2 ucInputSrc = SOURCE_DVI;
47 2 #else
ucInputSrc = SOURCE_VGA;
#endif
50 2 }
51 1 else if (SOURCE_AV == source || SOURCE_SV == source)
52 1 {
53 2 #if (VIDEO_CHIP != VDC_NONE)
ucInputSrc = source; // SOURCE_AV or SOURCE_SV
C51 COMPILER V7.06 SRC_CTRL 11/21/2005 13:47:43 PAGE 2
#else
56 2 ucInputSrc = SOURCE_VGA;
57 2 #endif
58 2 }
59 1 else if (SOURCE_YUV == source)
60 1 {
61 2 #if (VIDEO_CHIP == VDC_SAA7118)
ucInputSrc = source; // SOURCE_YUV
#else
64 2 ucInputSrc = SOURCE_VGA;
65 2 #endif
66 2 }
67 1 else
68 1 {
69 2 #if (TV_CHIP != TV_NONE)
ucInputSrc = source; // SOURCE_TV
#else
72 2 ucInputSrc = SOURCE_VGA;
73 2 #endif
74 2 }
75 1 }
76
77 #if(SOURCE_AUTO_SCAN)
78 void Source_Auto_Scan(void)
79 {
80 1
81 1 Data[0] = stGUD1.INPUT_SOURCE & 0x07;
82 1 if((Data[0] == MASTER_SOURCE) || (Data[0] == SLAVE_SOURCE) || (Data[0] == THIRD_SOURCE))
83 1 bSourceScanEnable = !bSourceScanEnable;
84 1
85 1 if(!bSourceScanEnable)
86 1 Mode_Detector();
87 1
88 1 if(bStable && bSourceScanEnable)
89 1 {
90 2
91 2 Measure_Source(ucNext_Source);
92 2
93 2 if((ucNext_Source == SOURCE_VGA) || (ucNext_Source == SOURCE_DVI))
94 2 {
95 3 RTDRead(SYNC_POR_4C, 0x09, Y_INC);
96 3
97 3 if(Data[0] & 0x02)
98 3 {
99 4 RTDSetByte(SYNC_POR_4C,0x20);
100 4 Data[2] = 0x80;
101 4 Data[4] = 0x80;
102 4 }
103 3
104 3 if(((Data[4] & 0x80) != 0x80) && ((Data[2] & 0x80) != 0x80))
105 3 {
106 4 Data[5] = Data[3];
107 4 Data[4] = Data[4] & 0x87;
108 4 Data[3] = Data[1];
109 4 Data[2] = Data[2] & 0x8f;
110 4
111 4 if( (((unsigned int*)Data)[1] < 1024) && (((unsigned int*)Data)[1] > 260) &&
112 4 (((unsigned int*)Data)[2] < 1260) && (((unsigned int*)Data)[2] > 430))
113 4 {
114 5 if(ucSource_Times < VGA_SEARCH_TIMES)
115 5 ucSource_Times += 1;
116 5 else
C51 COMPILER V7.06 SRC_CTRL 11/21/2005 13:47:43 PAGE 3
117 5 {
118 6 ucInputSrc = ucNext_Source;
119 6 ucNext_Source = MASTER_SOURCE;
120 6 ucSource_Times = 0;
121 6 }
122 5 }
123 4 else
124 4 {
125 5 ucSource_Times = 0;
126 5
127 5 ucNext_Source = (ucNext_Source == MASTER_SOURCE) ? SLAVE_SOURCE :
128 5 (ucNext_Source == SLAVE_SOURCE ) ? THIRD_SOURCE : MASTER_SOURCE;
129 5
130 5 }
131 4
132 4 }
133 3 else
134 3 {
135 4 ucSource_Times = 0;
136 4 ucNext_Source = (ucNext_Source == MASTER_SOURCE) ? SLAVE_SOURCE :
137 4 (ucNext_Source == SLAVE_SOURCE ) ? THIRD_SOURCE : MASTER_SOURCE;
138 4
139 4 }
140 3 }//end of if((ucNext_Source == SOURCE_VGA) || (ucNext_Source == SOURCE_DVI))
141 2 else
142 2 {
143 3 I2CRead(ADDR_VIDEO, 0x1f, 0x01);
144 3
145 3 if (0 == (Data[0] & 0x40))
146 3 {
147 4 if(ucSource_Times < VGA_SEARCH_TIMES)
148 4 ucSource_Times += 1;
149 4 else
150 4 {
151 5 ucInputSrc = ucNext_Source;
152 5 ucNext_Source = MASTER_SOURCE;
153 5 ucSource_Times = 0;
154 5 }
155 4 }
156 3 else
157 3 {
158 4 ucSource_Times = 0;
159 4
160 4 ucNext_Source = (ucNext_Source == MASTER_SOURCE) ? SLAVE_SOURCE :
161 4 (ucNext_Source == SLAVE_SOURCE ) ? THIRD_SOURCE : MASTER_SOURCE;
162 4 }
163 3 }
164 2
165 2 RTDSetByte(SYNC_CTRL_4A,0x00);
166 2 //RTDSetByte(SYNC_POR_4C, (stGUD1.INPUT_SOURCE & 0x07) == SOURCE_VGA ? 0x32 : 0x02);
167 2
168 2 if(((stGUD1.INPUT_SOURCE & 0x07) == SOURCE_VGA) && (SYNC_SS != ucSync_Type))
169 2 RTDSetByte(SYNC_POR_4C,0x32);
170 2 else
171 2 RTDSetByte(SYNC_POR_4C,0x02);
172 2
173 2 }//end of if(bStable)
174 1 }
175 #endif
C51 COMPILER V7.06 SRC_CTRL 11/21/2005 13:47:43 PAGE 4
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION Com0035 (BEGIN)
0000 L?0054:
0000 L?0055:
0000 E4 CLR A
0001 7800 R MOV R0,#LOW ucSource_Times
0003 F6 MOV @R0,A
0004 08 INC R0
0005 E6 MOV A,@R0
0006 FF MOV R7,A
0007 22 RET
; FUNCTION Com0035 (END)
; FUNCTION Source_Control (BEGIN)
; SOURCE LINE # 10
; SOURCE LINE # 11
; SOURCE LINE # 12
0000 E500 E MOV A,stGUD1+01H
0002 5407 ANL A,#07H
0004 FF MOV R7,A
0005 7800 E MOV R0,#LOW ucInputSrc
0007 E6 MOV A,@R0
0008 FE MOV R6,A
0009 6F XRL A,R7
000A 6024 JZ ?C0001
; SOURCE LINE # 13
; SOURCE LINE # 14
000C EE MOV A,R6
000D 5407 ANL A,#07H
000F FF MOV R7,A
0010 E500 E MOV A,stGUD1+01H
0012 54F8 ANL A,#0F8H
0014 4F ORL A,R7
0015 F500 E MOV stGUD1+01H,A
; SOURCE LINE # 15
0017 120000 E LCALL Save_GUD1
; SOURCE LINE # 17
001A 7800 E MOV R0,#LOW ucModeCnt
001C 7602 MOV @R0,#02H
; SOURCE LINE # 19
001E 120000 E LCALL Reset_Mode
; SOURCE LINE # 22
0021 120000 E LCALL Init_Input_Source
; SOURCE LINE # 23
0024 120000 E LCALL Measure_Mode
; SOURCE LINE # 25
0027 7F01 MOV R7,#01H
0029 120000 E LCALL _Set_Task
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -