📄 adcont.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 + -