📄 clock.lst
字号:
C51 COMPILER V7.50 CLOCK 09/20/2005 21:47:46 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE CLOCK
OBJECT MODULE PLACED IN clock.obj
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE lib_mcu\clock\clock.c OPTIMIZE(7,SPEED) BROWSE INCDIR(.\modules\system;.\;.
-\;.\lib_refd) DEFINE(KEIL) DEBUG OBJECTEXTEND PRINT(.\clock.lst) OBJECT(clock.obj)
line level source
1 /*C**************************************************************************
2 * NAME: clock.c
3 *----------------------------------------------------------------------------
4 * Copyright (c) 2003 Atmel.
5 *----------------------------------------------------------------------------
6 * RELEASE: snd1c-refd-nf-4_0_3
7 * REVISION: 1.7
8 *----------------------------------------------------------------------------
9 * PURPOSE:
10 * This file contains the clock routines
11 *
12 * NOTES:
13 * Configuration:
14 * - FOSC in config.h
15 *****************************************************************************/
16
17 /*_____ I N C L U D E S ____________________________________________________*/
18
19 #include "config.h" /* system configuration */
20 #include "lib_mcu\mp3\mp3_drv.h" /* mp3 driver definition */
21 #include "lib_mcu\aud\aud_drv.h" /* audio driver definition */
22 #include "lib_mcu\usb\usb_drv.h" /* usb driver definition */
23 #include "dac\dac_drv.h" /* dac driver definition */
24 #include "clock.h" /* clock definition */
25
26
27 /*_____ M A C R O S ________________________________________________________*/
28
29
30 /*_____ D E F I N I T I O N ________________________________________________*/
31
32 #if FOSC == 12000 /* Fpll= 12 * (R+1) / (N+1) */
St_clock code clock_div[8] =
{ 126, 14, 3, 11, _384Fs, /* Fs= 22.05 KHz, Fpll= 101.6 MHz, Fmp3= 25.4 MHz */
191, 24, 3, 9, _384Fs, /* Fs= 24 KHz, Fpll= 92.16 MHz, Fmp3= 23.04 MHz */
511, 74, 3, 19, _256Fs, /* Fs= 16 KHz, Fpll= 81.92 MHz, Fmp3= 20.48 MHz */
191, 24, 0, 29, _384Fs, /* Fs= 8 KHz, Fpll= 92.16 MHz, voice only */
126, 14, 3, 5, _384Fs, /* Fs= 44.1 KHz, Fpll= 101.6 MHz, Fmp3= 25.4 MHz */
191, 24, 3, 4, _384Fs, /* Fs= 48 KHz, Fpll= 92.16 MHz, Fmp3= 23.04 MHz */
511, 74, 3, 9, _256Fs, /* Fs= 32 KHz, Fpll= 81.92 MHz, Fmp3= 20.48 MHz */
15, 1, 1, 0, 0 /* USB only, Fpll= 96 MHz */
};
#endif
44
45 #if FOSC == 16000 /* Fpll= 16 * (R+1) / (N+1) */
46 St_clock code clock_div[8] =
47 { 541, 95, 3, 15, _256Fs, /* Fs= 22.05 KHz, Fpll= 90.32 MHz, Fmp3= 22.58 MHz */
48 143, 24, 3, 9, _384Fs, /* Fs= 24 KHz, Fpll= 92.16 MHz, Fmp3= 23.04 MHz */
49 534, 94, 3, 21, _256Fs, /* Fs= 16 KHz, Fpll= 90.11 MHz, Fmp3= 22.53 MHz */
50 143, 24, 0, 29, _384Fs, /* Fs= 8 KHz, Fpll= 92.16 MHz, voice only */
51 541, 95, 3, 7, _256Fs, /* Fs= 44.1 KHz, Fpll= 90.32 MHz, Fmp3= 22.58 MHz */
52 143, 24, 3, 4, _384Fs, /* Fs= 48 KHz, Fpll= 92.16 MHz, Fmp3= 23.04 MHz */
53 534, 94, 3, 10, _256Fs, /* Fs= 32 KHz, Fpll= 90.11 MHz, Fmp3= 22.53 MHz */
54 11, 1, 1, 0, 0 /* USB only, Fpll= 96 MHz */
C51 COMPILER V7.50 CLOCK 09/20/2005 21:47:46 PAGE 2
55 };
56 #endif
57
58 #if FOSC == 20000 /* Fpll= 20 * (R+1) / (N+1) */
St_clock code clock_div[8] =
{ 126, 24, 3, 11, _384Fs, /* Fs= 22.05 KHz, Fpll= 101.6 MHz, Fmp3= 25.4 MHz */
575, 124, 3, 9, _384Fs, /* Fs= 24 KHz, Fpll= 92.16 MHz, Fmp3= 23.04 MHz */
511, 124, 3, 19, _256Fs, /* Fs= 16 KHz, Fpll= 81.92 MHz, Fmp3= 20.48 MHz */
575, 124, 0, 29, _384Fs, /* Fs= 8 KHz, Fpll= 92.16 MHz, voice only */
126, 24, 3, 5, _384Fs, /* Fs= 44.1 KHz, Fpll= 101.6 MHz, Fmp3= 25.4 MHz */
575, 124, 3, 4, _384Fs, /* Fs= 48 KHz, Fpll= 92.16 MHz, Fmp3= 23.04 MHz */
511, 124, 3, 9, _256Fs, /* Fs= 32 KHz, Fpll= 81.92 MHz, Fmp3= 20.48 MHz */
23, 4, 1, 0, 0 /* USB only, Fpll= 96 MHz */
};
#endif
70
71
72 /*_____ D E C L A R A T I O N ______________________________________________*/
73
74
75 /*F**************************************************************************
76 * NAME: clock_song_init
77 *----------------------------------------------------------------------------
78 * PARAMS:
79 * freq: 0 -> 22.05 KHz
80 * 1 -> 24 KHz
81 * 2 -> 16 KHz
82 * 3 -> unused
83 * 4 -> 44.1 KHz
84 * 5 -> 48 KHz
85 * 6 -> 32 KHz
86 * 7 -> unused
87 *
88 * return:
89 *----------------------------------------------------------------------------
90 * PURPOSE:
91 * Song clock initialization
92 *----------------------------------------------------------------------------
93 * EXAMPLE:
94 *----------------------------------------------------------------------------
95 * NOTE:
96 * freq is an index in the table giving the divider values
97 *----------------------------------------------------------------------------
98 * REQUIREMENTS:
99 *****************************************************************************/
100 void clock_song_init (Byte freq)
101 {
102 1 Pll_set_ndiv(clock_div[freq].n_div);
103 1 Pll_set_rdiv(clock_div[freq].r_div);
104 1 Pll_enable();
105 1 Mp3_set_clock(clock_div[freq].mp3_div);
106 1 Aud_set_clock(clock_div[freq].aud_div);
107 1 Dac_overclock((bit)(clock_div[freq].dac_over));
108 1 Aud_set_oversamp(clock_div[freq].dac_over); /* init HLR bit */
109 1 }
110
111
112 /*F**************************************************************************
113 * NAME: clock_voice_init
114 *----------------------------------------------------------------------------
115 * PARAMS:
116 *
C51 COMPILER V7.50 CLOCK 09/20/2005 21:47:46 PAGE 3
117 * return:
118 *----------------------------------------------------------------------------
119 * PURPOSE:
120 * Voice clock initialization
121 *----------------------------------------------------------------------------
122 * EXAMPLE:
123 *----------------------------------------------------------------------------
124 * NOTE:
125 *----------------------------------------------------------------------------
126 * REQUIREMENTS:
127
128 *****************************************************************************/
129 void clock_voice_init (void)
130 {
131 1 Pll_set_ndiv(clock_div[VOC_FREQ].n_div);
132 1 Pll_set_rdiv(clock_div[VOC_FREQ].r_div);
133 1 Pll_enable();
134 1 Aud_set_clock(clock_div[VOC_FREQ].aud_div);
135 1 Dac_overclock((bit)(clock_div[VOC_FREQ].dac_over));
136 1 Aud_set_oversamp(clock_div[VOC_FREQ].dac_over); /* init HLR bit */
137 1 }
138
139
140 /*F**************************************************************************
141 * NAME: clock_usb_init
142 *----------------------------------------------------------------------------
143 * PARAMS:
144 *
145 * return:
146 *----------------------------------------------------------------------------
147 * PURPOSE:
148 * USB clock initialization
149 *----------------------------------------------------------------------------
150 * EXAMPLE:
151 *----------------------------------------------------------------------------
152 * NOTE:
153 *----------------------------------------------------------------------------
154 * REQUIREMENTS:
155
156 *****************************************************************************/
157 void clock_usb_init (void)
158 {
159 1 Pll_set_ndiv(clock_div[USB_FREQ].n_div);
160 1 Pll_set_rdiv(clock_div[USB_FREQ].r_div);
161 1 Pll_enable();
162 1 Usb_set_clock(clock_div[USB_FREQ].mp3_div); /* mp3_div = usb_div */
163 1 }
164
165
166 /*F**************************************************************************
167 * NAME: clock_disable
168 *----------------------------------------------------------------------------
169 * PARAMS:
170 *
171 * return:
172 *----------------------------------------------------------------------------
173 * PURPOSE:
174 * Clocks stop
175 *----------------------------------------------------------------------------
176 * EXAMPLE:
177 *----------------------------------------------------------------------------
178 * NOTE:
C51 COMPILER V7.50 CLOCK 09/20/2005 21:47:46 PAGE 4
179 *----------------------------------------------------------------------------
180 * REQUIREMENTS:
181 *****************************************************************************/
182 void clock_disable (void)
183 {
184 1 Pll_stop();
185 1 Mp3_set_clock(0);
186 1 Aud_set_clock(0);
187 1 Usb_set_clock(0);
188 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 314 ----
CONSTANT SIZE = 48 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 1
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 + -