📄 audio.lst
字号:
171 0x01 in playing mode
172 ###############################################################################
173 */
174 void audioif_clear_internal_flag(u8 mode)
175 {
176 1 if(!gv_audif) return;
177 1 #ifdef DEBUG_AUDIOIF
C51 COMPILER V7.50 AUDIO 12/14/2005 10:05:36 PAGE 4
printf("\n\raudioif_clear_internal_flag(%d)", (int)mode);
#endif
180 1 audio_enable();
181 1 AUDIO_PLAY_REGISTER = AUD_B1_CLEAR_H | mode;
182 1 delay_time(3,1);
183 1 AUDIO_PLAY_REGISTER = mode;
184 1 dv03_enable();
185 1 }
186
187 /*
188 ###############################################################################
189 Start transferring audio data from/to HDD using IDE bus
190 Input:
191 mode : 0x00 in recording mode
192 0x02 in playing mode
193 ###############################################################################
194 */
195 void audioif_get_IDE(u8 mode)
196 {
197 1 if(!gv_audif) return;
198 1 audio_enable();
199 1 AUDIO_BUS_REGISTER = mode | AUD_B0_AUDIO_IDE;
200 1 dv03_enable();
201 1 }
202
203 /*
204 void audioif_release_IDE(u8 mode)
205 {
206 if(!gv_audif) return;
207 audio_enable();
208 AUDIO_BUS_REGISTER = mode;
209 dv03_enable();
210 }
211 */
212
213 /*
214 ###############################################################################
215 Clear audio itnerrupt by reading audio interrupt register
216 ###############################################################################
217 */
218 u8 audioif_clear_interrupt(void)
219 {
220 1 xdata u8 ret;
221 1
222 1 if(!gv_audif) return 0;
223 1
224 1 audio_enable();
225 1
226 1 ret = AUDIO_INT_REGISTER;
227 1
228 1 dv03_enable();
229 1 return ret;
230 1 }
231
232
233 /*
234 ###############################################################################
235 Stop audio recording/playing
236 ###############################################################################
237 */
238 void audioif_skip_mode(void)
239 {
C51 COMPILER V7.50 AUDIO 12/14/2005 10:05:36 PAGE 5
240 1 if(!gv_audif) return;
241 1 #ifdef DEBUG_AUDIOIF
printf("\n\raudioif_skip_mode");
#endif
244 1 audio_enable();
245 1 AUDIO_START_REGISTER = AUD_B1_SKIP | AUD_B0_RESET;
246 1 dv03_enable();
247 1
248 1 gv_audio_run = 0;
249 1 }
250
251 /*
252 ###############################################################################
253 Check audio FPGA is busy
254 ###############################################################################
255 */
256 u8 audioif_IDE_busy(void)
257 {
258 1 xdata u8 ret;
259 1
260 1 if(!gv_audif) return 0;
261 1
262 1 audio_enable();
263 1 ret = (AUDIO_START_REGISTER & AUD_B1_BUSY)>>1;
264 1 dv03_enable();
265 1 return ret;
266 1 }
267
268
269
270
271 /*
272 ###############################################################################
273 Initialize audio chip
274 ###############################################################################
275 */
276 void audioif_chip_init(void)
277 {
278 1 if(!gv_audif) return;
279 1 #ifdef DEBUG_AUDIOIF
printf("\n\raudioif_chip_init");
#endif
282 1 i2c_pkt_write(0xe2, 0x00, 0x99);
283 1 i2c_pkt_write(0xe2, 0x01, 0x91); /* 0x93 */
284 1 i2c_pkt_write(0xe2, 0x02, 0x58);
285 1 i2c_pkt_write(0xe2, 0x03, 0x60);
286 1
287 1 // default value of TLV320AIC1110 audio codec chip
288 1 // offset value
289 1 // 0x00 0xf6
290 1 // 0x01 0x02
291 1 // 0x02 0x40
292 1 // 0x03 0xa0
293 1 // 0x04 0x00
294 1 // 0x05 0x00
295 1 // 0x06 0x00
296 1 }
297
298 /*
299 ###############################################################################
300 Mute audio chip
301 ###############################################################################
C51 COMPILER V7.50 AUDIO 12/14/2005 10:05:36 PAGE 6
302 */
303 void audioif_mute(u8 flag)
304 {
305 1 if(!gv_audif) return;
306 1 #ifdef DEBUG_AUDIOIF
printf("\n\raudioif_mute(%d)", (int)flag);
#endif
309 1 i2c_pkt_write(0xe2, 0x00, (flag)?0x9D:0x99);
310 1 }
311
312
313 //###############################################################################
314 //change audio source channel
315 //###############################################################################
316 #ifdef USE_4954_GP
extern BYTE Val_EPROM_AUDIO_CH;
#include "cs4954.h"
void audio_ch_sel(void)
{
#ifdef USE_4954
cs4954_write(0x0A,Val_EPROM_AUDIO_CH&0x03);
#endif
#ifdef DEBUG_4AUD
printf("\r\nSET AUDIO CH : 0x%02X (0x%02X)",
(WORD)Val_EPROM_AUDIO_CH&0x03,
(WORD)cs4954_read(0x0A)
);
#endif
}
#endif
333
334
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 385 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 4 6
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -