?? main.lst
字號:
ARM COMPILER V2.54a, main 10/05/08 20:06:57 PAGE 1
ARM COMPILER V2.54a, COMPILATION OF MODULE main
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: e:\Keil\ARM\BIN\CA.exe main.c THUMB BROWSE DEBUG TABS(4)
stmt level source
1 #include <ADuC7026.h>
2 void ADCpoweron(int);
3 void SysClkInit(void);
4 int main (void)
5 { int i;
6 1 long adcdat;
7 1 SysClkInit();
8 1
9 1 DAC2CON = 0x13; // DAC configuration
10 1 DAC2DAT = 0x08000000; // start from midscale
11 1
12 1 ADCpoweron(20000); // power on ADC
13 1 ADCCP = 0x00; // select ADC channel 0
14 1 REFCON = 0x01; // internal 2.5V reference. 2.5V on Vref pin
15 1 ADCCON = 0x2A4; // Config: fADC/2, acq. time = 2 clocks => ADC Speed = 1MSPS
16 1 while(1)
17 1 {
18 2 while (!ADCSTA){} // wait for end of conversion
19 2 // adcdat = ADCDAT;
20 2 DAC2DAT = ADCDAT;
21 2 }
22 1 }
*** WARNING C47 IN LINE 5 OF MAIN.C: 'i': unreferenced local variable
*** WARNING C47 IN LINE 6 OF MAIN.C: 'adcdat': unreferenced local variable
23
24
25 void ADCpoweron(int time)
26 {
27 1 ADCCON = 0x20; // power-on the ADC
28 1 while (time >=0) // wait for ADC to be fully powered on
29 1 time--;
30 1 }
31
32 void SysClkInit(void)
33 {
34 1 PLLKEY1=0xAA;
35 1 PLLCON=0x01; //PLL配置
36 1 PLLKEY2=0x55;
37 1 POWKEY1=0x01;
38 1 POWCON=0x00; //CPU時鐘配置為41.78MHz
39 1 POWKEY2=0xF4;
40 1 // while(!(PLLSTA & 0x01));
41 1 }
ARM COMPILER V2.54a, main 10/05/08 20:06:57 PAGE 2
ASSEMBLY LISTING OF GENERATED OBJECT CODE
*** EXTERNALS:
EXTERN NUMBER (__startup)
*** PUBLICS:
PUBLIC ADCpoweron?T
PUBLIC SysClkInit?T
PUBLIC main
*** CODE SEGMENT '?PR?main?main':
4: int main (void)
00000000 B500 PUSH {LR}
5: { int i;
00000002 ; SCOPE-START
7: SysClkInit();
00000002 F7FF BL SysClkInit?T ; T=0x0001 (1)
00000004 FFFD BL SysClkInit?T ; T=0x0001 (2)
9: DAC2CON = 0x13; // DAC configuration
00000006 2113 MOV R1,#0x13
00000008 4800 LDR R0,=0xFFFF0610
0000000A 6001 STR R1,[R0,#0x0]
10: DAC2DAT = 0x08000000; // start from midscale
0000000C 4800 LDR R1,=0x8000000
0000000E 4800 LDR R0,=0xFFFF0614
00000010 6001 STR R1,[R0,#0x0]
12: ADCpoweron(20000); // power on ADC
00000012 4800 LDR R0,=0x4E20
00000014 F7FF BL ADCpoweron?T ; T=0x0001 (1)
00000016 FFF4 BL ADCpoweron?T ; T=0x0001 (2)
13: ADCCP = 0x00; // select ADC channel 0
00000018 2100 MOV R1,#0x0
0000001A 4800 LDR R0,=0xFFFF0504
0000001C 6001 STR R1,[R0,#0x0]
14: REFCON = 0x01; // internal 2.5V reference. 2.5V on Vref pin
0000001E 2101 MOV R1,#0x1
00000020 4800 LDR R0,=0xFFFF048C
00000022 6001 STR R1,[R0,#0x0]
15: ADCCON = 0x2A4; // Config: fADC/2, acq. time = 2 clocks => ADC Speed = 1MSPS
00000024 49A9 LDR R1,=0x2A4
00000026 4800 LDR R0,=0xFFFF0500
00000028 6001 STR R1,[R0,#0x0]
18: while (!ADCSTA){} // wait for end of conversion
0000002A L_8:
0000002A L_5:
0000002A 4800 LDR R0,=0xFFFF050C
0000002C 6800 LDR R0,[R0,#0x0]
0000002E 2800 CMP R0,#0x0
00000030 D0FB BEQ L_5 ; T=0x0000002A
20: DAC2DAT = ADCDAT;
00000032 4800 LDR R0,=0xFFFF0510
00000034 6801 LDR R1,[R0,#0x0]
00000036 4800 LDR R0,=0xFFFF0614
00000038 6001 STR R1,[R0,#0x0]
21: }
0000003A E7F6 B L_8 ; T=0x0000002A
0000003C ; SCOPE-END
22: }
0000003C BC08 POP {R3}
0000003E 4718 BX R3
00000040 ENDP ; 'main'
*** CODE SEGMENT '?PR?ADCpoweron?T?main':
25: void ADCpoweron(int time)
00000000 ---- Variable 'time' assigned to Register 'R0' ----
27: ADCCON = 0x20; // power-on the ADC
ARM COMPILER V2.54a, main 10/05/08 20:06:57 PAGE 3
00000000 2220 MOV R2,#0x20
00000002 4800 LDR R1,=0xFFFF0500
00000004 600A STR R2,[R1,#0x0]
28: while (time >=0) // wait for ADC to be fully powered on
00000006 E000 B L_9 ; T=0x0000000A
00000008 L_11:
00000008 3801 SUB R0,#0x1
0000000A L_9:
0000000A 1C01 MOV R1,R0 ; time
0000000C 2900 CMP R1,#0x0 ; time
0000000E DAFB BGE L_11 ; T=0x00000008
30: }
00000010 4770 BX R14
00000012 ENDP ; 'ADCpoweron?T'
*** CODE SEGMENT '?PR?SysClkInit?T?main':
34: PLLKEY1=0xAA;
00000000 21AA MOV R1,#0xAA
00000002 4800 LDR R0,=0xFFFF0410
00000004 6001 STR R1,[R0,#0x0]
35: PLLCON=0x01; //PLL配置
00000006 2101 MOV R1,#0x1
00000008 4800 LDR R0,=0xFFFF0414
0000000A 6001 STR R1,[R0,#0x0]
36: PLLKEY2=0x55;
0000000C 2255 MOV R2,#0x55
0000000E 4800 LDR R0,=0xFFFF0418
00000010 6002 STR R2,[R0,#0x0]
37: POWKEY1=0x01;
00000012 4800 LDR R0,=0xFFFF0404
00000014 6001 STR R1,[R0,#0x0]
38: POWCON=0x00; //CPU時鐘配置為41.78MHz
00000016 2100 MOV R1,#0x0
00000018 4800 LDR R0,=0xFFFF0408
0000001A 6001 STR R1,[R0,#0x0]
39: POWKEY2=0xF4;
0000001C 21F4 MOV R1,#0xF4
0000001E 4800 LDR R0,=0xFFFF040C
00000020 6001 STR R1,[R0,#0x0]
41: }
00000022 4770 BX R14
00000024 ENDP ; 'SysClkInit?T'
Module Information Static
----------------------------------
code size = ------
data size = ------
const size = ------
End of Module Information.
ARM COMPILATION COMPLETE. 2 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -