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

📄 adc.lst

📁 Philips LPC22xx A/D Example Program
💻 LST
字号:
ARM COMPILER V2.20a,  ADC                                                                  21/04/05  14:01:17  PAGE 1   


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

stmt  level    source

    1          
    2          #include <lpc22xx.h>                    /* LPC2200 definitions             */
    3          #include <stdio.h>                      /* standard I/O .h-file            */
    4          #define VREF  3
    5          
    6          unsigned int val;
    7          
    8          
    9          extern void init_serial (void);  
   10          
   11          
   12          int main(void) {
   13   1      
   14   1      init_serial();                            /* Initialize Serial Interface */
   15   1      
   16   1      
   17   1      /* Setup the A/D converter */
   18   1      IODIR1 = 0x00FF0000;                   /* P1.16..23 defined as Outputs       */
   19   1      VPBDIV = 0x02;                         /*Set the Pclk to 30 Mhz              */
   20   1      ADCR   = 0x00210601;                   /* Setup A/D: 10-bit AIN0 @ 3MHz      */
   21   1      
   22   1      
   23   1      while(1) {
   24   2      
   25   2      ADCR  |= 0x01000000;                   /* Start A/D Conversion               */
   26   2      while ((ADDR & 0x80000000) == 0);      /*Wait for the conversion to complete */
   27   2      val = ((ADDR >> 6) & 0x03FF);          /*Extract the A/D result              */
   28   2      
   29   2        printf ("Digital Value %4u = %01u.%04u Volts\r",
   30   2               (unsigned) val,
   31   2               (unsigned) (val * VREF) >> 10,                          /* Output Integer Portion */
   32   2               (unsigned) ((val * VREF * 10000UL) >> 10UL) % 10000);   /* Output Decimal Portion */
   33   2      
   34   2        }
   35   1      
   36   1      }
ARM COMPILER V2.20a,  ADC                                                                  21/04/05  14:01:17  PAGE 2   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN CODE16 (printf?T)
 EXTERN CODE16 (init_serial?T)
 EXTERN NUMBER (__startup)
 EXTERN CODE16 (?C?UDIV?T)



*** PUBLICS:
 PUBLIC         main
 PUBLIC         val



*** DATA SEGMENT '?CON?ADC':
 00000000          ??S_1:
 00000000            DB          'Digital Value %4u = %01u.%04u Volts',0x0D
 00000024            DB          0x00

*** DATA SEGMENT '?DT0?ADC':
 00000000          val:
 00000000            DS          4



*** CODE SEGMENT '?PR?main?ADC':
   12: int main(void) {
 00000000  B500      PUSH        {LR}
   14: init_serial();                            /* Initialize Serial Interface */
 00000002  F7FF      BL          init_serial?T  ; T=0x0001  (1)
 00000004  FFFD      BL          init_serial?T  ; T=0x0001  (2)
   18: IODIR1 = 0x00FF0000;                   /* P1.16..23 defined as Outputs       */
 00000006  4800      LDR         R1,=0xFF0000
 00000008  4800      LDR         R0,=0xE0028018
 0000000A  6001      STR         R1,[R0,#0x0]
   19: VPBDIV = 0x02;                         /*Set the Pclk to 30 Mhz              */
 0000000C  2102      MOV         R1,#0x2
 0000000E  4800      LDR         R0,=0xE01FC100
 00000010  7001      STRB        R1,[R0,#0x0]
   20: ADCR   = 0x00210601;                   /* Setup A/D: 10-bit AIN0 @ 3MHz      */
 00000012  4800      LDR         R1,=0x210601
 00000014  4800      LDR         R0,=0xE0034000
 00000016  6001      STR         R1,[R0,#0x0]
   23: while(1) {
 00000018          L_3:
   25: ADCR  |= 0x01000000;                   /* Start A/D Conversion               */
 00000018  4800      LDR         R2,=0x1000000
 0000001A  4800      LDR         R0,=0xE0034000
 0000001C  6801      LDR         R1,[R0,#0x0]
 0000001E  4311      ORR         R1,R2
 00000020  6001      STR         R1,[R0,#0x0]
   26: while ((ADDR & 0x80000000) == 0);      /*Wait for the conversion to complete */
 00000022          L_5:
 00000022  4800      LDR         R0,=0xE0034004
 00000024  6800      LDR         R0,[R0,#0x0]
 00000026  4800      LDR         R1,=0x80000000
 00000028  4208      TST         R0,R1
 0000002A  D0FA      BEQ         L_5  ; T=0x00000022
   27: val = ((ADDR >> 6) & 0x03FF);          /*Extract the A/D result              */
 0000002C  4800      LDR         R0,=0xE0034004
 0000002E  6801      LDR         R1,[R0,#0x0]
 00000030  0989      LSR         R1,R1,#0x6
 00000032  4800      LDR         R0,=0x3FF
 00000034  4001      AND         R1,R0
 00000036  4800      LDR         R0,=val ; val
 00000038  6001      STR         R1,[R0,#0x0] ; val
   32:          (unsigned) ((val * VREF * 10000UL) >> 10UL) % 10000);   /* Output Decimal Portion */
 0000003A  4800      LDR         R0,=val ; val
 0000003C  6804      LDR         R4,[R0,#0x0] ; val
 0000003E  2203      MOV         R2,#0x3
ARM COMPILER V2.20a,  ADC                                                                  21/04/05  14:01:17  PAGE 3   

 00000040  4362      MUL         R2,R4
 00000042  1C10      MOV         R0,R2
 00000044  4800      LDR         R1,=0x2710
 00000046  4348      MUL         R0,R1
 00000048  0A80      LSR         R0,R0,#0xA
 0000004A  4800      LDR         R1,=0x2710
 0000004C  F7FF      BL          ?C?UDIV?T  ; T=0x0001  (1) ; ?C?UDIV?T
 0000004E  FFD8      BL          ?C?UDIV?T  ; T=0x0001  (2) ; ?C?UDIV?T
 00000050  1C01      MOV         R1,R0
 00000052  1C0B      MOV         R3,R1
 00000054  0A92      LSR         R2,R2,#0xA
 00000056  4800      LDR         R0,=??S_1 ; ??S_1
 00000058  1C21      MOV         R1,R4
 0000005A  F7FF      BL          printf?T  ; T=0x0001  (1)
 0000005C  FFD1      BL          printf?T  ; T=0x0001  (2)
   34:   }
 0000005E  E7DB      B           L_3  ; T=0x00000018
   36: }
 00000060  BC08      POP         {R3}
 00000062  4718      BX          R3
 00000064          ENDP ; 'main'



Module Information          Static
----------------------------------
  code size            =    ------
  data size            =         4
  const size           =        37
End of Module Information.


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

⌨️ 快捷键说明

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