📄 tv.lst
字号:
C51 COMPILER V8.05a TV 07/03/2008 18:27:39 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE TV
OBJECT MODULE PLACED IN .\OBJ\Tv.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE tv\Tv.c LARGE BROWSE INCDIR(.\include) DEBUG OBJECTEXTEND PRINT(.\Tv.lst) O
-BJECT(.\OBJ\Tv.obj)
line level source
1 /******************************************************************************\
2 Project Version: MTKCARDVD()
3 ********************************************************************************
4 Filename: Tv.c
5
6 Author: Alan Chan
7
8 Company: CoreTek/ACT Company
9
10 ********************************************************************************
11 File Version: 1.01
12 File Created: July 2007
13
14 Compiled Using: keil uVision2 Version 2.23
15
16 ********************************************************************************
17 Files Required:
18
19 ********************************************************************************
20 File Description:
21
22 ********************************************************************************
23 File History:
24
25 --------------------------------------------------------------------------------
26 Date Name Description
27 --------------------------------------------------------------------------------
28 Mar. 2007 Alan Chan File Created
29
30 \******************************************************************************/
31 #include "global.h"
32 #include "E2prom.h"
33 #include "irkey.h"
34
35 #include "Tv.h"
36
37 #ifdef ENABLE_PRINTF //03Jul08
#include "stdio.h" //03Jul08
#include "string.h" //03Jul08
#endif
41
42
43 #ifdef ENABLE_TV
44 sChannelList ReadTVChannel(BYTE ChInd)
45 {
46 1 sChannelList chlist;
47 1
48 1 ReadE2prom(TV_CH_START_POS+((ChInd-1)*TV_ONE_CH_SIZE),(BYTE *) &chlist,TV_ONE_CH_SIZE);
49 1
50 1 return(chlist);
51 1 }
52
53 void WriteTVChannel(BYTE ChInd,sChannelList sCh)
54 {
C51 COMPILER V8.05a TV 07/03/2008 18:27:39 PAGE 2
55 1 WriteE2prom(TV_CH_START_POS+((ChInd-1)*TV_ONE_CH_SIZE),(BYTE *) &sCh,TV_ONE_CH_SIZE);
56 1 }
57
58 void LoadTVData(void)
59 {
60 1 BYTE bTmp;
61 1
62 1 ReadE2prom(TV_TOTAL_CH_POS, &bTmp, 1);
63 1 bTvTotalCh = bTmp;
64 1 if (bTvTotalCh>TV_CH_MAX)
65 1 {
66 2 bTvTotalCh = 0;
67 2 WriteE2prom(TV_TOTAL_CH_POS, &bTvTotalCh, 1);
68 2 }
69 1 ReadE2prom(TV_LAST_CH_POS, &bTmp, 1);
70 1 bTvCurrChIndex = bTmp;
71 1 if (bTvCurrChIndex>bTvTotalCh)
72 1 {
73 2 bTvCurrChIndex = 0;
74 2 WriteE2prom(TV_LAST_CH_POS, &bTvCurrChIndex, 1);
75 2 }
76 1
77 1 if (bTvCurrChIndex>0)
78 1 {
79 2 sTvCurrChannel = ReadTVChannel(bTvCurrChIndex);
80 2 bTvCurrSound=sTvCurrChannel.bSound ;
81 2
82 2 }
83 1 else
84 1 bTvCurrSound=TV_SOUND_DEFAULT;
85 1 #if 0 //superfluous //martin 14May08
ReadE2prom(TV_LAST_CH_AUDIO_POS, &bTmp, 1);
bTvCurrSound = bTmp;
#endif
89 1 if (bTvCurrSound>=TV_SOUND_MAX)
90 1 {
91 2 bTvCurrSound = TV_SOUND_DEFAULT; //TV_SOUND_BG; martin 12May08
92 2 WriteE2prom(TV_LAST_CH_AUDIO_POS, &bTvCurrSound, 1);
93 2 }
94 1
95 1 if((sTvCurrChannel.wFreq <=VHF_HIGH_BOT)&&(sTvCurrChannel.wFreq >=UHF_TOP))
96 1 {
97 2 sTvCurrChannel.wFreq =VHF_HIGH_BOT;
98 2 WriteTVChannel(bTvCurrChIndex,sTvCurrChannel);
99 2 }
100 1 }
101
102 void LoadDefaultTVData(void)
103 {
104 1 bTvTotalCh = bTvCurrChIndex =0;
105 1 bTvCurrSound = TV_SOUND_DEFAULT; //martin 14May08
106 1 WriteE2prom(TV_TOTAL_CH_POS, &bTvTotalCh, 1);
107 1 WriteE2prom(TV_LAST_CH_POS, &bTvCurrChIndex, 1);
108 1 WriteE2prom(TV_LAST_CH_AUDIO_POS, &bTvCurrSound, 1);
109 1 }
110
111 BYTE bTV_IF_Read(void)
112 {
113 1 BYTE bTmp;
114 1
115 1 IICSW_Read(0, I2C_TVIF_ADDR,0,0,&bTmp,1);
116 1 return bTmp;
C51 COMPILER V8.05a TV 07/03/2008 18:27:39 PAGE 3
117 1 }
118
119 BYTE bTV_PLL_Read(void)
120 {
121 1 BYTE bTmp;
122 1
123 1 IICSW_Read(0, I2C_TVPLL_ADDR,0,0,&bTmp,1);
124 1 return bTmp;
125 1 }
126
127 void vTV_PLL_Write(BYTE *databuf)
128 {
129 1 IICSW_Write(0, I2C_TVPLL_ADDR,0,0,databuf,4);
130 1 }
131
132 void vTV_IF_Write(BYTE *databuf)
133 {
134 1 IICSW_Write(0, I2C_TVIF_ADDR,0,0,databuf,4);
135 1 }
136
137 BYTE bBand()
138 {
139 1 if((_sTunerPLL.wDB>=VHF_LOW_BOT) && (_sTunerPLL.wDB<VHF_LOW_TOP))
140 1 return (VHF_LOW_BAND);
141 1 else if((_sTunerPLL.wDB>=VHF_HIGH_BOT) && (_sTunerPLL.wDB<VHF_HIGH_TOP))
142 1 return (VHF_HIGH_BAND);
143 1 else if((_sTunerPLL.wDB>=UHF_BOT) &&(_sTunerPLL.wDB <UHF_TOP))
144 1 return (UHF_BAND);
145 1 else
146 1 return (VHF_HIGH_BAND);
147 1
148 1 }
149 #ifndef TUNER_USE_TNJ7355 //martin 14May08
void vTVTunerInit(void)
{
BYTE bData[4];
bData[0] = IF_RESERVED;
bData[1] = IF_SWITCH_1 ;
bData[2] = IF_ADJUST1;
if (bTvCurrSound==TV_SOUND_DK)
bData[3] = IF_DATA3;
else if (bTvCurrSound==TV_SOUND_I)
bData[3] = IF_DATA2;
else
bData[3] = IF_DATA1;
vTV_IF_Write(bData);
}
#endif
166 // Init TV
167 void vInitTV(void)
168 {
169 1 Delay1ms(100);
170 1 mTVEnable();
171 1 Delay1ms(100);
172 1 if(bTvTotalCh)
173 1 {
174 2 _sTunerPLL.wDB = sTvCurrChannel.wFreq;
175 2 //martin 14 May08 _sTunerPLL.bBB = sTvCurrChannel.bBand;
176 2 _sTunerPLL.bCB = TUNER_CB1;
177 2 vTvSetCh();
178 2 _bSearchState = S_STATE_CHK_VIDEO;
C51 COMPILER V8.05a TV 07/03/2008 18:27:39 PAGE 4
179 2 _bSearchCnt = S_TV_VERIFY_TIME;
180 2 }
181 1 else
182 1 {
183 2 _sTunerPLL.wDB = VHF_LOW_BOT; //0x27db; ?????????? martin 12May08
184 2 sTvCurrChannel.wFreq = _sTunerPLL.wDB;
185 2 _sTunerPLL.bBB = TUNER_BB1;//TUNER_BB3; martin 14May08
186 2 //martin 14 May08 sTvCurrChannel.bBand = _sTunerPLL.bBB;
187 2 //02Jun08 sTvCurrChannel.bSystem=IF_SWITCH_DEFAUL;
188 2 sTvCurrChannel.bSystem=IF_SWITCH_DEFAUL;
189 2 bTvCurrSound=TV_SOUND_DEFAULT;
190 2 _sTunerPLL.bCB = TUNER_CB1;
191 2 vTvSetCh();
192 2 _bSearchState = S_STATE_CHK_VIDEO;
193 2 _bSearchCnt = S_TV_VERIFY_TIME;
194 2 }
195 1 _bSearchMode = SEARCH_IDLE;
196 1
197 1 _bSearchPercent=0x00; //01Jul08
198 1 bDataUpdateEn=0x00; //04jun08
199 1 DataOutValid=0; //02Jun08
200 1 #ifndef TUNER_USE_TNJ7355 //martin 14May08
vTVTunerInit();
#endif
203 1 }
204
205 BOOL vFreqSwitch(BIT dir) //martin 13May08
206 {
207 1
208 1 if(dir == UP_SEARCH)
209 1 {
210 2 if((_sTunerPLL.wDB>VHF_LOW_TOP) && (_sTunerPLL.wDB<VHF_HIGH_BOT))
211 2 {
212 3 _sTunerPLL.wDB =VHF_HIGH_BOT;
213 3 }
214 2 else if((_sTunerPLL.wDB>VHF_HIGH_TOP) && (_sTunerPLL.wDB<UHF_BOT))
215 2 {
216 3 _sTunerPLL.wDB = UHF_BOT;
217 3 }
218 2 }
219 1 else
220 1 {
221 2 if((_sTunerPLL.wDB>VHF_LOW_TOP) && (_sTunerPLL.wDB<VHF_HIGH_BOT))
222 2 {
223 3 _sTunerPLL.wDB =VHF_LOW_TOP;
224 3 }
225 2 else if((_sTunerPLL.wDB>VHF_HIGH_TOP) && (_sTunerPLL.wDB<UHF_BOT))
226 2 {
227 3 _sTunerPLL.wDB = VHF_HIGH_TOP;
228 3 }
229 2 }
230 1
231 1 //07Jun08 if(_sTunerPLL.wDB>UHF_TOP)
232 1 //07Jun08 _sTunerPLL.wDB=UHF_TOP;
233 1
234 1 return 1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -