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

📄 interrupt.lst

📁 mp3播放器
💻 LST
字号:
C51 COMPILER V8.08   INTERRUPT                                                             07/28/2007 11:42:16 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE INTERRUPT
OBJECT MODULE PLACED IN interrupt.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE interrupt.c OMF2 OPTIMIZE(6,SPEED) BROWSE VARBANKING DEBUG

line level    source

   1          #include "dp8051.h"
   2          #include "config.h"
   3          #include "absacc.h"
   4          #include "constant.h"
   5          #include "variable.h"
   6          #include "function.h"
   7          #include "sdhost.h"
   8          #include "sssmp3_regs.h"
   9          #include "fat.h"
  10          #include "mp3_appl.h"
  11          /************************************************
  12          函 数 名: Timer0_ISR()
  13          功    能:Timer0中断处理
  14          说    明:
  15          调    用:
  16          全局变量:
  17          入口参数:无
  18          出口参数:无
  19          返 回 值:无
  20          ************************************************/
  21          void Timer0_ISR(void) interrupt 1
  22          {
  23   1        //TR0 = 0;
  24   1        TH0 = 0xD8;//0x3C;
  25   1        TL0 = 0xF0;//0xB0;
  26   1      
  27   1        Timer0_Flag = 1;
  28   1      
  29   1        //TR0 = 1;
  30   1      }
  31          /************************************************
  32          函 数 名: MP3_ISR()
  33          功    能:MP3中断处理
  34          说    明:
  35          调    用:
  36          全局变量:
  37          入口参数:无
  38          出口参数:无
  39          返 回 值:无
  40          ************************************************/
  41          // MP3 Decoder Interrupt
  42          void MP3_ISR(void) interrupt 8//EXTERNAL INT3, Vector address at 0x0043
  43          {
  44   1        MP3_ISR_Flag = 1;
  45   1        tmpINT3 |= MP3_INT_FLAG & 0x3F;
  46   1        MP3_INT_CLR = 0x3F;//Clear MP3 interrupt
  47   1      }
  48          /************************************************
  49          函 数 名: MP3_deal()
  50          功    能:MP3中断处理
  51          说    明:
  52          调    用:
  53          全局变量:
  54          入口参数:无
  55          出口参数:无
C51 COMPILER V8.08   INTERRUPT                                                             07/28/2007 11:42:16 PAGE 2   

  56          返 回 值:无
  57          ************************************************/
  58          // MP3 Decoder Interrupt
  59          #pragma disable
  60          void MP3_deal(void)
  61          {
  62   1        if(tmpINT3 & IFFC)//FrameLock_Clear
  63   1        {                     
  64   2              tmpINT3 &= ~IFFC;
  65   2          return;
  66   2        }
  67   1      
  68   1        if(tmpINT3 & IFEMPTY)//PCM_FIFO_Empty
  69   1        {
  70   2          MP3_CTL |= (MP3_CLR | MUTE);//(1) Must follows procedure -> Reset for MP3 decoder
  71   2          MP3_FIFOCTL = 0x00;//(2) PCM_output FIFO Disable    
  72   2          MP3_I2S_CTL = 0x00;//(3) I2S Disable             
  73   2          MP3_DMACTL = DMA_CLR;//(4)Clear DMA STM
  74   2          MP3_DMACTL = 0x00;//(5)     
  75   2              tmpINT3 = 0;
  76   2              //EIE = 0x00;//Disable INT3
  77   2              //CLASS_D_DAC_CTL = (SUSPEND | PAUSE);// suspend & Mute Class-D
  78   2              //MP3_INT_EN = 0x00;
  79   2              varAl.SystemFlag |= END_FILEADDR_FLAG;
  80   2          return;
  81   2        }     
  82   1      
  83   1        if(tmpINT3 & IFL)//Left_DMA_Empty -> prepare Right DMA & move data into Left DMA buffer 
  84   1        {
  85   2          // set-up MP3 Right DMA 
  86   2          MP3_DMASTART0700_RIGHT = 0x00;
  87   2          MP3_DMASTART1508_RIGHT = 0x00;
  88   2      
  89   2          MP3_DMALEN0700_RIGHT = 0xFF;
  90   2          MP3_DMALEN1508_RIGHT = 0x01;//-> 0x0 ~ 0x01FF= 512 Bytes
  91   2         
  92   2          //move data to Left DMA Buffer            
  93   2          if( FileData.dwMovedDataToBuffSizeCNT < FileData.dwFileDataSize)
  94   2              {
  95   3                if(varAl.SystemFlag & END_FILEADDR_FLAG)
  96   3                  MP3_CTL |= (MP3_CLR | MUTE);
  97   3                else
  98   3                {
  99   4                  MP3_DMACTL = DMA_READY_R;
 100   4                      FileData.dwMovedDataToBuffSizeCNT += CFatData.wBytesPerSec;
 101   4              ReadSector(FileData.dwCurSecLba++,0x05);
 102   4                }
 103   3          }
 104   2          else//FIFO Empty Flag can not rise-up if we disable FIFOCTL in follows...@0927        
 105   2                varAl.SystemFlag |= END_FILEADDR_FLAG;//prepare to disable DMA_CTL 
 106   2      
 107   2              tmpINT3 &= ~IFL;
 108   2          return;
 109   2        }
 110   1         
 111   1        if(tmpINT3 & IFR)//Righ_DMA_Empty -> prepare Left DMA & move data into Right DMA Buffer 
 112   1        {
 113   2          // set-up MP3 Left DMA 
 114   2          MP3_DMASTART0700_LEFT = 0x00;
 115   2          MP3_DMASTART1508_LEFT = 0x00; 
 116   2      
 117   2          MP3_DMALEN0700_LEFT = 0xFF;     
C51 COMPILER V8.08   INTERRUPT                                                             07/28/2007 11:42:16 PAGE 3   

 118   2          MP3_DMALEN1508_LEFT = 0x01;//-> 0x0 ~ 0x01FF= 512 Bytes 
 119   2          
 120   2          if(FileData.dwMovedDataToBuffSizeCNT < FileData.dwFileDataSize)
 121   2              {
 122   3                if(varAl.SystemFlag & END_FILEADDR_FLAG)
 123   3                  MP3_CTL |= (MP3_CLR | MUTE);
 124   3                else
 125   3                {
 126   4                  MP3_DMACTL = DMA_READY_L;
 127   4                      FileData.dwMovedDataToBuffSizeCNT += CFatData.wBytesPerSec;
 128   4              ReadSector(FileData.dwCurSecLba++,0x06);
 129   4                }
 130   3          }
 131   2          else//FIFO Empty Flag can not rise-up if we disable FIFOCTL in follows...@0927        
 132   2                varAl.SystemFlag |= END_FILEADDR_FLAG;//prepare to disable DMA_CTL 
 133   2              
 134   2              tmpINT3 &= ~IFR;     
 135   2          return;     
 136   2        }
 137   1            
 138   1        if(tmpINT3 & IFFS)//FrameLock_Set  
 139   1        {
 140   2          CLASS_D_DAC_CTL = MP3_STATUS0 & 0x70;
 141   2      
 142   2          MP3_FIFOCTL = FIFO_EN;//PCM_output FIFO enable     
 143   2              tmpINT3 &= ~IFFS;
 144   2          return;     
 145   2        }
 146   1      
 147   1        if(tmpINT3 & IFOK)//PCM_FIFO_Buffer_OK   
 148   1        {
 149   2          //MP3_I2S_RATE = 0x07;
 150   2          //MP3_I2S_DUTY = 0x04;
 151   2              MP3_I2S_CTL = 0x00;//for Class-D in Parallel Mode         
 152   2              tmpINT3 &= ~IFOK;
 153   2          return;
 154   2        }
 155   1      }
 156          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    438    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
   EDATA SIZE       =   ----    ----
   HDATA SIZE       =   ----    ----
   XDATA CONST SIZE =   ----    ----
   FAR CONST SIZE   =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -