📄 videosourceswitch.lst
字号:
C51 COMPILER V8.08 VIDEOSOURCESWITCH 11/23/2007 00:57:18 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE VIDEOSOURCESWITCH
OBJECT MODULE PLACED IN .\Object\VideoSourceSwitch.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE SourceFile\VideoSourceSwitch.c LARGE BROWSE INCDIR(.\IncludeFile;.\IncludeF
-ile\Panel;.\IncludeFile\Font_Icon) DEFINE(T108) DEBUG OBJECTEXTEND PRINT(.\List\VideoSourceSwitch.lst) OBJECT(.\Object\V
-ideoSourceSwitch.obj)
line level source
1 #include "Common.h"
2 #include "Global.h"
3 #include "ICControl.h"
4 #include "VideoSourceSwitch.h"
5 #include "System.h"
6 #include "SRC_ctrl.h"
7 #include "TWICreg.h"
8 #include "Timer0.h"
9 #include "TxxInitTable.h"
10 #include "VideoDetect.h"
11 //#define _Myson8957_
12 #include "Myson8957.h"
13 Source code uiaSrcMux1[]={
14 {0x0804, itypeCVBS, isrcVIDEO },
15 {0x2004, itypeSVIDEO, isrcVIDEO },
16 #ifdef PC_MODE
{0x2A24, itypeRGB, isrcANALOG },
#endif
19 #ifdef YPbPr
{0x2824, itypeYPBPR, isrcVIDEO },
#endif
22 #ifdef DIGI_AVAILABLE
{0x0100, itypeRGB565, isrcDIGITAL },
{0x2824, itype656, isrcDIGITAL },
#endif
26 };
27 void SourceSelect(void)
28 {
29 1
30 1 ClosePanel(0x10, 0xff, 0x40); // blue screen
31 1 if((EepPublic.cSource==0)||(uiaSrcMux1[EepPublic.cSource].VideoType==itypeRGB565)||(uiaSrcMux1[EepPubl
-ic.cSource].VideoType==itypeSVIDEO))
32 1 {
33 2 SetSignalStd(); //set the chroma and the comb filter
34 2 SetOPTiming(); //set the scaler,line buffer,output PLL,display window
35 2 }
36 1
37 1 IC_WritByte(TWIC_P0,0x0f,0x70); //for position shift,ADC Power Down Control
38 1 IC_WritByte(TWIC_P0,0x0f,0x00); //for position shift
39 1 IC_WritByte(TWIC_P0,0x31,0x00); //Source Select Reg, Clear All.
40 1 IC_WritByte(TWIC_P0,0x1a, 0x87); //ADC Analog AGC Selection,dynamic gain
41 1
42 1
43 1 if(uiaSrcMux1[EepPublic.cSource].SourceRoute==isrcVIDEO)
44 1 {
45 2 IC_WritByte(TWIC_P0,0x10, IC_ReadByte(TWIC_P0, 0x10)&~0x10);
46 2 IC_WritByte(TWIC_P0,0x18, uiaSrcMux1[EepPublic.cSource].ADCMUX>>8); // cMux1);
47 2 IC_WritByte(TWIC_P0,0x19, uiaSrcMux1[EepPublic.cSource].ADCMUX&0xFF); // cMux2);
48 2 IC_WritByte(TWIC_P0,0x31, 0x04); //Select VD input
49 2 if(uiaSrcMux1[EepPublic.cSource].VideoType==itypeSVIDEO)
50 2 {
51 3
52 3 IC_WritByte(TWIC_P0,0x11, 0x0d);
C51 COMPILER V8.08 VIDEOSOURCESWITCH 11/23/2007 00:57:18 PAGE 2
53 3
54 3 IC_WritByte(TWIC_P2,0x07, 0x06|0x20);
55 3 IC_WritByte(TWIC_P2,0x00, IC_ReadByte(TWIC_P2,0x00)|0x01);
56 3 IC_WritByte(TWIC_P2,0x01, IC_ReadByte(TWIC_P2,0x01)&~ENYPbPr);
57 3 IC_WritByte(TWIC_P0,0x16, 0xD3); //Line Lock PLL Divider Reg
58 3 IC_WritByte(TWIC_P2,0x03, IC_ReadByte(TWIC_P2,0x03)|0x03);
59 3
60 3 IC_WritByte(TWIC_P0,0x17, 0x4C); // kenny 20060627
61 3
62 3 twdDelay(500);
63 3 //m_cBuff[0]= IC_ReadByte(TWIC_P2, 0x3A);
64 3 //if((m_cBuff[0]&0x06)==0x06)
65 3 if((IC_ReadByte(TWIC_P2, 0x3A)&0x06)==0x06)
66 3 {
67 4 NoSignal=0;
68 4 if(m_bPanelClose==1) //sm061011
69 4 OpenPanel();
70 4
71 4 }
72 3 }
73 2 else if((uiaSrcMux1[EepPublic.cSource].VideoType==itypeCVBS))
74 2 { // CVBS
75 3
76 3 if(EepPublic.cSource==1)
77 3 IC_WritByte(TWIC_P0,0x11, 0x08);
78 3 else if(EepPublic.cSource==2)
79 3 IC_WritByte(TWIC_P0,0x11, 0x04);
80 3 else if(EepPublic.cSource==3)
81 3 IC_WritByte(TWIC_P0,0x11, 0x00);
82 3
83 3 IC_WritByte(TWIC_P2,0x07, 0x21);//0x05|0x22);
84 3 IC_WritByte(TWIC_P2,0x00, IC_ReadByte(TWIC_P2,0x00)&0xfe);
85 3 IC_WritByte(TWIC_P2,0x01, IC_ReadByte(TWIC_P2,0x01)&~ENYPbPr);
86 3 IC_WritByte(TWIC_P0,0x16, 0xD3);//Line Lock PLL Divider Reg
87 3 IC_WritByte(TWIC_P2,0x07, 0x02|0x20);
88 3 if(m_cChroma==S_NTSC_4)
89 3 IC_WritByte(TWIC_P2,0x03, IC_ReadByte(TWIC_P2,0x03)&0xf8|0x03);
90 3 else
91 3 IC_WritByte(TWIC_P2,0x03, IC_ReadByte(TWIC_P2,0x03)&0xfc);
92 3
93 3 twdDelay(500);
94 3
95 3 if((IC_ReadByte(TWIC_P2, 0x3A)&0x06)==0x06)
96 3 {
97 4 NoSignal=0;
98 4 if(m_bPanelClose==1) //sm061011
99 4 OpenPanel();
100 4
101 4 }
102 3 }
103 2 else if (uiaSrcMux1[EepPublic.cSource].VideoType==itypeYPBPR)
104 2 {
105 3 IC_WritByte(TWIC_P0,0x11, 0x55);
106 3 IC_WritByte(TWIC_P2,0x07, 0x20);
107 3 IC_WritByte(TWIC_P2,0x01, IC_ReadByte(TWIC_P2,0x01)|ENYPbPr);
108 3 }
109 2
110 2 }
111 1 else if(uiaSrcMux1[EepPublic.cSource].SourceRoute==isrcANALOG) //rouce route videodecoder
112 1 {
113 2 IC_WritByte(TWIC_P0,0x18, uiaSrcMux1[EepPublic.cSource].ADCMUX>>8); // cMux1);
114 2 IC_WritByte(TWIC_P0,0x19, uiaSrcMux1[EepPublic.cSource].ADCMUX&0xFF); // cMux2);
C51 COMPILER V8.08 VIDEOSOURCESWITCH 11/23/2007 00:57:18 PAGE 3
115 2 IC_WritByte(TWIC_P2,0x07, 0x06&~0x20);
116 2
117 2 if (uiaSrcMux1[EepPublic.cSource].VideoType==itypeRGB)
118 2 {
119 3 IC_WritByte(TWIC_P0,0x16, 0x00);
120 3 IC_WritByte(TWIC_P0,0x31, 0x08); //Select SDC RGB, SOY input.
121 3 IC_WritByte(TWIC_P0,0x40, 0xC2);
122 3 IC_WritByte(TWIC_P0,0x17, 0xC8);
123 3 IC_WritByte(TWIC_P0,0x1A, IC_ReadByte(TWIC_P0,0x1A)&0xF8);
124 3 //~ Enable Interrupt ~//
125 3 IC_WritByte(TWIC_P0,0x33, 0xB0);
126 3 IC_WritByte(TWIC_P0,0x32, 0xFF);
127 3 IC_WritByte(TWIC_P0,0x37, 0x40);
128 3 IC_WritByte(TWIC_P0,0x39, 0x10);
129 3 twdDelay(50); // For H/W stable.
130 3 }
131 2
132 2 }
133 1 #ifdef DIGI_AVAILABLE
else if(uiaSrcMux1[EepPublic.cSource].SourceRoute==isrcDIGITAL)
{
if (uiaSrcMux1[EepPublic.cSource].VideoType==itypeRGB565)
{
IC_WritByte(TWIC_P0,0x16, 0xD3);
IC_WritByte(TWIC_P0,0x40, 0xC2);
IC_WritByte(TWIC_P0,0x17, 0xC8);
IC_WritByte(TWIC_P0,0xfe, 0x58);
SRC_565();
}else if (uiaSrcMux1[EepPublic.cSource].VideoType==itype656)
{
IC_WritByte(TWIC_P0,0xfe, 0xa8);
SRC_656();
}
}
#endif
150 1
151 1 if(uiaSrcMux1[EepPublic.cSource].SourceRoute!=isrcVIDEO)
152 1 Detect_Sig(1); //tune sound control 20060809
153 1 twdDelay(500);
154 1 IC_WritByte(TWIC_P0, 0xE2, 0x11);
155 1
156 1 }
157
158
159
160
161 /* S E T S I G N A L S T D */
162 /*-------------------------------------------------------------------------
163 set chroma agc(P20x0c),chroma DTO increment0,1,2,3,(P20x18,19,1a,1b)
164 and Comb Filter Configuration(P20x82)
165 -------------------------------------------------------------------------*/
166 void SetSignalStd(void)
167 {
168 1 uCHAR RegIdx,ValIdx;//ruby,ChromaIdx;
169 1
170 1 IC_WritByte(TWIC_P2, 0x3f, 0x01); // reset comb filter //add by Sherman 06'01'16
171 1
172 1 ValIdx=m_cChroma*SignalStdRegP2Cnt; // S_NTSC=0x00
173 1 for (RegIdx=0; RegIdx<SignalStdRegP2Cnt; RegIdx++, ValIdx++){
174 2 IC_WritByte(TWIC_P2, ucaSignalStdRegP2[RegIdx], ucaSignalStdValP2[ValIdx]);
175 2 }
176 1
C51 COMPILER V8.08 VIDEOSOURCESWITCH 11/23/2007 00:57:18 PAGE 4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -