⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clock.lst

📁 atmel at89c51snd1c mp3芯片方案源码
💻 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 + -