?? scaler.lst
字號:
C51 COMPILER V6.12 SCALER 03/05/2008 14:35:00 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE SCALER
OBJECT MODULE PLACED IN .\BIN\Scaler.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE .\SRC\Scaler.C OPTIMIZE(9,SIZE) DEFINE(X17,TW2600XW02) DEBUG OBJECTEXTEND P
-RINT(.\LST\Scaler.lst) OBJECT(.\BIN\Scaler.obj)
stmt level source
1 #include "STDIO.H"
2 #include "MATH.H"
3 #include "MYDEF.H"
4 #include "Scaler.H"
5 #include "MCU.H"
6 #include "USERADJ.H"
7 #include "F63XREG.H"
8 #include "F63XDEF.H"
9 #include "IIC.H"
10 #include "PANEL.H"
11 #include "RAM.H"
12 #include "ROM_MAP.H"
13 #include "OSD.H"
14 #include "sRGB.H"
15
16 #if PanelDepth == 6
17 #define DisplayColorDepth 0xff
18 #define DT158 PanelDethMode
19 #else
#define DisplayColorDepth 0x00
#define DT158 PanelDethMode
#endif
23
24 #if PanelTwoPixelPerClk == 1
25 #define DisplayBusWidth 0x00
26 #else
#define DisplayBusWidth 0xff
#endif
29
30 #if PanelSync_DE == 1
#define DisplaySyncMode 0xff
#else
33 #define DisplaySyncMode 0x00
34 #endif
35 #if PANEL == FLC48SXC8V_10 || PANEL == FUJ_FLC43XWC8V|| PANEL == Sharp_FG170M1LA04//nam0329
#define DisplayControl (0xe1 | (DisplayColorDepth & BIT_3) | (DisplayBusWidth & BIT_2) | (DisplaySyncMode
- & BIT_1))
#else
38 #define DisplayControl (0x61 | (DisplayColorDepth & BIT_3) | (DisplayBusWidth & BIT_2) | (DisplaySyncMode
- & BIT_1))
39 #endif
40
41 #define DT155 (unsigned char)PanelPadDrive
42 #define DT156 (unsigned char)(PanelPadDrive >> 8)|((~Panel_Invert_DVS & BIT_4) | (~Panel_Invert_DHS & BIT_
-5) | (~Panel_Invert_DCLK & BIT_6) | (~Panel_Invert_DEN & BIT_7))
43 #define DT61 ((Panel_Invert_DVS & BIT_0) | (Panel_Invert_DHS & BIT_1) | (Panel_Invert_DCLK & BIT_2) | (Pan
-el_Invert_DEN & BIT_3))
44
45 code unsigned short H_ActiveTab[]={
46 640,720,640,720,640,848,800,832,1024,1152,1152,1152,1280,1280,1600,1280,1280,756
47 };
48 code unsigned short V_ActiveTab[]={
49 350,350,400,400,480,480,600,624,768,864,870,900,960,1024,1200,720,768, 574
50 };
C51 COMPILER V6.12 SCALER 03/05/2008 14:35:00 PAGE 2
51
52 code unsigned char TCON_Tab[]={
53 // CPT_M170
54 /*
55 0x00,0x63,0x22,0x00,0x88,0x4a,0x12,0x00,0x10,0x80,0x02,0x00,0x00,0x00,0x00,0x00,
56 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
57 // OE
58 0x01,0x00,0x02,0x04,0xa0,0x04,0x20,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
59 // CKV
60 0x01,0x00,0x02,0x04,0xc0,0x04,0xff,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
61 // STV
62 0x01,0x00,0x02,0x00,0x80,0x02,0x80,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
63 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
64 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
65 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
66 // POL
67 0x01,0x00,0x01,0x00,0x00,0x02,0x00,0x02,0x02,0x10,0x00,0x00,0x00,0x00,0x00,0x00,
68 // TP
69 0x01,0x00,0x02,0x04,0x0c,0x05,0x14,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
70 */
71 // AU_M170ES05
72
73 0x00,0x63,0x22,0x00,0x88,0x8f,0x00,0x07,0x13,0x80,0x02,0x00,0x00,0x00,0x00,0x00,
74 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
75 // OE
76 0x01,0x00,0x01,0x00,0xe0,0x03,0x14,0x05,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
77 // CKV
78 0x01,0x00,0x01,0x00,0x00,0x04,0x14,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
79 // STV
80 0x01,0x00,0x02,0x00,0x80,0x02,0x80,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
81 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
82 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
83 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
84 // POL
85 0x01,0x00,0x01,0x00,0x00,0x02,0x00,0x02,0x02,0x50,0x00,0x00,0x00,0x00,0x00,0x00,
86 // TP
87 0x01,0x00,0x02,0x04,0x0c,0x05,0x14,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
88
89 // CMO_M170ES05
90 /*
91 0x00,0x63,0x22,0x00,0x88,0x83,0x00,0x00,0x10,0x80,0x02,0x00,0x00,0x00,0x00,0x00,
92 // OE
93 0x01,0x00,0x02,0x04,0xbc,0x04,0x44,0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
94 // CKV
95 0x01,0x00,0x01,0x00,0xa0,0x04,0x20,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
96 // STV
97 0x01,0x00,0x02,0x00,0x00,0x02,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
98 // POL
99 0x01,0x00,0x01,0x00,0x80,0x02,0x80,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
100 // TP
101 0x01,0x00,0x02,0x04,0x0c,0x05,0x14,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
102 //GVON
103 0x01,0x00,0x02,0x04,0x30,0x03,0xc0,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
104 //GVOFF
105 0x01,0x00,0x02,0x04,0x30,0x03,0xc0,0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
106 // STV
107 0x01,0x00,0x02,0x00,0x00,0x02,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
108 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,
109 */
110 };
111
112 void UpdatePresetData(void)
C51 COMPILER V6.12 SCALER 03/05/2008 14:35:00 PAGE 3
113 {
114 1 code unsigned short UpdateSquenceTable[]={
115 1 0x002,0x005,0x008,
116 1 0x020,0x023,0x025,0x026,0x027,
117 1 0x02e,0x02f,0x030,0x031,
118 1 0x032,0x033,0x034,0x035,0x036,0x037,
119 1 0x060,0x064,0x065,0x066,
120 1 0x154,0x156,0x157,0x158,0x16a,0x16e,0x186,0x18d,0x1f1
121 1 };
122 1
123 1 code unsigned char D1024x768[]={
124 1 // 0x002, 0x005, 0x008,
125 1 0x01, 0x01, 0x00,
126 1 // 0x020, 0x023, 0x025, 0x026, 0x027,
127 1 0x81, 0x00, 0x00, 0x80, 0x11,
128 1 #if DVImode == DEmode
129 1 // 0x02e, 0x02f, 0x030, 0x031,
130 1 0xe0, 0x01, 0xe0, 0x01,
131 1 #else
// 0x02e, 0x02f, 0x030, 0x031,
0x20, 0x00, 0x00, 0x00,
#endif
135 1 // 0x032, 0x033, 0x034, 0x035, 0x036, 0x037,
136 1 0xe0, 0x01, 0x88, 0x00, 0x80, 0x02,
137 1 // 0x060, 0x064, 0x065, 0x066,
138 1 0x00, 0x00, 0x00, 0x00,
139 1 // 0x154, 0x156, 0x157, 0x158, 0x16a, 0x16e, 0x186, 0x18d, 0x1f1
140 1 0x00, DT156, 0x40, DT158, DT16A, 0x06, 0x00, 0x00, 0x15
141 1 };
142 1
143 1 unsigned char i;
144 1 for(i=0; i<31; i++){
145 2 WriteIIC563(UpdateSquenceTable[i],D1024x768[i]);
146 2 }
147 1 }
148
149 void InitScaler(void)
150 {
151 1 unsigned char i;
152 1
153 1 code unsigned short InitTab[43][2]={
154 1 {0x15B,(unsigned char)PanelTypVTotal},{0x15C,(unsigned char)(PanelTypVTotal>>8)}, // Display Vtotal
155 1 {0x15D,(unsigned char)PanelMinVSyncWidth}, // Display V Pulse Width
156 1 {0x162,(unsigned char)PanelVActiveStart},{0x163,(unsigned char)(PanelVActiveStart>>8)}, // Display Backgr
-ound Window VBegin
157 1 {0x164,(unsigned char)PanelHeight},{0x165,(unsigned char)(PanelHeight>>8)}, // Display Background Window
-VLength
158 1 {0x16f,(unsigned char)PanelVActiveStart},{0x170,(unsigned char)(PanelVActiveStart>>8)}, // Display Active
- VBegin
159 1 {0x171,(unsigned char)PanelHeight},{0x172,(unsigned char)(PanelHeight>>8)}, // Display VActive
160 1
161 1 {0x15E,(unsigned char)PanelMinHTotal},{0x15F,(unsigned char)(PanelMinHTotal>>8)}, // Display Htotal
162 1 {0x160,(unsigned char)PanelMinHSyncWidth}, // Display H Pulse Width
163 1 {0x166,(unsigned char)PanelHActiveStart},{0x167,(unsigned char)(PanelHActiveStart>>8)}, // Display Backgr
-ound Window HBegin
164 1 {0x168,(unsigned char)PanelWidth},{0x169,(unsigned char)(PanelWidth>>8)}, // Display Backgroun Window HW
-idth
165 1 {0x173,(unsigned char)PanelHActiveStart},{0x174,(unsigned char)(PanelHActiveStart>>8)}, // Display Active
- HBegin
166 1 {0x175,(unsigned char)PanelWidth},{0x176,(unsigned char)(PanelWidth>>8)}, // Display HActive
167 1 {0x070,0x08}, // VSO output
168 1 {0x072,0x00}, // Sync Processor Ctrl: Bypass Sync Control
C51 COMPILER V6.12 SCALER 03/05/2008 14:35:00 PAGE 4
169 1 {0x196,0x14}, // Sync Processor Ctrl: Select Raw_hs
170 1 {0x197,0x82}, // Sync Processor Ctrl2
171 1 {0x021,0x0c}, // Clamp Pulse
172 1 {0x022,0x83},
173 1 {0x012,0x00}, // SOG Slicer Ctrl
174 1 {0x18e,0x03}, //Clear FIFO interrupt
175 1 {0x18f,0x00}, //Disable FIFO interrupt
176 1 {0x1a3,0x2d}, //Hsync not present
177 1 {0x1a4,0x2d}, //Hsync present
178 1 {0x1a5,0x2d}, //Vsync not present
179 1 {0x1a6,0x2d}, //Vsync present
180 1 {0x1a7,0x08}, //Hcounter change threshold
181 1 {0x1a8,0x24}, //Vcounter change threshold
182 1 {0x1a9,0x3c}, // H/V interrupt enable1
183 1 {0x1aa,0x00}, // H/V interrupt enable2
184 1 {0x1ab,0x2f}, // H/V interrupt clear1
185 1 {0x1ac,0x1f}, // H/V interrupt clear2
186 1 {0x1d8,0x0a}, // sRGB static dither mode control
187 1 {0x199,0x01}, //Graphic Filed control
188 1 };
189 1
190 1 #if PRINT_MESSAGE
printf("Init NT68563\r\n");
#endif
193 1 TCONInit();
194 1
195 1 for(i=0;i<43;i++){
196 2 WriteIIC563(InitTab[i][0],InitTab[i][1]);
197 2 }
198 1 UpdatePresetData();
199 1 SetInterface();
200 1 WriteIIC563(0x00e,0xff);
201 1 // WriteIIC563(0x0f4,0x80);
202 1 WriteIIC563(0x150,DisplayControl);
203 1 WriteIIC563(0x154,0x02);
204 1 //Noise reduction
205 1 //Noise reduction
206 1 WriteIIC563(0x068,0x7a);
207 1 WriteIIC563(0x069,0x43);
208 1 WriteIIC563(0x06a,0xd2);
209 1 WriteIIC563(0x06b,0x03);
210 1 //OSD blink control
211 1 WriteIIC563(0x0a0,0x12);
212 1 //LVDS bandwidth
213 1 WriteIIC563(0x1f5,0x06);
214 1 WriteIIC563(0x1f6,0x06);
215 1 WriteIIC563(0x1f7,0xc0);
216 1 //LVDS differential voltage
217 1 WriteIIC563(0x1b8,0x10);
218 1 // For ADCclock duty control jacky 20040607
219 1 WriteIIC563(0x0dc,0x50);
220 1 //-----------------------------
221 1 // For Vsync output jacky 20040605
222 1 //WriteIIC563(0x208,0x10);
223 1 //WriteIIC563(0x1b9,0x31);
224 1 //Sleep(20);
225 1 if(PanelInterface != TCON_TO_RSDS && PanelInterface != TCON_TO_TTL)
226 1 WriteIIC563(0x1b9,0x30);
227 1 else
228 1 WriteIIC563(0x1b9,0x31);
229 1 //-----------------------------
230 1 // For DVI bandwidth setting jacky 20040607
C51 COMPILER V6.12 SCALER 03/05/2008 14:35:00 PAGE 5
231 1 WriteIIC563(0x018,0x02); //DVI DPLL FSM mode select
232 1 WriteIIC563(0x019,0x03); //DVI DPLL FSM mode select
233 1 WriteIIC563(0x01d,0x1f); //DVI bandwidth
234 1 WriteIIC563(0x01e,0xb8);
235 1 WriteIIC563(0x146,0xf3);
236 1 //-----------------------------
237 1 // For ADC R/G/B phase delay jacky 20040629
238 1 WriteIIC563(0x0d9,0x00);
239 1 WriteIIC563(0x0da,0x00);
240 1 WriteIIC563(0x0d9,0x40);
241 1 WriteIIC563(0x0da,0x01);
242 1 WriteIIC563(0x0d9,0x80);
243 1 WriteIIC563(0x0da,0x00);
244 1 // For TQFP 64 pin channel swap jacky 20050121
245 1 //WriteIIC563(0x1f4,0x04);
246 1 //-----------------------------
247 1 // For HPLL Line counter set and initial
248 1 WriteIIC563(0x0db,0x0c);
249 1 WriteIIC563(0x0d5,0x01);
250 1 //-----------------------------
251 1 // For Fastmute
252 1 WriteIIC563(0x159,0xa0);
253 1 WriteIIC563(0x1af,0x0a);
254 1 #if PRINT_MESSAGE
printf(PanelName);
#endif
257 1 }
258
259
260 void TCONInit(void)
261 {
262 1 unsigned char i;//,j;
263 1 #if PanelUxga == 1
SetDPLL(165000000);
#elif PanelSxga == 1
267 1 SetDPLL(100000000);
268 1 //WriteIIC563(0x0f1,0x10); //103MHz
269 1 #else
SetDPLL(50000000);
//WriteIIC563(0x0f1,0x11); //51.5MHz
#endif
273 1 //WriteIIC563(0x0f2,0xaa);
274 1 //WriteIIC563(0x0f3,0x2a);
275 1 //WriteIIC563(0x0f4,0x11);
276 1 //WriteIIC563(0x0f0,0x03);
277 1
278 1
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -