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

📄 dac_drv.lst

📁 串口小程序
💻 LST
字号:
C51 COMPILER V7.02a   DAC_DRV                                                              09/13/2007 11:53:02 PAGE 1   


C51 COMPILER V7.02a, COMPILATION OF MODULE DAC_DRV
OBJECT MODULE PLACED IN dac_drv.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lib_refd\dac\dac_drv.c OPTIMIZE(7,SPEED) BROWSE INCDIR(.\modules\system;.\;
                    -.\;.\lib_refd) DEFINE(KEIL) DEBUG OBJECTEXTEND PRINT(.\dac_drv.lst) OBJECT(dac_drv.obj)

stmt level    source

   1          /*C**************************************************************************
   2          * NAME:         dac_drv.c
   3          *----------------------------------------------------------------------------
   4          * Copyright (c) 2003 Atmel.
   5          *----------------------------------------------------------------------------
   6          * RELEASE:      snd1c-refd-nf-4_0_3      
   7          * REVISION:     1.5     
   8          *----------------------------------------------------------------------------
   9          * PURPOSE:
  10          * This file contains routines to address UDA1330ATS in L3 mode
  11          *
  12          *****************************************************************************/
  13          
  14          /*_____ I N C L U D E S ____________________________________________________*/
  15          
  16          #include "config.h"                         /* lib configuration header */
  17          #include "board.h"                          /* board definition */
  18          #include "dac_drv.h"                        /* dac driver definition */
  19          
  20          /*_____ M A C R O S ________________________________________________________*/
  21          
  22          
  23          /*_____ D E F I N I T I O N ________________________________________________*/
  24          
  25          /*_____ D E C L A R A T I O N ______________________________________________*/
  26          
  27          extern unsigned char left_voi,right_voi;
  28          #ifdef DAC_L3MODE
  29          /*F**************************************************************************
  30          * NAME: dac_byte_send
  31          *----------------------------------------------------------------------------
  32          * PARAMS:
  33          *   b:   byte to send
  34          * return:
  35          *----------------------------------------------------------------------------
  36          * PURPOSE: 
  37          *   Serialize a data/cmd/addr byte on DAC_L3DATA & DAC_L3CLOCK pins.
  38          *----------------------------------------------------------------------------
  39          * NOTE:
  40          *   This function should only be used by dac_l3mode_send
  41          *----------------------------------------------------------------------------
  42          * REQUIREMENTS:
  43          *****************************************************************************/
  44          void dac_byte_send (Byte b)
  45          {
  46   1      Byte    c;
  47   1      
  48   1      for (c=8;c;c--)
  49   1        {
  50   2        DAC_L3DATA=(b&1); // practically 50% duty cycle
  51   2        DAC_L3CLOCK=0;
  52   2        b>>=1;
  53   2        DAC_L3CLOCK=1;    // data bit is sampled here (rising edge)
  54   2        }
C51 COMPILER V7.02a   DAC_DRV                                                              09/13/2007 11:53:02 PAGE 2   

  55   1      }
  56          
  57          
  58          /*F**************************************************************************
  59          * NAME: dac_l3mode_send
  60          *----------------------------------------------------------------------------
  61          * PARAMS:
  62          *   addr:   logical address of the chip (000101xxb for UDA1330)
  63          *   b:      data/cmd byte to send
  64          * return:
  65          *----------------------------------------------------------------------------
  66          * PURPOSE: 
  67          *   Send a L3-mode command to the DAC UDA1330
  68          *----------------------------------------------------------------------------
  69          * NOTE:
  70          *   This function improve the song quality (low level, decrease signal/noise).
  71          *----------------------------------------------------------------------------
  72          * REQUIREMENTS:
  73          *   Only tested with UDA1330ATS
  74          *****************************************************************************/
  75          void dac_l3mode_send (Byte addr,Byte b)
  76          {
  77   1      DAC_TEST=0;     // be carefull ! if DAC_TEST is set with DAC_APPSEL not set, I/O of UDA1330 change a lot
  78   1      DAC_APPSEL=0;   // Turn DAC in L3 mode
  79   1      DAC_L3MODE=1;   
  80   1      DAC_L3CLOCK=1;
  81   1      DAC_L3DATA=1;   // Normal state, basically, those three pins are already set
  82   1      // Begin Addr transfer
  83   1      DAC_L3MODE=0;
  84   1      dac_byte_send(addr);
  85   1      // Begin Data/Cmd transfer
  86   1      DAC_L3MODE=1;
  87   1      dac_byte_send(b);
  88   1      // Ack end of data/cmd transfer
  89   1      DAC_L3MODE=0;
  90   1      DAC_L3MODE=1;
  91   1      }
  92          
  93          /*F**************************************************************************
  94          * NAME: dac_set_vol
  95          *----------------------------------------------------------------------------
  96          * PARAMS:
  97          *
  98          * return:
  99          *----------------------------------------------------------------------------
 100          * PURPOSE: 
 101          *   Use the DAC to modify song level.
 102          *----------------------------------------------------------------------------
 103          * NOTE:
 104          *   This function must be call each time mp3_volume is changed
 105          *----------------------------------------------------------------------------
 106          * REQUIREMENTS:
 107          *****************************************************************************/
 108          void dac_set_vol (Byte volume)
 109          {
 110   1      if (volume>=32) volume=16; // security !
 111   1      if (volume<24)
 112   1        {
 113   2        MP3VOL = left_voi ;
 114   2        MP3VOR = right_voi;
 115   2        dac_l3mode_send(DAC_L3I_ADDR,64-(volume<<1)-volume+(volume>>2));
 116   2        }
C51 COMPILER V7.02a   DAC_DRV                                                              09/13/2007 11:53:02 PAGE 3   

 117   1      else
 118   1        {
 119   2        MP3VOL = MP3VOR = 15 + ((volume-23)<<1);
 120   2        dac_l3mode_send(DAC_L3I_ADDR,0);
 121   2        }
 122   1      }
 123          
 124          #endif
 125          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    108    ----
   CONSTANT SIZE    =   ----    ----
   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 + -