📄 clock.lst
字号:
C51 COMPILER V7.50 CLOCK 02/16/2009 09:59:54 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE CLOCK
OBJECT MODULE PLACED IN clock.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE lib_mcu\clock\clock.c LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.\clock.lst) OB
-JECT(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 "clock.h" /* clock definition */
24
25
26 /*_____ M A C R O S ________________________________________________________*/
27
28
29 /*_____ D E F I N I T I O N ________________________________________________*/
30
31
32 #if FOSC == 16000 /* Fpll= 16 * (R+1) / (N+1) */
St_clock code clock_div[8] =
{ 541, 47, 3, 15, _256Fs, /* Fs= 22.05 KHz, Fpll= 90.32 MHz, Fmp3= 22.58 MHz */
143, 24, 3, 9, _384Fs, /* Fs= 24 KHz, Fpll= 92.16 MHz, Fmp3= 23.04 MHz */
534, 94, 3, 21, _256Fs, /* Fs= 16 KHz, Fpll= 90.11 MHz, Fmp3= 22.53 MHz */
143, 24, 0, 29, _384Fs, /* Fs= 8 KHz, Fpll= 92.16 MHz, voice only */
541, 95, 3, 7, _256Fs, /* Fs= 44.1 KHz, Fpll= 90.32 MHz, Fmp3= 22.58 MHz */
143, 24, 3, 4, _384Fs, /* Fs= 48 KHz, Fpll= 92.16 MHz, Fmp3= 23.04 MHz */
534, 94, 3, 10, _256Fs, /* Fs= 32 KHz, Fpll= 90.11 MHz, Fmp3= 22.53 MHz */
11, 1, 1, 0, 0 /* USB only, Fpll= 96 MHz */
};
#endif
44
45 #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 */
C51 COMPILER V7.50 CLOCK 02/16/2009 09:59:54 PAGE 2
};
#endif
57
58 #if FOSC == 20000 /* Fpll= 20 * (R+1) / (N+1) */
59 St_clock code clock_div[8] =
60 { 126, 24, 3, 11, _384Fs, /* Fs= 22.05 KHz, Fpll= 101.6 MHz, Fmp3= 25.4 MHz */
61 575, 124, 3, 9, _384Fs, /* Fs= 24 KHz, Fpll= 92.16 MHz, Fmp3= 23.04 MHz */
62 511, 124, 3, 19, _256Fs, /* Fs= 16 KHz, Fpll= 81.92 MHz, Fmp3= 20.48 MHz */
63 575, 124, 0, 29, _384Fs, /* Fs= 8 KHz, Fpll= 92.16 MHz, voice only */
64 126, 24, 3, 5, _384Fs, /* Fs= 44.1 KHz, Fpll= 101.6 MHz, Fmp3= 25.4 MHz */
65 575, 124, 3, 4, _384Fs, /* Fs= 48 KHz, Fpll= 92.16 MHz, Fmp3= 23.04 MHz */
66 511, 124, 3, 9, _256Fs, /* Fs= 32 KHz, Fpll= 81.92 MHz, Fmp3= 20.48 MHz */
67 23, 4, 1, 0, 0 /* USB only, Fpll= 96 MHz */
68 };
69 #endif
70 /*_____ D E C L A R A T I O N ______________________________________________*/
71
72
73 /*F**************************************************************************
74 * NAME: clock_song_init
75 *----------------------------------------------------------------------------
76 * PARAMS:
77 * freq: 0 -> 22.05 KHz
78 * 1 -> 24 KHz
79 * 2 -> 16 KHz
80 * 3 -> unused
81 * 4 -> 44.1 KHz
82 * 5 -> 48 KHz
83 * 6 -> 32 KHz
84 * 7 -> unused
85 *
86 * return:
87 *----------------------------------------------------------------------------
88 * PURPOSE:
89 * Song clock initialization
90 *----------------------------------------------------------------------------
91 * EXAMPLE:
92 *----------------------------------------------------------------------------
93 * NOTE:
94 * freq is an index in the table giving the divider values
95 *----------------------------------------------------------------------------
96 * REQUIREMENTS:
97 *****************************************************************************/
98 void clock_song_init (Byte freq)
99 {
100 1 /*Pll_set_rdiv(440);
101 1 Pll_set_ndiv(24);
102 1 Pll_enable();
103 1 Mp3_set_clock(10);
104 1 Aud_set_clock(24);*/
105 1
106 1 Pll_set_ndiv(clock_div[freq].n_div);
107 1 Pll_set_rdiv(clock_div[freq].r_div);
108 1 Pll_enable();
109 1 Mp3_set_clock(clock_div[freq].mp3_div);
110 1 Aud_set_clock(clock_div[freq].aud_div);
111 1 Aud_set_oversamp(clock_div[freq].dac_over); /* init HLR bit */
112 1 }
113
114
115 /*F**************************************************************************
116 * NAME: clock_voice_init
C51 COMPILER V7.50 CLOCK 02/16/2009 09:59:54 PAGE 3
117 *----------------------------------------------------------------------------
118 * PARAMS:
119 *
120 * return:
121 *----------------------------------------------------------------------------
122 * PURPOSE:
123 * Voice clock initialization
124 *----------------------------------------------------------------------------
125 * EXAMPLE:
126 *----------------------------------------------------------------------------
127 * NOTE:
128 *----------------------------------------------------------------------------
129 * REQUIREMENTS:
130
131 *****************************************************************************/
132 void clock_voice_init (void)
133 {
134 1 Pll_set_ndiv(clock_div[VOC_FREQ].n_div);
135 1 Pll_set_rdiv(clock_div[VOC_FREQ].r_div);
136 1 Pll_enable();
137 1 Aud_set_clock(clock_div[VOC_FREQ].aud_div);
138 1 Aud_set_oversamp(clock_div[VOC_FREQ].dac_over); /* init HLR bit */
139 1 }
140
141
142 /*F**************************************************************************
143 * NAME: clock_usb_init
144 *----------------------------------------------------------------------------
145 * PARAMS:
146 *
147 * return:
148 *----------------------------------------------------------------------------
149 * PURPOSE:
150 * USB clock initialization
151 *----------------------------------------------------------------------------
152 * EXAMPLE:
153 *----------------------------------------------------------------------------
154 * NOTE:
155 *----------------------------------------------------------------------------
156 * REQUIREMENTS:
157
158 *****************************************************************************/
159 void clock_usb_init (void)
160 {
161 1 Pll_set_ndiv(clock_div[USB_FREQ].n_div);
162 1 Pll_set_rdiv(clock_div[USB_FREQ].r_div);
163 1 Pll_enable();
164 1 Usb_set_clock(clock_div[USB_FREQ].mp3_div); /* mp3_div = usb_div */
165 1 }
166
167
168 /*F**************************************************************************
169 * NAME: clock_disable
170 *----------------------------------------------------------------------------
171 * PARAMS:
172 *
173 * return:
174 *----------------------------------------------------------------------------
175 * PURPOSE:
176 * Clocks stop
177 *----------------------------------------------------------------------------
178 * EXAMPLE:
C51 COMPILER V7.50 CLOCK 02/16/2009 09:59:54 PAGE 4
179 *----------------------------------------------------------------------------
180 * NOTE:
181 *----------------------------------------------------------------------------
182 * REQUIREMENTS:
183 *****************************************************************************/
184 void clock_disable (void)
185 {
186 1 Pll_stop();
187 1 Mp3_set_clock(0);
188 1 Aud_set_clock(0);
189 1 Usb_set_clock(0);
190 1 }
191
192
193
194 /////////////////////////////////////////////////////////////////////////////
195 void clock_vDelay(INT32U u32Time)
196 {
197 1 INT32U i;
198 1 for(i=0; i<u32Time; i++);
199 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 340 ----
CONSTANT SIZE = 48 ----
XDATA SIZE = ---- 8
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 + -