multint.lst

来自「ADuC7020/26是ADI模拟公司开发的ARM7TDMI内核」· LST 代码 · 共 124 行

LST
124
字号
ARM COMPILER V0.20,  MultInt                                                               20/07/05  10:54:22  PAGE 1   


ARM COMPILER V0.20, COMPILATION OF MODULE MultInt
OBJECT MODULE PLACED IN MultInt.OBJ
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe MultInt.c THUMB DEBUG TABS(4) 

stmt  level    source

    1          /*********************************************************************
    2          
    3           Author        : ADI - Apps            www.analog.com/MicroConverter
    4          
    5           Date          : Feb. 2004
    6          
    7           File          : MultInt.c
    8          
    9           Hardware      : ADuC7026
   10          
   11           Description   : Example program using two IRQs and 1 FIQ.
   12                           Timer1 causes an IRQ which compliments P4.2.
   13                           XIRQ0 causes an IRQ which compliments P4.2.
   14                           ADC causes an FIQ which outputs the value on ADC0 
   15                           to DAC1.
   16                  
   17          *********************************************************************/
   18          
   19          #include <ADuC7026.h>                       //  Include ADuC7026 Header File
   20                                                      
   21          //  Function Prototypes
   22          
   23          void IRQ_Handler(void) __irq;               //  IRQ Function Prototype 
   24          void FIQ_Handler(void) __fiq;               //  FIQ Function Prototype
   25          void ADCpoweron(int);
   26          void delay(int);
   27          
   28           void DemoConfig(void);
   29           long ADCconvert(void);
   30           void My_IRQ_Function(void);
   31          
   32          // MAIN PROGRAM....
   33          
   34          int main (void)  {
   35   1      
   36   1          DemoConfig();                       // set up ADC, DAC, & reference
   37   1      
   38   1      
   39   1          GP0CON = 0x00100000;                // Enable ADCbusy on Pin 0.5
   40   1          GP4DAT = 0x04000000;                //  Configure P4.2 as output
   41   1          GP3DAT = 0xff000000;                //  Configure port 3 as output
   42   1                                              // Timer 1 configuration
   43   1          T1LD = 0x20000;                     // Counter Value
   44   1          T1CON = 0xC4;                       // Enabled,Periodic,Binary and CLK/16
   45   1      
   46   1          IRQEN = XIRQ0_BIT+GP_TIMER_BIT;     //  Enable XIRQ0 and Timer1 IRQ
   47   1          FIQEN = ADC_BIT;                    //  Enable ADC FIQ
   48   1      
   49   1          while(1)
   50   1          {
   51   2              GP3DAT ^= 0x00ff0000;           // Compliment P3 
   52   2              ADCCON = 0x4E3;                 // single conversion, ADC Speed = 1 MSPS
   53   2              delay(0x2000);                  // Delay Blinking of P3
   54   2          }
   55   1          
   56   1          return 0 ;
   57   1      }
   58          
   59          void delay (int length)
ARM COMPILER V0.20,  MultInt                                                               20/07/05  10:54:22  PAGE 2   

   60          {
   61   1      while (length >=0)
   62   1          length--;
   63   1      }
   64          
   65          void DemoConfig(void) {             // ADC, DAC and Reference configuration
   66   1          ADCpoweron(20000);              // power on ADC
   67   1          ADCCP = 0x00;                   // conversion on ADC0
   68   1          DAC1CON = 0x13;                 // AGND-AVDD range
   69   1          REFCON = 0x01;                  // internal 2.5V reference
   70   1          return;
   71   1      }
   72          
   73          void ADCpoweron(int time)
   74          {
   75   1          ADCCON = 0x20;                      // power-on the ADC
   76   1          while (time >=0)                    // wait for ADC to be fully powered on
   77   1          time--;
   78   1      }
   79          
   80          
   81          /********************************************************************/
   82          /*                                                                  */
   83          /*      Interrupt Service Rountine                                  */
   84          /*                                                                  */
   85          /********************************************************************/
   86          
   87          
   88          void IRQ_Handler() __irq                        // example with two IRQ
   89          {               
   90   1          if ((IRQSTA & GP_TIMER_BIT) != 0)           // Timer1 IRQ?
   91   1          {
   92   2              T1CLRI = 0;                             // Clear Timer IRQ
   93   2              GP4DAT ^= 0x00040000;                   // Complement P4.2
   94   2          }               
   95   1          if ((IRQSTA & XIRQ0_BIT) != 0)              // external IRQ?
   96   1          {   
   97   2              GP4DAT ^= 0x00040000;                   // Complement P4.2
   98   2              while(GP0DAT & 0x00010){}               // wait for XIRQ to be low again
   99   2          }            
  100   1          return ;
  101   1      } 
  102          
  103          void FIQ_Handler() __fiq                        // example with one FIQ         
  104          {                           
  105   1          if ((FIQSTA & ADC_BIT) != 0)                // ADC FIQ ?
  106   1          {   
  107   2              DAC1DAT = ADCDAT;                       // Output ADC0 Value onto DAC1
  108   2          }                                           // required to clear ADC interrupt
  109   1          return ;
  110   1      }

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

⌨️ 快捷键说明

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