📄 main.lst
字号:
ARM COMPILER V2.00f, main 20/02/05 14:13:48 PAGE 1
ARM COMPILER V2.00f, COMPILATION OF MODULE main
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe main.c ARM BROWSE DEBUG TABS(4)
stmt level source
1 #include <math.h>
2 #include <LPC213X.H>
3 void init_timer (void);
4
5 void main(void)
6 {
7 1 unsigned int val;
8 1 unsigned char index,loop;
9 1 VPBDIV = 0x02; //Set the Pclk to 30 Mhz
10 1 IODIR1 = 0x00FF0000; // P1.16..23 defined as Outputs
11 1 AD0CR = 0x00250601; // Setup A/D: 10-bit AIN0 @ 3MHz
12 1 AD0CR |= 0x01000000; // Start A/D Conversion
13 1
14 1 while(1)
15 1 {
16 2 for(index = 0;index<80;index++)
17 2 {
18 3 do
19 3 {
20 4 val = AD0DR; // Read A/D Data Register
21 4 }
22 3 while ((val & 0x80000000) == 0); //Wait for the conversion to complete
23 3
24 3 DACR = val;
25 3 }
26 2
27 2 }
28 1
29 1 }
30
ARM COMPILER V2.00f, main 20/02/05 14:13:48 PAGE 2
ASSEMBLY LISTING OF GENERATED OBJECT CODE
*** EXTERNALS:
EXTERN NUMBER (__startup)
*** PUBLICS:
PUBLIC main
*** CODE SEGMENT '?PR?main?main':
5: void main(void)
00000000 E92D4000 STMDB R13!,{LR}
6: {
00000004 ; SCOPE-START
9: VPBDIV = 0x02; //Set the Pclk to 30 Mhz
00000004 E3A01002 MOV R1,#0x2
00000008 E5100000 LDR R0,=0xE01FC100
0000000C E5C01000 STRB R1,[R0,#0x0]
10: IODIR1 = 0x00FF0000; // P1.16..23 defined as Outputs
00000010 E3A018FF MOV R1,#0xFF0000
00000014 E5100000 LDR R0,=0xE0028018
00000018 E5801000 STR R1,[R0,#0x0]
11: AD0CR = 0x00250601; // Setup A/D: 10-bit AIN0 @ 3MHz
0000001C E5101000 LDR R1,=0x250601
00000020 E5100000 LDR R0,=0xE0034000
00000024 E5801000 STR R1,[R0,#0x0]
12: AD0CR |= 0x01000000; // Start A/D Conversion
00000028 E5100000 LDR R0,=0xE0034000
0000002C E5901000 LDR R1,[R0,#0x0]
00000030 E3811401 ORR R1,R1,#0x1000000
00000034 E5801000 STR R1,[R0,#0x0]
16: for(index = 0;index<80;index++)
00000038 L_9:
00000038 E3A00000 MOV R0,#0x0
0000003C ---- Variable 'index' assigned to Register 'R0' ----
0000003C EA000006 B L_7 ; Targ=0x5C
18: do
00000040 L_11:
00000040 L_10:
20: val = AD0DR; // Read A/D Data Register
00000040 E5101000 LDR R1,=0xE0034004
00000044 E5912000 LDR R2,[R1,#0x0]
00000048 ---- Variable 'val' assigned to Register 'R2' ----
21: }
00000048 E3120102 TST R2,#0x80000000 ; val
0000004C 0AFFFFFB BEQ L_10 ; Targ=0x40
24: DACR = val;
00000050 E5101000 LDR R1,=0xE006C000
00000054 E5812000 STR R2,[R1,#0x0]
25: }
00000058 E2800001 ADD R0,R0,#0x0001 ; index
0000005C L_7:
0000005C E1A01C00 MOV R1,R0,LSL #24 ; index
00000060 E1A01C21 MOV R1,R1,LSR #24 ; index
00000064 E3510050 CMP R1,#0x0050 ; index
00000068 BAFFFFF4 BLT L_11 ; Targ=0x40
27: }
0000006C EAFFFFF1 B L_9 ; Targ=0x38
00000070 ; SCOPE-END
00000070 E8BD0008 LDMIA R13!,{R3}
00000074 E12FFF13 BX R3
00000078 ENDP ; 'main'
Module Information Static
----------------------------------
code size = ------
ARM COMPILER V2.00f, main 20/02/05 14:13:48 PAGE 3
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 + -