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

📄 adcont.lst

📁 aduc7026裸机程序
💻 LST
字号:
ARM COMPILER V2.42,  ADCONT                                                                17/01/09  22:24:15  PAGE 1   


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

stmt  level    source

    1          #include "main.h"
    2          
    3          void ADCInit()
    4          {
    5   1          unsigned int tmpc = 5000;
    6   1          ADCCON = 0x23;  
    7   1          while(tmpc-- > 0);
    8   1      
    9   1          ADCCP  = 0x00;
   10   1          REFCON = 0x01;
   11   1      }
   12          
   13          unsigned int ADCData()
   14          {
   15   1          unsigned int val = 0;
   16   1          ADCCON  = 0x00A3;
   17   1          while(!(ADCSTA & 0x01));
   18   1          ADCCON  = 0x0020;
   19   1          val     = ADCDAT >> 16;
   20   1          return val;
   21   1      }
   22          
   23          unsigned int ADCChannel(unsigned char ch)
   24          {
   25   1          ADCCP = (ch & 0x1F);
   26   1          return ADCData();
   27   1      }
ARM COMPILER V2.42,  ADCONT                                                                17/01/09  22:24:15  PAGE 2   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** PUBLICS:
 PUBLIC         ADCInit?T
 PUBLIC         ADCData?T
 PUBLIC         ADCChannel?T



*** CODE SEGMENT '?PR?ADCInit?T?ADCONT':
    4: {
 00000000            ; SCOPE-START
    5:     unsigned int tmpc = 5000;
 00000000  4800      LDR         R0,=0x1388
 00000002  ---- Variable 'tmpc' assigned to Register 'R0' ----
    6:     ADCCON = 0x23;  
 00000002  2223      MOV         R2,#0x23
 00000004  4800      LDR         R1,=0xFFFF0500
 00000006  600A      STR         R2,[R1,#0x0]
    7:     while(tmpc-- > 0);
 00000008          L_1:
 00000008  1C01      MOV         R1,R0 ; tmpc
 0000000A  3801      SUB         R0,#0x1
 0000000C  2900      CMP         R1,#0x0 ; tmpc
 0000000E  D8FB      BHI         L_1  ; T=0x00000008
    9:     ADCCP  = 0x00;
 00000010  2100      MOV         R1,#0x0
 00000012  4800      LDR         R0,=0xFFFF0504
 00000014  6001      STR         R1,[R0,#0x0]
   10:     REFCON = 0x01;
 00000016  2101      MOV         R1,#0x1
 00000018  4800      LDR         R0,=0xFFFF048C
 0000001A  6001      STR         R1,[R0,#0x0]
 0000001C            ; SCOPE-END
   11: }
 0000001C  4770      BX          R14
 0000001E          ENDP ; 'ADCInit?T'


*** CODE SEGMENT '?PR?ADCData?T?ADCONT':
   14: {
 00000000            ; SCOPE-START
   15:     unsigned int val = 0;
 00000000  2100      MOV         R1,#0x0
 00000002  ---- Variable 'val' assigned to Register 'R1' ----
   16:     ADCCON  = 0x00A3;
 00000002  22A3      MOV         R2,#0xA3
 00000004  4800      LDR         R0,=0xFFFF0500
 00000006  6002      STR         R2,[R0,#0x0]
   17:     while(!(ADCSTA & 0x01));
 00000008          L_5:
 00000008  4800      LDR         R0,=0xFFFF050C
 0000000A  6800      LDR         R0,[R0,#0x0]
 0000000C  2201      MOV         R2,#0x1
 0000000E  4210      TST         R0,R2
 00000010  D0FA      BEQ         L_5  ; T=0x00000008
   18:     ADCCON  = 0x0020;
 00000012  2120      MOV         R1,#0x20
 00000014  4800      LDR         R0,=0xFFFF0500
 00000016  6001      STR         R1,[R0,#0x0]
   19:     val     = ADCDAT >> 16;
 00000018  4800      LDR         R0,=0xFFFF0510
 0000001A  6801      LDR         R1,[R0,#0x0]
 0000001C  0C09      LSR         R1,R1,#0x10
   20:     return val;
 0000001E  1C08      MOV         R0,R1 ; val
 00000020            ; SCOPE-END
   21: }
 00000020  4770      BX          R14
ARM COMPILER V2.42,  ADCONT                                                                17/01/09  22:24:15  PAGE 3   

 00000022          ENDP ; 'ADCData?T'


*** CODE SEGMENT '?PR?ADCChannel?T?ADCONT':
   23: unsigned int ADCChannel(unsigned char ch)
 00000000  B500      PUSH        {LR}
 00000002  1C01      MOV         R1,R0 ; ch
 00000004  ---- Variable 'ch' assigned to Register 'R1' ----
   25:     ADCCP = (ch & 0x1F);
 00000004  1C08      MOV         R0,R1 ; ch
 00000006  0601      LSL         R1,R0,#0x18 ; ch
 00000008  0E09      LSR         R1,R1,#0x18
 0000000A  201F      MOV         R0,#0x1F
 0000000C  4001      AND         R1,R0
 0000000E  4800      LDR         R0,=0xFFFF0504
 00000010  6001      STR         R1,[R0,#0x0]
   26:     return ADCData();
 00000012  F7FF      BL          ADCData?T  ; T=0x0001  (1)
 00000014  FFF5      BL          ADCData?T  ; T=0x0001  (2)
 00000016  BC08      POP         {R3}
 00000018  4718      BX          R3
 0000001A          ENDP ; 'ADCChannel?T'



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


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

⌨️ 快捷键说明

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