📄 mstar.lst
字号:
C51 COMPILER V8.18 MSTAR 09/29/2009 23:58:02 PAGE 1
C51 COMPILER V8.18, COMPILATION OF MODULE MSTAR
OBJECT MODULE PLACED IN ..\..\1out\mStar.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE ..\..\kernal\mStar.c BROWSE INCDIR(..\..\inc) DEBUG OBJECTEXTEND PRINT(..\.
-.\1out\mStar.lst) OBJECT(..\..\1out\mStar.obj)
line level source
1 #define EnableUseGammaTbl
2 #define _MSTAR_C_
3 #define _EnableFCC_
4 #define _VDCaptureSetting_
5 #define EnableUseModeTbl
6
7 #include <math.h>
8 #include "board.h"
9 #include "types.h"
10 #include "ms_reg.h"
11 #include "global.h"
12 #include "panel.h"
13 #include "adjust.h"
14 #include "ms_rwreg.h"
15 #include "DEBUG.h"
16 #include "misc.h"
17 #include "power.h"
18 #include "detect.h"
19 #include "msOsd.h"
20 #include "extlib.h"
21 #include "Valuetbl.h"
22 #include "msAce.h"
23 #include "userpref.h"
24 #include "mstar.h"
25 #include "DevVd.h"
26 #include "devvd_user.h"
27 #include "devtuner.h"
28 #include "Maria2_FSC_Lib.h"
29 #include "M2_VD_AGC_Lib.h"
30 #include "M2_VD_Std_Lib.h"
31 #if(ENABLE_VD_DSP)
32 #include "Maria2_dsp_lib.h"
33 #endif
34 //*******************************************************************
35 //
36 // Constant Definition
37 //
38 //*******************************************************************
39 //14.318 * 15 * 8 / 4 = 429.54, 429.54<<19=225202667.52, 429.54<<3=8=3436.32
40
41 #define DClkFactor 225202667ul
42
43 //*******************************************************************
44 //
45 // extern declaration
46 //
47 //*******************************************************************
48
49 //*******************************************************************
50 //
51 // local declaration
52 //
53 //*******************************************************************
54
C51 COMPILER V8.18 MSTAR 09/29/2009 23:58:02 PAGE 2
55 #define SSCSTEP 0x119
56 #define SSCSPAN 0xEC
57
58 //*******************************************************************
59 //
60 //*******************************************************************
61 // Function Name: msInit(void)
62 //
63 // Description: Initialize mStar chip while 1st power on system
64 //
65 // Caller: msInitADC(), msInitTCON, msSetupFreeRunMode()
66 // msSetupInputPort() in mStar.c
67 // msWriteByte(), msWriteWord() in ms_rwreg.c
68 // msWriteDDC1(), msWriteDDC2() in ddc.c
69 // msInitGamma() in gamma.c
70 // Osd_InitOSD() in osd.c
71 // Callee: Init_Device() in main.c
72 //*******************************************************************
73
74 #ifdef EnableUseModeTbl
75
76 DynamicLoadModeTblType code tModeIndexTbl[]=
77 {
78 {
79 1<<Input_CVBS1|1<<Input_CVBS2|1<<Input_SVIDEO1|1<<Input_TV,
80 MD_720x480_60I,
81 tNtscModeTbl,
82 },
83 {
84 1<<Input_CVBS1|1<<Input_CVBS2|1<<Input_SVIDEO1|1<<Input_TV,
85 MD_720x576_50I,
86 tPalModeTbl,
87 },
88 {
89 1<<Input_CVBS1|1<<Input_CVBS2|1<<Input_SVIDEO1,
90 MD_FreeRun,
91 tFreeRunModeTbl,
92 },
93 {
94 1<<Input_TV,
95 MD_TVsnow,
96 tTVSnowModeTbl,
97 },
98
99 #if VGA_ENABLE
100 {
101 1<<Input_VGA,
102 MD_640x480_60,
103 t640_480_VGA_ModeTbl,
104 },
105 #ifdef D800480PANEL
{
1<<Input_VGA,
MD_640x480_72,
t640_480_VGA_72HZ_ModeTbl,
},
#endif
112 {
113 1<<Input_VGA,
114 MD_800x600_60,
115 t800_600_VGA_ModeTbl,
116 },
C51 COMPILER V8.18 MSTAR 09/29/2009 23:58:02 PAGE 3
117 {
118 1<<Input_VGA,
119 MD_1024x768_60,
120 t1024_768_VGA_ModeTbl,
121 },
122 #endif
123 {
124 _END_OF_TBL_,
125 0,
126 tENDModeTbl
127 },
128 };
129 #endif
130
131 void msInit(void)
132 {
133 1 msWriteRegsTbl(tInitializeScaler);
134 1 msWriteRegsTbl(tInitializeFCC);
135 1 msWriteRegsTbl(tInitializeADC);
136 1
137 1 #if PANEL_TTL
msWriteByte(BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU);
msWriteByte(BK1_C1_BND_RST, 0x21);
msWriteByte(BK1_C0_TUNE_FRAME_NO, 0x80);
msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
#endif
145 1
146 1 #ifdef P6_GPIO_Enable
147 1 msWriteBit(BK0_5E_PATTERN, _ENABLE, _BIT6); // Nelson Switch ITU656 to P6 port 2006-01-25
148 1 #endif
149 1
150 1 #ifdef P5_GPIO_Enable
msWriteBit(BK0_5E_PATTERN, _ENABLE, _BIT7);
#endif
153 1
154 1 msWriteByte(BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU); // select register bank ADC
155 1 msWriteByte(BK1_0C_GCTRL, 0x02);
156 1
157 1 #if (PANEL_DIGITAL_TCON|PANEL_ANALOG_TCON)
158 1 msWriteRegsTbl(tInitializeTCON);
159 1 #else
msWriteByte(BK1_D0_PTC_MODE1, 0x0C); // Disable TCON function
#endif
162 1
163 1 msWriteByte(BK1_4E, (msReadByte(0x4E)|_BIT0));
164 1 //msWriteByte(BK1_F4_PWM1C, 0xFF);
165 1 msWriteByte(BK1_F6_PWM1EPL, 0x00);
166 1 msWriteByte(BK1_F7_PWM1EPH, 0x01);
167 1
168 1 msWriteByte(BK1_92_SARADC_AISEL, msReadByte(BK1_92_SARADC_AISEL)|KEY_PORT);
169 1
170 1 msWriteByte(BK1_94_SAR_CH1_UPB, 0x3F);
171 1 msWriteByte(BK1_95_SAR_CH1_LOB, 0x05);
172 1 msWriteByte(BK1_96_SAR_CH2_UPB, 0x3F);
173 1 msWriteByte(BK1_97_SAR_CH2_LOB, 0x00);
174 1 msWriteByte(BK1_98_SAR_CH3_UPB, 0x3F);
175 1 msWriteByte(BK1_99_SAR_CH3_LOB, 0x00);
176 1
177 1 msWriteByte(BK1_7B_TERM_SEL, BK1_7B_TERM_SEL_VALUE);
178 1 msWriteByte(BK1_7C_CROING, BK1_7C_CROING_VALUE);
C51 COMPILER V8.18 MSTAR 09/29/2009 23:58:02 PAGE 4
179 1
180 1 msWriteRegsTbl(tInitializeVFE);
181 1 msWriteRegsTbl(tInitializeVCE);
182 1
183 1 #if (CCFL_FUNCTION)
msWriteRegsTbl(tInitializeCCFL);
#endif
186 1
187 1 msSetupInputPort();
188 1
189 1 msWriteByte(BK0_00_REGBK, REG_BANK2_VD);
190 1 msWriteByteMask(BK2_9A_SYNC_CTRL1, 0x01, 0x01);
191 1 msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
192 1
193 1 msWriteByte(BK0_F8_TEST_MODE, 0);
194 1
195 1 msWriteByte(BK0_FF_BOUNDING_MISC, 0x02 );
196 1
197 1 }
198
199 void OSDGammaInit(void)
200 {
201 1 Osd_InitOSD();
202 1 msInitGamma(); // programming gamma table
203 1 }
204
205 //*******************************************************************
206 // Function Name: msSetupInputPort
207 //
208 // Decscription: setup input port registers for
209 // Analog/Digital/YCbCr(Video) input
210 //
211 // caller: mSar_WriteByte(), msReadByte() in ms_rwreg.c
212 // callee: msMonitorInputTiming() in detect.c
213 //*******************************************************************
214 #if ((MST_CHIP==MST716A)||(MST_CHIP==MST717A)||(MST_CHIP==MST726A))
215 void SwitchInputPort(InputPortType PortSwitch)
216 {
217 1 BYTE bk1_2F_value;
218 1 BYTE bk1_90_mask=0;
219 1
220 1 switch(PortSwitch)
221 1 {
222 2 case Input_TV:
223 2 bk1_2F_value=TV_RealPortSet;
224 2 break;
225 2 case Input_CVBS1:
226 2 bk1_2F_value=CVBS1_RealPortSet;
227 2 break;
228 2 case Input_CVBS2:
229 2 bk1_2F_value=CVBS2_RealPortSet;
230 2 break;
231 2 case Input_CVBS3:
232 2 bk1_2F_value=CVBS3_RealPortSet;
233 2 break;
234 2 case Input_VGA:
235 2 bk1_2F_value=VGA_RealPortSet;
236 2 break;
237 2 case Input_SVIDEO1:
238 2 bk1_2F_value=SVIDEO1_RealPortSet;
239 2 break;
240 2 }
C51 COMPILER V8.18 MSTAR 09/29/2009 23:58:02 PAGE 5
241 1
242 1 #if VGA_ENABLE
243 1 if(PortSwitch==Input_VGA)
244 1 msWriteRegsTbl(tPCFCC);
245 1 else
246 1 #endif
247 1 msWriteRegsTbl(tVideoFCC);
248 1
249 1 if(IsVideoPortInUse())
250 1 {
251 2 if(PortSwitch==Input_TV)
252 2 msWriteRegsTbl(t_TVInitializeFCC);
253 2 else
254 2 msWriteRegsTbl(t_AVInitializeFCC);
255 2 }
256 1
257 1 //if (bk1_2F_value==PORT_CVBS_SV1C)
258 1 //bk1_90_mask=_BIT3;
259 1
260 1 msWriteByte(BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU);
261 1 msWriteByte(BK1_2F, bk1_2F_value);
262 1
263 1 bk1_2F_value=msReadByte(BK1_90_SARADC_CTRL);
264 1 bk1_2F_value&=~_BIT3;
265 1 msWriteByte(BK1_90_SARADC_CTRL, bk1_2F_value|bk1_90_mask);
266 1
267 1 msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
268 1 }
269 #elif (MST_CHIP==MST710A)
void SwitchInputPort(InputPortType PortSwitch)
{
BYTE bk1_2F_value;
BYTE bk1_90_mask=0;
switch(PortSwitch)
{
case Input_TV:
bk1_2F_value=TV_RealPortSet;
break;
case Input_CVBS1:
bk1_2F_value=CVBS1_RealPortSet;
break;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -