📄 modehandle.lst
字号:
C51 COMPILER V7.06 MODEHANDLE 12/11/2007 11:28:43 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MODEHANDLE
OBJECT MODULE PLACED IN .\BIN\ModeHandle.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE SRC\ModeHandle.C LARGE OPTIMIZE(9,SPEED) DEBUG OBJECTEXTEND PRINT(.\LST\Mod
-eHandle.lst) OBJECT(.\BIN\ModeHandle.obj)
stmt level source
1 /*==========================================
2 ==========================================*/
3 #include "include.h"
4 /*==========================================
5 ==========================================*/
6 void GetCounter(void)
7 {
8 1 unsigned char temp;
9 1 Union TempFreq;
10 1 NoSyncFlag = 0;
11 1 if(ReadIIC563(0x19a) & BIT_5) //H+V high piority
12 1 if(SyncMode == 0)
13 1 {
14 2 V_SYNC = 0;
15 2 H_SYNC = 0;
16 2 NoSyncFlag = 1;
17 2 return;
18 2 }
19 1 temp = ReadIIC563(0x19a);
20 1 HV_Pol = (temp & 0x03) << 4;
21 1 BypassSOG = 0;
22 1 if(!(temp & BIT_6)) //Sep/Comp Hsync present
23 1 {
24 2 TempFreq.w = ReadWordIIC563(0x19b);
25 2 H_SYNC = (HSYNC_CLK)/TempFreq.w;
26 2 BypassSOG = 1;
27 2 if(H_SYNC <100)
28 2 {
29 3 H_SYNC = 0;
30 3 NoSyncFlag = 1;
31 3 }
32 2 }
33 1 else{
34 2 if(SyncMode == 3)// Jacky 20040623 When DVI DE mode, GI_HCNT_OV alway "1"
35 2 {
36 3 #if DVImode == DEmode
37 3 if(ReadIIC563(0x1ab) & BIT_0)
38 3 {
39 4 TempFreq.w = ReadWordIIC563(0x19b);
40 4 H_SYNC = (HSYNC_CLK)/TempFreq.w;
41 4 BypassSOG = 1;
42 4 if(H_SYNC <100)
43 4 {
44 5 H_SYNC = 0;
45 5 NoSyncFlag = 1;
46 5 }
47 4 }
48 3 else
49 3 {
50 4 H_SYNC = 0;
51 4 NoSyncFlag = 1;
52 4 }
53 3 #else
H_SYNC = 0;
C51 COMPILER V7.06 MODEHANDLE 12/11/2007 11:28:43 PAGE 2
NoSyncFlag = 1;
#endif
57 3 }
58 2 else
59 2 {
60 3 H_SYNC = 0;
61 3 NoSyncFlag = 1;
62 3 }
63 2 }
64 1 if(!(temp & BIT_7))//Sep/Comp Vsync present
65 1 {
66 2 TempFreq.w = ReadWordIIC563(0x19d);
67 2 V_SYNC = (VSYNC_CLK)/TempFreq.w;
68 2 BypassSOG = 1;
69 2 if(V_SYNC <100)
70 2 {
71 3 V_SYNC = 0;
72 3 NoSyncFlag = 1;
73 3 }
74 2 }
75 1 else
76 1 {
77 2 V_SYNC = 0; //over flow
78 2 NoSyncFlag = 1;
79 2 }
80 1 if(SyncMode == 2 && !NoSyncFlag)
81 1 if(!VsyncValide()) //for SOG Vsync pulse detect
82 1 {
83 2 V_SYNC = 0;
84 2 H_SYNC = 0;
85 2 NoSyncFlag = 1;
86 2 }
87 1 }
88 /*==========================================
89 ==========================================*/
90 void OutputDisplayData(void)
91 {
92 1 WriteIIC563(0x1f7,0xc0); //Power up LVDS buffer
93 1 WriteIIC563(0x1f5,0x06); //disable Pull low LVDS pad
94 1 }
95 void PanelPowerUpSequence(void)
96 {
97 1 SetCaptureEnable();
98 1 //if(I_OPanelPowerStatus){ //only do whlie last time happened power offf
99 1 //Sleep(250); //for turn on picture garbage
100 1 // BackLightOn();
101 1 //}else{
102 1 if(!I_OLCDSTBStatus)
103 1 // PanelPowerOn();
104 1 //Sleep(PowerUpPanelTiming);
105 1 OutputDisplayData();
106 1 //Sleep(PowerUpInvTiming);
107 1 //BackLightOn();
108 1 //}
109 1 }
110 void DVIBandWidthDetection(void)
111 {
112 1 Byte DVI_Clock_Temp,temp143;
113 1
114 1 WriteIIC563(0x01d,0x01);//Jacky 20050118
115 1
116 1
C51 COMPILER V7.06 MODEHANDLE 12/11/2007 11:28:43 PAGE 3
117 1 WriteIIC563(0x145,0x00);//Jacky 20041221
118 1 WriteIIC563(0x144,0x00);
119 1 // Reset DVI PLL
120 1 temp143 = ReadIIC563(0x143);
121 1 WriteIIC563(0x143,temp143 |0x80);
122 1 WriteIIC563(0x143,temp143 & 0x7f);
123 1
124 1
125 1
126 1 Sleep(20);
127 1 LocalTimer = 5;
128 1 DVI_Clock = 0;
129 1 do{
130 2 DVI_Clock_Temp = ReadIIC563(0x016);
131 2 if(abs(DVI_Clock - DVI_Clock_Temp) > 2)
132 2 {
133 3 DVI_Clock = DVI_Clock_Temp;
134 3 LocalTimer = 5;
135 3 }
136 2 }while(LocalTimer != 0); //Jacky 20050107
137 1 if(DVI_Clock < 20)
138 1 return;
139 1 if(DVI_Clock <= 50)
140 1 {
141 2 WriteIIC563(0x144,0x04);//Jacky 20041221
142 2 WriteIIC563(0x145,0x03);//Jacky 20041221
143 2 }
144 1 //printf("R144 = %2bx\n\r",ReadIIC563(0x144));
145 1 //printf("R145 = %2bx\n\r",ReadIIC563(0x145));
146 1 // Reset DVI PLL
147 1 temp143 = ReadIIC563(0x143);
148 1 WriteIIC563(0x143,temp143 |0x80); // DVI pll power off
149 1 WriteIIC563(0x143,temp143 & 0x7f); // DVI pll power on
150 1
151 1 //UU=DVI_Clock;
152 1 if(DVI_Clock <= 140 && DVI_Clock >= 100){
153 2 WriteIIC563(0x145,0x00);//Jacky 20041221
154 2 WriteIIC563(0x144,0x00);
155 2 WriteIIC563(0x01b,0x0d); //DVI DPLL FSM mode select evan date 050823
156 2 // WriteIIC563(0x01b,0x05); //DVI DPLL FSM mode select //joe remove2005/4/29
157 2 }
158 1 else
159 1 WriteIIC563(0x01b,0x00); //DVI DPLL FSM mode select
160 1
161 1 //if(!ColordotTimer)
162 1 // ColordotTimer=9;
163 1
164 1 //WriteIIC563(0x143,0x00);//Jacky 20041221
165 1 // LED_RedOff(); //power saving only red light joe 2005/4/23
166 1 }
167 /*==========================================
168 ==========================================*/
169 void SetInterface()
170 {
171 1
172 1 #define NT68665 1
173 1 Word code InterfaceTab[]={0x000,0x008,0x102,0x023,0x196,0x012,0x072};
174 1 Byte code InterfaceDat[][7]={
175 1 #if NT68665 == 1
176 1 {0x12,0x04,0x29,0x00,0x64,0x00,0x01}, //channel 1 sep +-
177 1 {0x12,0x04,0x29,0x40,0x65,0x00,0x00}, //channel 1 comp +-
178 1 {0x1a,0x04,0x29,0x40,0x65,0x7c,0x00}, //channel 1 SOG -
C51 COMPILER V7.06 MODEHANDLE 12/11/2007 11:28:43 PAGE 4
179 1 #else
{0x12,0x00,0x29,0x00,0x64,0x00,0x01}, //channel 1 sep +-
{0x12,0x00,0x29,0x40,0x65,0x00,0x00}, //channel 1 comp +-
{0x1a,0x00,0x29,0x40,0x65,0x7c,0x00}, //channel 1 SOG -
#endif
184 1
185 1 #if DVImode == DEmode
186 1 {0x10,0x00,0x03,0x00,0x24,0x00,0x01}, //DVI +-
187 1 #else
{0x10,0x00,0x03,0x08,0x94,0x00,0x01}, //DVI +-
#endif
190 1
191 1 #if NT68665 == 1
192 1 {0x12,0x00,0x29,0x00,0x64,0x00,0x01}, //channel 2 sep +-
193 1 {0x12,0x00,0x29,0x40,0x65,0x00,0x00}, //channel 2 comp +-
194 1 {0x1a,0x00,0x29,0xc0,0x65,0xe4,0x00}, //channel 2 SOG -
195 1 #else
{0x12,0x04,0x29,0x00,0x64,0x00,0x01}, //channel 2 sep +-
{0x12,0x04,0x29,0x40,0x65,0x00,0x00}, //channel 2 comp +-
{0x1a,0x04,0x29,0xc0,0x65,0xe4,0x00}, //channel 2 SOG -
#endif
200 1
201 1
202 1 };
203 1 //Byte SourSel,temp,i;
204 1 Byte i;
205 1 if(!PowerDown)
206 1 {
207 2 #if PanelInterface == TCON_TO_RSDS
WriteIIC563(0x101,0x90);
#endif
210 2 #if PanelInterface == LVDS_TO_TCON
WriteIIC563(0x101,0x40);
#endif
213 2 #if PanelInterface == TTL_TO_TCON
214 2 WriteIIC563(0x101,0x00);
215 2 WriteIIC563(0x1f7,0x00); //Power off LVDS buffer
216 2 #endif
217 2 #if PanelInterface == TCON_TO_TTL
WriteIIC563(0x101,0x00);
#endif
220 2 // Jacky 20040906 for LVDS power up
221 2 WriteIIC563(0x1f5,0x06); //disable Pull low LVDS pad
222 2 #if PanelInterface == LVDS_TO_TCON
//WriteIIC563(0x1f7,0xc0); //Power up LVDS buffer
#endif
225 2 }
226 1 Interlance = 0;
227 1
228 1 if(SyncMode == 3){
229 2 WriteIIC563(0x020,0x83);// 0x83 enable interlace signal
230 2 WriteIIC563(0x143,0x20); //Power up DVI Pll
231 2 WriteIIC563(0x146,0xf3); //Power up DVI SCDT detect
232 2 }
233 1 else{
234 2 WriteIIC563(0x020,0x81);
235 2 WriteIIC563(0x143,0xa0); //Power down DVI Pll
236 2 }
237 1 for(i=0;i<7;i++)
238 1 {
239 2 if(InterfaceTab[i] == 0x102 && PowerDown)
240 2 WriteIIC563(InterfaceTab[i],InterfaceDat[SyncMode][i]&0x02);
C51 COMPILER V7.06 MODEHANDLE 12/11/2007 11:28:43 PAGE 5
241 2 //else if(InterfaceTab[i] == 0x021 && (HV_Pol & BIT_4)){
242 2 // WriteIIC563(InterfaceTab[i],InterfaceDat[SyncMode][i]|BIT_7);
243 2 // }
244 2 else
245 2 WriteIIC563(InterfaceTab[i],InterfaceDat[SyncMode][i]);
246 2 Sleep(1);
247 2 }
248 1
249 1 if(HV_Pol & BIT_4){
250 2 WriteIIC563(0x021,0x81);
251 2 /*if((SCID & 0x0f) == 7) //NT68663A
252 2 WriteIIC563(0x021,0xc1);
253 2 else
254 2 WriteIIC563(0x021,0x81);
255 2 */
256 2 }
257 1 else{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -