📄 scaler.lst
字号:
C51 COMPILER V7.50 SCALER 03/18/2008 22:04:56 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE SCALER
OBJECT MODULE PLACED IN .\BIN\Scaler.obj
COMPILER INVOKED BY: D:\设计软件\Keil\C51\BIN\C51.EXE SRC\Scaler.C BROWSE DEBUG OBJECTEXTEND PRINT(.\LST\Scaler.lst) OBJ
-ECT(.\BIN\Scaler.obj)
line level source
1 #include "Scaler.H"
2 #include "MCU.H"
3 #include "UserAdj.H"
4 #include "MyDef.H"
5 #include "F63REG.H"
6 #include "IIC.H"
7 #include "stdio.h"
8 #include "PANEL.H"
9 #include "RAM.H"
10 #include "sRGB.H"
11 #include "OSD.H"
12
13 #if 0
#define DT63 0x80
#else
16 #define DT63 0x00
17 #endif
18
19 #if PanelDepth == 6
20 #define DisplayColorDepth 0xff
21 #else
#define DisplayColorDepth 0x00
#endif
24
25 #if PanelTwoPixelPerClk == 1
#define DisplayBusWidth 0x00
#else
28 #define DisplayBusWidth 0xff
29 #endif
30
31 #if PanelSync_DE == 1
#define DisplaySyncMode 0xff
#else
34 #define DisplaySyncMode 0x00
35 #endif
36 #define DisplayControl (0x68 | (DisplayColorDepth & BIT_2) | (DisplayBusWidth & BIT_1) | (DisplaySyncMode
-& BIT_0))
37
38 #define DT5E (unsigned char)PanelPadDrive
39 #define DT5F (unsigned char)(PanelPadDrive >> 8)
40 #define DT61 ((Panel_Invert_DVS & BIT_0) | (Panel_Invert_DHS & BIT_1) | (Panel_Invert_DCLK & BIT_2) | (Pan
-el_Invert_DEN & BIT_3))
41
42 code unsigned short H_ActiveTab[]={
43 // 640,720,640,800,832,1024,1152,1280,1280,1600,1280,1280,1280,848,1152,720
44 1280,720,1280,800,832,1024,1152,1280,1280,1600,1280,1280,1280,848,1152,720
45 };
46 code unsigned short V_ActiveTab[]={
47 350,400,480,600,624,768,864,960,1024,1200,0,0,720,480,870,576
48 };
49 /*
50 #if PANEL == CPT_CLAA150XG08
51 code unsigned char TCON_Tab[]={
52 // 0 1 2 3 4 5 6 7 8 9 a
C51 COMPILER V7.50 SCALER 03/18/2008 22:04:56 PAGE 2
53 #if 1
54 0x00,0x62,0x22,0x0f,0x08,0x62,0x01,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
55 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
56 0x01,0x00,0x01,0x00,0x07,0x04,0x0f,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
57 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
58 0x01,0x00,0x01,0x00,0x81,0x02,0x81,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
59 0x01,0x00,0x02,0x00,0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
60 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
61 0x01,0x00,0x01,0x00,0xe0,0x03,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,
62 0x01,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,
63 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,
64 #else
65 0x00,0x62,0x22,0x0f,0x08,0x62,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
66 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
67 0x01,0x00,0x01,0x00,0x04,0x04,0x48,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
68 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
69 0x01,0x00,0x02,0x03,0xa0,0x03,0xa0,0x03,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
70 0x01,0x00,0x02,0x00,0x8c,0x01,0x8a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
71 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
72 0x01,0x00,0x01,0x00,0xc0,0x03,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,
73 0x01,0x00,0x01,0x00,0xe0,0x03,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,
74 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,
75 #endif
76 };
77 #endif
78 */
79 #if PANEL == QD170ER01
code unsigned char TCON_Tab[]={
// 0 1 2 3 4 5 6 7 8 9 a
0x00,0x60,0x22,0x03,0x08,0x66,0x00,0x88,0x10,0x80,0x02,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x00,0x02,0x00,0x04,0x05,0x70,0x05,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x00,0x02,0x04,0xf6,0x04,0xf6,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x00,0x02,0x00,0x8c,0x02,0x8a,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x00,0x01,0x00,0x04,0x05,0x56,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
0x01,0x00,0x02,0x04,0x3a,0x05,0xc0,0x03,0x01,0x00,0x02,0x00,0x00,0x00,0x00,0x00,
0x01,0x00,0x01,0x00,0x04,0x04,0x56,0x02,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,
};
#endif
94 /*
95 #if PANEL == INNONLUX_RSDS
96 code unsigned char TCON_Tab[]={
97 // 0 1 2 3 4 5 6 7 8 9 a
98 0x00,0x62,0x22,0x0f,0x08,0xa3,0x01,0x86,0x10,0x80,0x02,0x00,0x00,0x00,0x00,0x00,
99 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
100 0x01,0x00,0x01,0x00,0x04,0x05,0x48,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
101 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
102 0x01,0x00,0x01,0x00,0xa0,0x04,0xa0,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
103 0x01,0x00,0x02,0x00,0x8c,0x02,0x8a,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
104 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
105 0x01,0x00,0x01,0x00,0xc0,0x04,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,
106 0x01,0x00,0x01,0x00,0xe0,0x04,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,
107 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,
108 };
109 #endif
110 */
111 void UpdatePresetData(void)
112 {
113 1 code unsigned char UpdateSquenceTable[]={
114 1 0x0a,0x09,0x0B,0x0C,0x12,0x13,0x14,0x15,
C51 COMPILER V7.50 SCALER 03/18/2008 22:04:56 PAGE 3
115 1 0x16,0x17,0x18,0x19,0x1A,0x1B,0x4D,0x5E,
116 1 0x5F,0x60,0x61,0x63,0x6f
117 1 };
118 1
119 1 code unsigned char D1024x768[]={
120 1 0x1E,0x05,0x51,0x84,0x08,0x00,0x1D,0x00,
121 1 0x00,0x03,0x95,0x00,0x00,0x04,0x00,DT5E,
122 1 DT5F,0x03,DT61,DT63,0x0f
123 1 };
124 1
125 1 unsigned char i;
126 1 for(i=0; i<21; i++){
127 2 WriteIIC_HW(Scaler_Addr,UpdateSquenceTable[i],D1024x768[i]);
128 2 }
129 1 }
130
131 void InitScaler(void)
132 {
133 1 unsigned char i;
134 1 code unsigned char InitTab[30][2]={
135 1 {0x01,(0x48|DT01)},
136 1 {0x4E,(unsigned char)PanelTypVTotal},{0x4F,(unsigned char)(PanelTypVTotal>>8)}, // Display Vtotal
137 1 {0x50,(unsigned char)PanelHeight},{0x51,(unsigned char)(PanelHeight>>8)}, // Display VActive
138 1 {0x52,(unsigned char)PanelVSyncStart},{0x53,(unsigned char)(PanelVSyncStart>>8)}, // Display VStart
139 1 {0x54,(unsigned char)PanelVSyncEnd},{0x55,(unsigned char)(PanelVSyncEnd>>8)}, // Display VEnd
140 1 {0x56,(unsigned char)PanelMinHTotal},{0x57,(unsigned char)(PanelMinHTotal>>8)}, // Display Htotal
141 1 {0x58,(unsigned char)PanelWidth},{0x59,(unsigned char)(PanelWidth>>8)}, // Display HActive
142 1 {0x5A,(unsigned char)PanelHSyncStart},{0x5B,(unsigned char)(PanelHSyncStart>>8)}, // Display HStart
143 1 {0x5C,(unsigned char)PanelHSyncEnd},{0x5D,(unsigned char)(PanelHSyncEnd>>8)}, // Display HEnd
144 1 {0x85,0x04}, //04
145 1 {0x86,0xc0}, // Sync Processor Ctrl: Enable Free-run
146 1 {0x87,0xc0}, // H/V Sync input Ctrl: Separate Sync input
147 1 {0x88,0xc8}, // H/V Sync output Ctrl: Free-Run Output enable
148 1 {0x8b,0x0f},
149 1 {0x91,0xFF}, // H/V interrupt clear
150 1 {0x92,0x00}, // H/V interrupt enable
151 1 {0x93,0x40}, // Fast mute ctrl
152 1 {0x94,0xa6}, //0xc4
153 1 {0xe6,0x03},
154 1 {0xf8,DTF8},
155 1 {0xfd,0x05},
156 1 // {0xfb,0xc3},
157 1 };
158 1
159 1 if((flag3 & BIT_2) != 0x00)
160 1 printf("Init Scaler\r\n");
161 1 TCONInit();
162 1
163 1 for(i=0; i<29; i++) {
164 2 WriteIIC_HW(Scaler_Addr,InitTab[i][0],InitTab[i][1]);
165 2 }
166 1
167 1 UpdatePresetData();
168 1
169 1 if(Use_TCON != 0){
170 2 WriteIIC_HW(Scaler_Addr,0xfa,0xc0);
171 2 WriteIIC_HW(Scaler_Addr,0xfb,0x00);
172 2 WriteIIC_HW(Scaler_Addr,0xfe,0xc1);
173 2 }
174 1 else{
175 2 WriteIIC_HW(Scaler_Addr,0xfa,0x00);
176 2 WriteIIC_HW(Scaler_Addr,0xfb,0x00);
C51 COMPILER V7.50 SCALER 03/18/2008 22:04:56 PAGE 4
177 2 WriteIIC_HW(Scaler_Addr,0xfe,0xc0);
178 2 }
179 1
180 1 SetDPLL(FreeRunH_Freq*PanelMinHTotal/1000);
181 1
182 1 WriteIIC_HW(Scaler_Addr,0x03,0x00);
183 1 WriteIIC_HW(Scaler_Addr,0x05,0x00);
184 1 WriteIIC_HW(Scaler_Addr,0x07,0x00);
185 1 WriteIIC_HW(Scaler_Addr,0x40,0x01);
186 1 WriteIIC_HW(Scaler_Addr,0xf4,0xc0);
187 1 WriteIIC_HW(Scaler_Addr,0x4c,DisplayControl);
188 1 WriteIIC_HW(Scaler_Addr,0x4d,0x02);
189 1 //Noise reduction
190 1 WriteIIC_HW(Scaler_Addr,0x42,0x3a);
191 1 WriteIIC_HW(Scaler_Addr,0x43,0x43);
192 1 // WriteIIC_HW(Scaler_Addr,0x44,0x12); //orange
193 1 // WriteIIC_HW(Scaler_Addr,0x45,0x30);
194 1 // WriteIIC_HW(Scaler_Addr,0x49,0x10);
195 1 //
196 1 WriteIIC_HW(Scaler_Addr,0xb3,0x09);
197 1 if((flag3 & BIT_2) != 0x00)
198 1 printf(PanelName);
199 1 DVI_On();
200 1 }
201
202 void TCONInit(void)
203 {
204 1 unsigned char i;
205 1 WriteIIC_HW(Scaler_Addr,0xFF,0x01); // page1 enable
206 1 #if Use_TCON != 0
if((flag3 & BIT_2) != 0x00)
printf("TCON Init\r\n");
for(i=0; i<0x70; i=i+16){
WritePageScaler(i,i,TCON_Tab);
}
for(i=0x70; i<0x7b; i++){
WriteIIC_HW(Scaler_Addr,i,TCON_Tab[i]);
}
for(i=0x80; i<0xa0; i=i+16){
WritePageScaler(i,i,TCON_Tab);
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -