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

📄 adc.lst

📁 pulse width modulation code using servo motor
💻 LST
字号:
ARM COMPILER V2.32a,  adc                                                                  20/03/09  16:23:40  PAGE 1   


ARM COMPILER V2.32a, 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          #include <LPC21xx.H> // LPC21xx definitions
    2          extern void UART0_Init(void);
    3          extern void Print(unsigned short w);
    4          extern void PrintString(const char *s);
    5          static unsigned short ADC_Read(unsigned char ch)
    6          {
    7   1      unsigned int i;
    8   1      ADCR = 0x00200300 | ch; // Init ADC (Pclk = 12MHz) and select channel
    9   1      ADCR |= 0x01000000; // Start A/D Conversion
   10   1      do
   11   1      {
   12   2      i = ADDR; // Read A/D Data Register
   13   2          } while ((i & 0x80000000) == 0); // Wait for end of A/D Conversion
   14   1          return (i >> 6) & 0x03FF; // bit 6:15 is 10 bit AD value
   15   1      }
   16          int main(void)
   17          {
   18   1          UART0_Init(); // Initialize UART0
   19   1          PrintString("\nLPC2129 ADC test:\n\n"
   20   1          "AIN0 AIN1 AIN2 AIN3\n\n");
   21   1      while (1)
   22   1      {
   23   2          Print(ADC_Read(1)); // convert and print channel AIN0
   24   2          PrintString(" ");
   25   2          Print(ADC_Read(2)); // convert and print channel AIN1
   26   2          PrintString(" ");
   27   2          Print(ADC_Read(4)); // convert and print channel AIN2
   28   2          PrintString(" ");
   29   2          Print(ADC_Read(8)); // convert and print channel AIN3
   30   2          PrintString("\r");
   31   2      }
   32   1      }
ARM COMPILER V2.32a,  adc                                                                  20/03/09  16:23:40  PAGE 2   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN CODE16 (UART0_Init?T)
 EXTERN CODE16 (Print?T)
 EXTERN CODE16 (PrintString?T)
 EXTERN NUMBER (__startup)



*** PUBLICS:
 PUBLIC         main



*** DATA SEGMENT '?CON?adc':
 00000000          ??S_3:
 00000000            DB          0x0D,0x00
 00000002          ??S_2:
 00000002            DB          ' ',0x00
 00000004          ??S_1:
 00000004            DB          0x0A,'LPC2129 ADC test:',0x0A,0x0A,'AIN'
 0000001B            DB          '0 AIN1 AIN2 AIN3',0x0A,0x0A,0x00

*** CODE SEGMENT '?PR?ADC_Read?T?adc':
    5: static unsigned short ADC_Read(unsigned char ch)
 00000000  1C01      MOV         R1,R0 ; ch
 00000002  ---- Variable 'ch' assigned to Register 'R1' ----
    6: {
 00000002            ; SCOPE-START
    8: ADCR = 0x00200300 | ch; // Init ADC (Pclk = 12MHz) and select channel
 00000002  1C08      MOV         R0,R1 ; ch
 00000004  0601      LSL         R1,R0,#0x18 ; ch
 00000006  0E09      LSR         R1,R1,#0x18
 00000008  4800      LDR         R0,=0x200300
 0000000A  4301      ORR         R1,R0
 0000000C  4800      LDR         R0,=0xE0034000
 0000000E  6001      STR         R1,[R0,#0x0]
    9: ADCR |= 0x01000000; // Start A/D Conversion
 00000010  4800      LDR         R2,=0x1000000
 00000012  4800      LDR         R0,=0xE0034000
 00000014  6801      LDR         R1,[R0,#0x0]
 00000016  4311      ORR         R1,R2
 00000018  6001      STR         R1,[R0,#0x0]
   10: do
 0000001A          L_1:
   12: i = ADDR; // Read A/D Data Register
 0000001A  4800      LDR         R0,=0xE0034004
 0000001C  6801      LDR         R1,[R0,#0x0]
 0000001E  ---- Variable 'i' assigned to Register 'R1' ----
   13:     } while ((i & 0x80000000) == 0); // Wait for end of A/D Conversion
 0000001E  1C08      MOV         R0,R1 ; i
 00000020  4800      LDR         R2,=0x80000000
 00000022  4210      TST         R0,R2 ; i
 00000024  D0F9      BEQ         L_1  ; T=0x0000001A
   14:     return (i >> 6) & 0x03FF; // bit 6:15 is 10 bit AD value
 00000026  1C08      MOV         R0,R1 ; i
 00000028  0980      LSR         R0,R0,#0x6 ; i
 0000002A  4800      LDR         R1,=0x3FF
 0000002C  4008      AND         R0,R1
 0000002E            ; SCOPE-END
   15: }
 0000002E  4770      BX          R14
 00000030          ENDP ; 'ADC_Read?T'


*** CODE SEGMENT '?PR?main?adc':
   16: int main(void)
 00000000  B500      PUSH        {LR}
   18:     UART0_Init(); // Initialize UART0
 00000002  F7FF      BL          UART0_Init?T  ; T=0x0001  (1)
 00000004  FFFD      BL          UART0_Init?T  ; T=0x0001  (2)
ARM COMPILER V2.32a,  adc                                                                  20/03/09  16:23:40  PAGE 3   

   19:     PrintString("\nLPC2129 ADC test:\n\n"
 00000006  4800      LDR         R0,=??S_1 ; ??S_1
 00000008  F7FF      BL          PrintString?T  ; T=0x0001  (1)
 0000000A  FFFA      BL          PrintString?T  ; T=0x0001  (2)
   21: while (1)
 0000000C          L_8:
   23:     Print(ADC_Read(1)); // convert and print channel AIN0
 0000000C  2001      MOV         R0,#0x1
 0000000E  F7FF      BL          ADC_Read?T  ; T=0x0001  (1)
 00000010  FFF7      BL          ADC_Read?T  ; T=0x0001  (2)
 00000012  0400      LSL         R0,R0,#0x10 ; ADC_Read?T
 00000014  0C00      LSR         R0,R0,#0x10
 00000016  F7FF      BL          Print?T  ; T=0x0001  (1)
 00000018  FFF3      BL          Print?T  ; T=0x0001  (2)
   24:     PrintString(" ");
 0000001A  4800      LDR         R0,=??S_2 ; ??S_2
 0000001C  F7FF      BL          PrintString?T  ; T=0x0001  (1)
 0000001E  FFF0      BL          PrintString?T  ; T=0x0001  (2)
   25:     Print(ADC_Read(2)); // convert and print channel AIN1
 00000020  2002      MOV         R0,#0x2
 00000022  F7FF      BL          ADC_Read?T  ; T=0x0001  (1)
 00000024  FFED      BL          ADC_Read?T  ; T=0x0001  (2)
 00000026  0400      LSL         R0,R0,#0x10 ; ADC_Read?T
 00000028  0C00      LSR         R0,R0,#0x10
 0000002A  F7FF      BL          Print?T  ; T=0x0001  (1)
 0000002C  FFE9      BL          Print?T  ; T=0x0001  (2)
   26:     PrintString(" ");
 0000002E  4800      LDR         R0,=??S_2 ; ??S_2
 00000030  F7FF      BL          PrintString?T  ; T=0x0001  (1)
 00000032  FFE6      BL          PrintString?T  ; T=0x0001  (2)
   27:     Print(ADC_Read(4)); // convert and print channel AIN2
 00000034  2004      MOV         R0,#0x4
 00000036  F7FF      BL          ADC_Read?T  ; T=0x0001  (1)
 00000038  FFE3      BL          ADC_Read?T  ; T=0x0001  (2)
 0000003A  0400      LSL         R0,R0,#0x10 ; ADC_Read?T
 0000003C  0C00      LSR         R0,R0,#0x10
 0000003E  F7FF      BL          Print?T  ; T=0x0001  (1)
 00000040  FFDF      BL          Print?T  ; T=0x0001  (2)
   28:     PrintString(" ");
 00000042  4800      LDR         R0,=??S_2 ; ??S_2
 00000044  F7FF      BL          PrintString?T  ; T=0x0001  (1)
 00000046  FFDC      BL          PrintString?T  ; T=0x0001  (2)
   29:     Print(ADC_Read(8)); // convert and print channel AIN3
 00000048  2008      MOV         R0,#0x8
 0000004A  F7FF      BL          ADC_Read?T  ; T=0x0001  (1)
 0000004C  FFD9      BL          ADC_Read?T  ; T=0x0001  (2)
 0000004E  0400      LSL         R0,R0,#0x10 ; ADC_Read?T
 00000050  0C00      LSR         R0,R0,#0x10
 00000052  F7FF      BL          Print?T  ; T=0x0001  (1)
 00000054  FFD5      BL          Print?T  ; T=0x0001  (2)
   30:     PrintString("\r");
 00000056  4800      LDR         R0,=??S_3 ; ??S_3
 00000058  F7FF      BL          PrintString?T  ; T=0x0001  (1)
 0000005A  FFD2      BL          PrintString?T  ; T=0x0001  (2)
   31: }
 0000005C  E7D6      B           L_8  ; T=0x0000000C
 0000005E  BC08      POP         {R3}
 00000060  4718      BX          R3
 00000062          ENDP ; 'main'



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

ARM COMPILER V2.32a,  adc                                                                  20/03/09  16:23:40  PAGE 4   


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

⌨️ 快捷键说明

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