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