📄 measure.lst
字号:
C51 COMPILER V7.50 MEASURE 08/20/2007 10:23:31 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MEASURE
OBJECT MODULE PLACED IN Measure.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Measure.c COMPACT OPTIMIZE(9,SIZE)
line level source
1 #include "Config.h"
2
3 //#define DEBUG_PC1
4
5 #if defined( SUPPORT_PC ) || defined( SUPPORT_DTV )
6
7 #include "typedefs.h"
8
9 #include "main.h"
10 #include "tw88.h"
11 #include "measure.h"
12 #include "adc.h"
13 #include "i2c.h"
14 #include "debug.h"
15 #include "dispinfo.h"
16 #include "pc_eep.h"
17 #include "etc_eep.h"
18 #include "printf.h"
19 #include "osdmenu.h"
20 #include "RegMap.h"
21 #include "panel.h"
22
23 //================== Input Measurement ====================================
24
25 static PDATA WORD LastVPN=0;
26 static PDATA DWORD LastIHF=0;
27
28 PDATA BYTE VPosMax, VPosCurr, HPosMax, HPosCurr;
29
30 PDATA DWORD RGBPeak, PhaseRGB;
31
32 #ifdef WIDE_SCREEN
33 extern PDATA BYTE WideScreenMode;
34 #endif
35
36 CODE BYTE PcModeStr[][15] = {
37 "720x400 70Hz", // 0
38
39 "640x400 80Hz", // 1
40 "640x350 85Hz", // 2
41 "720x400 85Hz", // 3
42
43 "640x480 60Hz", // 4
44 "640x480 66Hz", // 5
45 "640x480 70Hz", // 6
46 "640x480 72Hz", // 7
47 "640x480 75Hz", // 8
48 "640x480 85Hz", // 9
49
50 "800x600 56Hz", // 10
51 "800x600 60Hz", // 11
52 "800x600 70Hz", // 12
53 "800x600 72Hz", // 13
54 "800x600 75Hz", // 14
55 "800x600 85Hz", // 15
C51 COMPILER V7.50 MEASURE 08/20/2007 10:23:31 PAGE 2
56
57 "832x624 75Hz", // 16
58
59 "1024x768 60Hz", // 17
60 "1024x768 70Hz", // 18
61 "1024x768 72Hz", // 19
62 "1024x768 75Hz", // 20
63 "1024x768 85Hz", // 21
64
65 "1152x864 60Hz", // 22
66 "1152x864 70Hz", // 23
67 "1152x864 75Hz", // 24
68
69 "1280x1024 60Hz", // 25
70 "1280x1024 70Hz", // 26
71 "1280x1024 75Hz", // 27
72
73 "RGB 480p 60Hz", // 28
74 "RGB 720p 60Hz", // 29
75 "RGB 720p 50Hz", // 30
76 "RGB 1080i 60Hz", // 31
77 "RGB 1080i 50Hz", // 32
78 "RGB 1080i 50Hz", // 33
79 "RGB 480i 60Hz", // 34
80 "RGB 576i 50Hz", // 35
81 "RGB 576p 50Hz", // 36
82
83 "YPbPr 480p", // 37
84 "YPbPr 720p", // 38
85 "YPbPr 720p50", // 39
86 "YPbPr 1080i", // 40
87 "YPbPr 1080i50", // 41
88 "YPbPr 1080i50", // 42
89 "YPbPr 480i", // 43
90 "YPbPr 576i", // 44
91 "YPbPr 576p", // 45
92
93 ""
94 };
95
96 //-------------------------------------------------------------------------
97 extern CODE struct RegisterInfo UserRange;
98
99 extern IDATA WORD IVF;
100 extern IDATA DWORD IHF;
101 extern PDATA BYTE DebugLevel;
102 extern bit Range4Coarse;
103 extern DATA WORD tm01, tm001;
104 extern DATA BYTE tic01;
105 extern DATA WORD tic_pc;
106
107 IDATA BYTE PcMode;
108
109 #if defined WVGA || defined WSVGA || defined WXGA || defined VGA_PRIMEVIEW
bit Flag4Bypass=0; // 0:non-bypass
#else
112 bit Flag4Bypass=0;//1; // 1:bypass
113 #endif
114
115 //-----------------------------------------------------------------------------
116 extern CODE struct _PCMDATA PCMDATA[];
117
C51 COMPILER V7.50 MEASURE 08/20/2007 10:23:31 PAGE 3
118 extern CODE BYTE *CheckPCCableStr[];
119 extern CODE BYTE *CheckDTVCableStr[];
120 extern CODE BYTE *OutOfRangeStr[] ;
121 //=============================================================================
122 BYTE Measure_VPN_IHF( WORD *p_vpn, DWORD *p_ihf)
123 {
124 1 DWORD ppf;
125 1 WORD hpn;
126 1
127 1
128 1 if( !MeasureAndWait(3) ) {
129 2
130 2 #ifdef DEBUG_PC
Puts("\r\n ** Error at Get_VPN_IHF");
#endif
133 2 return 0;
134 2 }
135 1
136 1 ppf = GetPPF(); //
137 1 *p_vpn = GetVPN(); //
138 1 hpn = GetHPN(); // HPN = H Period Num
139 1
140 1 *p_ihf = (ppf + hpn/2) / hpn; // IHF = PPF / HPN
141 1
142 1 #ifdef DEBUG_PC1
dPrintf("\r\n *** PPF=%ld HPN=%4d", ppf, hpn);
dPrintf(" --> VPN=%4d IHF=%ld ", *p_vpn, *p_ihf);
dPrintf(" IVF=%d", (WORD)((*p_ihf + *p_vpn/2) / *p_vpn) );
dPrintf(" [%d, %ld]", LastVPN, LastIHF);
#endif
150 1
151 1 return 1;
152 1 }
153
154 void ResetPCValue(void)
155 {
156 1 SaveDefaultPCDataEE();
157 1 if( DetectAndSetForVGAInput(3)==FALSE ) // HHY 1.44 change 1 to 3
158 1 CloseOSDMenu();
159 1
160 1 LCDPowerON(0);
161 1 }
162
163 void StartNewDetect(void)
164 {
165 1 ClearEnDet();
166 1 MeasureAndWait(3);
167 1 SetEnDet();
168 1
169 1 WriteTW88(0xd0, 0xff);
170 1 WriteTW88(0xd1, 0xff);
171 1 }
172
173 WORD gap(WORD a, WORD b)
174 {
175 1 if( a>b ) return a-b;
176 1 return b-a;
177 1 }
178
179 WORD GetCoarseValue(void)
C51 COMPILER V7.50 MEASURE 08/20/2007 10:23:31 PAGE 4
180 {
181 1 return GetCoarse();
182 1 }
183
184 WORD SetPCCoarseValue(BYTE val) //1:Up 2:Dn
185 {
186 1 WORD coarse;
187 1
188 1 WriteADC(0xc1, 0x30);
189 1
190 1 coarse = GetCoarse();
191 1 if( val==UP ) coarse++;
192 1 else coarse--;
193 1
194 1 SetCoarse(coarse);
195 1 SaveCoarseEE(PcMode); // HHY 1.33
196 1
197 1 StartNewDetect();
198 1
199 1 WriteADC(0xc1, 0x20);
200 1 return coarse;
201 1 }
202
203 BYTE GetPhaseValue(void)
204 {
205 1 return (GetPhaseCurrent()>>3);
206 1 }
207
208 BYTE SetPhaseValue(BYTE val)
209 {
210 1 BYTE phase;
211 1
212 1 phase = GetPhaseValue();
213 1
214 1 if( val==UP ) {
215 2 if( phase>=31 ) return phase;
216 2 else phase++;
217 2 }
218 1 else {
219 2 if( phase==0 ) return phase;
220 2 else phase--;
221 2 }
222 1
223 1 SetPhase(phase);
224 1 SavePhaseEE(PcMode); // HHY 1.33
225 1
226 1 return phase;
227 1 }
228
229 BYTE IsDTVInput(void)
230 {
231 1 if( GetInputSelection()==DTV || GetInputSelection()==PC ) {
232 2 if( PcMode>=EE_RGB_480P && PcMode<=EE_YPbPr_576P ) return 1;
233 2 }
234 1 return 0;
235 1 }
236
237 IDATA struct RegisterInfo VPositionRange={0,100, 50};
238
239 //=============================================================================
240 // PC Screen Position Move Functions
241 //=============================================================================
C51 COMPILER V7.50 MEASURE 08/20/2007 10:23:31 PAGE 5
242 void MoveActiveVpos(BYTE dir) //=== Up
243 {
244 1 char add;
245 1
246 1 if( dir==UP ) {
247 2 if( VPosCurr>=VPosMax ) return;
248 2 add = 1;
249 2 }
250 1 else {
251 2 if( VPosCurr==0 ) return;
252 2 add = -1;
253 2 }
254 1 VPosCurr += add;
255 1
256 1 if( IsBypassmode() ) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -