📄 modehandle.lst
字号:
C51 COMPILER V7.50 MODEHANDLE 03/18/2008 22:04:55 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MODEHANDLE
OBJECT MODULE PLACED IN .\BIN\ModeHandle.obj
COMPILER INVOKED BY: D:\设计软件\Keil\C51\BIN\C51.EXE SRC\ModeHandle.C BROWSE DEBUG OBJECTEXTEND PRINT(.\LST\ModeHandle.
-lst) OBJECT(.\BIN\ModeHandle.obj)
line level source
1 #include "F63REG.H"
2 #include "stdio.h"
3 #include "RAM.H"
4 #include "ModeHandle.H"
5 #include "MyDef.H"
6 #include "UserAdj.H"
7 #include "IIC.H"
8 #include "Scaler.H"
9 #include "MCU.H"
10 #include "PANEL.H"
11 #include "AutoAdj.H"
12 #include "OSD.H"
13 #include "ROM_MAP.H"
14 #include "IRCode.H"
15
16 #define MoveAltOSD
17
18 void GetCounter(void)
19 {
20 1 unsigned char value,temp;
21 1 unsigned long Freq;
22 1 // VGA/DVI Connector
23 1 // Connected
24 1 value = INTHV_FLG & 0x47; //V sync
25 1 if(value != 0){
26 2 INTHV_FLG = 0xc7;
27 2 flag1 |= BIT_0;
28 2 //bit4==>H_pol, bit5==>V_pol
29 2 HV_Pol = 0;
30 2 value = HVI_REG & 0x03;
31 2 if((value & BIT_0) != 0)
32 2 HV_Pol |= BIT_5;
33 2 if((value & BIT_1) != 0)
34 2 HV_Pol |= BIT_4;
35 2 //H_SYNC=xx.xKHz
36 2 temp = HCNT_LB;
37 2 value = HCNT_HB;
38 2 if((value & BIT_7) != 0){
39 3 H_SYNC = 0;
40 3 flag1 &= ~BIT_0;
41 3 }
42 2 else{
43 3 H_SYNC = value & 0x0f;
44 3 H_SYNC <<= 8;
45 3 H_SYNC = H_SYNC | temp;
46 3 if((H_SYNC == 0x0fff)||(H_SYNC == 0)){
47 4 H_SYNC = 0;
48 4 flag1 &= ~BIT_0;
49 4 }
50 3 else{
51 4 Freq = (unsigned long)H_SYNC * 100000;
52 4 H_SYNC = (unsigned int)(((Freq / 32768) + 5) / 10);
53 4 }
54 3 }
C51 COMPILER V7.50 MODEHANDLE 03/18/2008 22:04:55 PAGE 2
55 2 //V_SYNC=xx.xHz
56 2 temp = VCNT_LB;
57 2 value = VCNT_HB;
58 2 if((value & BIT_7) != 0){
59 3 V_SYNC = 0;
60 3 flag1 &= ~BIT_0;
61 3 }
62 2 else{
63 3 V_SYNC = value & 0x3f;
64 3 V_SYNC <<= 8;
65 3 V_SYNC = V_SYNC | temp;
66 3 if((V_SYNC == 0x3fff)||(V_SYNC == 0)){
67 4 V_SYNC = 0;
68 4 flag1 &= ~BIT_0;
69 4 }
70 3 else{
71 4 Freq = (unsigned long)12500000 / V_SYNC + 5;
72 4 V_SYNC = Freq / 10;
73 4 }
74 3 }
75 2 }
76 1 else{
77 2 if((MUTE_CTRL & 0x30) != 0x30){
78 3 flag1 &= ~BIT_0;
79 3 }
80 2 }
81 1 }
82
83 void CheckFreq(void)
84 {
85 1 // Timer4 = 0;
86 1 CLRWDT = 0x55;
87 1 Timer3 = 100;
88 1 do{
89 2 GetCounter();
90 2 if(((flag1 & BIT_0)==0)||(Timer3 == 0)){
91 3 NoSync();
92 3 return;
93 3 }
94 2 else{
95 3 if((flag1 & BIT_3) != 0){
96 4 if((SyncMode == 2) && ((flag2 & BIT_4) == 0)){
97 5 flag1 &= ~BIT_0;
98 5 flag2 |= BIT_4;
99 5 return;
100 5 }
101 4 ScalerPowerUp();
102 4 }
103 3 }
104 2 if(HV_Pol_Temp != HV_Pol){
105 3 BackLightOff();
106 3 ForceToBackground(0); //Set fource to background
107 3 HV_Pol_Temp = HV_Pol;
108 3 Timer4 = SyncStabTime;
109 3 OSD_OFF();
110 3 flag1 |= BIT_4;
111 3 if((flag3 & BIT_2) != 0x00)
112 3 printf("HV_Pol Change\r\n");
113 3 }
114 2 if(H_SYNC_Temp > H_SYNC){
115 3 if((H_SYNC_Temp - H_SYNC) > 10){
116 4 BackLightOff();
C51 COMPILER V7.50 MODEHANDLE 03/18/2008 22:04:55 PAGE 3
117 4 ForceToBackground(0); //Set fource to background
118 4 H_SYNC_Temp = H_SYNC;
119 4 Timer4 = SyncStabTime;
120 4 OSD_OFF();
121 4 flag1 |= BIT_4;
122 4 if((flag3 & BIT_2) != 0x00)
123 4 printf("H_SYNC Change %d\r\n",(unsigned short)H_SYNC);
124 4 }
125 3 }
126 2 else{
127 3 if((H_SYNC - H_SYNC_Temp) > 10){
128 4 BackLightOff();
129 4 ForceToBackground(0); //Set fource to background
130 4 H_SYNC_Temp = H_SYNC;
131 4 Timer4 = SyncStabTime;
132 4 OSD_OFF();
133 4 flag1 |= BIT_4;
134 4 if((flag3 & BIT_2) != 0x00)
135 4 printf("H_SYNC Change %d\r\n",(unsigned short)H_SYNC);
136 4 }
137 3 }
138 2 if(V_SYNC_Temp > V_SYNC){
139 3 if((V_SYNC_Temp - V_SYNC) > 10){
140 4 BackLightOff();
141 4 ForceToBackground(0); //Set fource to background
142 4 V_SYNC_Temp = V_SYNC;
143 4 Timer4 = SyncStabTime;
144 4 OSD_OFF();
145 4 flag1 |= BIT_4;
146 4 if((flag3 & BIT_2) != 0x00)
147 4 printf("V_SYNC Change %d\r\n",(unsigned short)V_SYNC);
148 4 }
149 3 }
150 2 else{
151 3 if((V_SYNC - V_SYNC_Temp) > 10){
152 4 BackLightOff();
153 4 ForceToBackground(0); //Set fource to background
154 4 V_SYNC_Temp = V_SYNC;
155 4 Timer4 = SyncStabTime;
156 4 OSD_OFF();
157 4 flag1 |= BIT_4;
158 4 if((flag3 & BIT_2) != 0x00)
159 4 printf("V_SYNC Change %d\r\n",(unsigned short)V_SYNC);
160 4 }
161 3 }
162 2 }while(Timer4 != 0);
163 1 if((flag1 & BIT_4) != 0){
164 2 flag1 &= ~BIT_4;
165 2 GetMode();
166 2 SetMinMax();
167 2 CheckModeChange();
168 2 if(H_SYNC_Temp == 0xffff){
169 3 return;
170 3 }
171 2 if((flag3 & BIT_1) == 0){
172 3 SetDisplayNormal();
173 3 if(Read24C16(0xdb) != 0){
174 4 // if((PortC & BIT_0) == 0){
175 4 // Sleep(PowerUpInvTiming);
176 4 BackLightOn();
177 4 // }
178 4 AutoTune();
C51 COMPILER V7.50 MODEHANDLE 03/18/2008 22:04:55 PAGE 4
179 4 }
180 3 ShowInputSource();
181 3 // if(PowerStatus != 0x80)
182 3 SetVolume();
183 3 }
184 2 else{
185 3 ShowOutOfRange();
186 3 BackLightOn();
187 3 }
188 2 // if((PortC & BIT_0) == 0){
189 2 // Sleep(PowerUpInvTiming);
190 2 // BackLightOn();
191 2 // }
192 2 }
193 1 #ifdef MoveAltOSD
194 1 else{
195 2 if(((flag3 & BIT_1) != 0)&&(OutOfRangeTimer < 400)&&(OutOfRangeTimer > 0)){
196 3 ShowOutOfRange();
197 3 }
198 2 }
199 1 #endif
200 1 }
201
202 void GetMode(void)
203 {
204 1 unsigned char ch;
205 1 unsigned short i,j,value;
206 1 #if 0
ch = ReadIIC_HW(Scaler_Addr,0x87);
if((ch & BIT_4) == 0){
flag3 &= ~BIT_6;
WriteIIC_HW(Scaler_Addr,0x13,0x00);
if((flag3 & BIT_2) != 0x00){
printf("Non-Interlace mode\r\n");
}
}
else{
flag3 |= BIT_6;
WriteIIC_HW(Scaler_Addr,0x13,0x31);
if((flag3 & BIT_2) != 0x00){
printf("Interlace mode\r\n");
}
}
#endif
223 1 ModePoint = 0;
224 1 VTotal = (unsigned short)(((unsigned long)H_SYNC * 1000)/ V_SYNC);
225 1 for(j=0; j< ModeButtom; j=j+4){
226 2 i = j;
227 2 ch = Read24C16(i); //check h_sync
228 2 value = ch;
229 2 value = value << 8;
230 2 i++;
231 2 ch = Read24C16(i);
232 2 value = value + ch;
233 2 i++;
234 2 if((value < H_SYNC + 10)&&(value > H_SYNC - 10)){
235 3 ch = Read24C16(i); // check hv_pol
236 3 value = ch & 0x0f;
237 3 value = value << 8;
238 3 ch = ch & 0x30;
239 3 i++;
240 3 if(ch == HV_Pol){
C51 COMPILER V7.50 MODEHANDLE 03/18/2008 22:04:55 PAGE 5
241 4 ch = Read24C16(i); // check v_sync
242 4 value = value + ch;
243 4 i++;
244 4 if((value < V_SYNC + 10)&&(value > V_SYNC - 10)){
245 5 if((flag3 & BIT_2) != 0x00){
246 6 printf("Mode %d\r\n",(unsigned short)ModePoint);
247 6 }
248 5 break;
249 5 }
250 4 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -