📄 3pwm.lst
字号:
ARM COMPILER V2.42, 3PWM 10/12/07 18:10:16 PAGE 1
ARM COMPILER V2.42, COMPILATION OF MODULE 3PWM
OBJECT MODULE PLACED IN 3PWM.OBJ
COMPILER INVOKED BY: c:\Keil\ARM\BIN\CA.exe 3PWM.c THUMB DEBUG TABS(4)
stmt level source
1 /*********************************************************************
2
3 Author : ADI - Apps www.analog.com/MicroConverter
4
5 Date : Sept. 2005
6
7 File : 3PWM.c
8
9 Hardware : Applicable to ADuC702x rev H or I silicon
10 Currently targetting ADuC7026.
11
12 Description : 3-phase PWM with dead time
13 PWMTRIP (P3.6) low stops the PWMs
14
15 *********************************************************************/
16
17 #include<aduc7026.h>
18
19 int main(void) {
20 1
21 1 GP4DAT = 0x04000000; // P4.2 configured as an output. LED is turned on
22 1 GP3CON = 0x11111111; // Enable the PWM outputs to the GPIO
23 1
24 1 // Setup the PWM
25 1 PWMCON = 0x0001; // 0x01 is enabled
26 1 PWMDAT0 = 0x00A0; // Period register
27 1 PWMDAT1 = 0x00; // Dead time
28 1 PWMCFG = 0x00; //
29 1 PWMCH0 = 0x00FFE0; // duty cycle channel 0
30 1 PWMCH1 = 0x0020; // duty cycle channel 1
31 1 PWMCH2= 0x0030; // duty cycle channel 2
32 1 PWMEN = 0x00; // Enable (0=enabled)
33 1
34 1 GP4DAT ^= 0x00040000; // Complement P4.2
35 1
36 1 while (1){}
37 1
38 1 }
ARM COMPILER V2.42, 3PWM 10/12/07 18:10:16 PAGE 2
ASSEMBLY LISTING OF GENERATED OBJECT CODE
*** EXTERNALS:
EXTERN NUMBER (__startup)
*** PUBLICS:
PUBLIC main
*** CODE SEGMENT '?PR?main?3PWM':
19: int main(void) {
00000000 B500 PUSH {LR}
21: GP4DAT = 0x04000000; // P4.2 configured as an output. LED is turned on
00000002 4800 LDR R1,=0x4000000
00000004 4800 LDR R0,=0xFFFFF460
00000006 6001 STR R1,[R0,#0x0]
22: GP3CON = 0x11111111; // Enable the PWM outputs to the GPIO
00000008 4800 LDR R1,=0x11111111
0000000A 4800 LDR R0,=0xFFFFF40C
0000000C 6001 STR R1,[R0,#0x0]
25: PWMCON = 0x0001; // 0x01 is enabled
0000000E 2101 MOV R1,#0x1
00000010 4800 LDR R0,=0xFFFFFC00
00000012 6001 STR R1,[R0,#0x0]
26: PWMDAT0 = 0x00A0; // Period register
00000014 21A0 MOV R1,#0xA0
00000016 4800 LDR R0,=0xFFFFFC08
00000018 6001 STR R1,[R0,#0x0]
27: PWMDAT1 = 0x00; // Dead time
0000001A 2100 MOV R1,#0x0
0000001C 4800 LDR R0,=0xFFFFFC0C
0000001E 6001 STR R1,[R0,#0x0]
28: PWMCFG = 0x00; //
00000020 4800 LDR R0,=0xFFFFFC10
00000022 6001 STR R1,[R0,#0x0]
29: PWMCH0 = 0x00FFE0; // duty cycle channel 0
00000024 4800 LDR R2,=0xFFE0
00000026 4800 LDR R0,=0xFFFFFC14
00000028 6002 STR R2,[R0,#0x0]
30: PWMCH1 = 0x0020; // duty cycle channel 1
0000002A 2220 MOV R2,#0x20
0000002C 4800 LDR R0,=0xFFFFFC18
0000002E 6002 STR R2,[R0,#0x0]
31: PWMCH2= 0x0030; // duty cycle channel 2
00000030 2230 MOV R2,#0x30
00000032 4800 LDR R0,=0xFFFFFC1C
00000034 6002 STR R2,[R0,#0x0]
32: PWMEN = 0x00; // Enable (0=enabled)
00000036 4800 LDR R0,=0xFFFFFC20
00000038 6001 STR R1,[R0,#0x0]
34: GP4DAT ^= 0x00040000; // Complement P4.2
0000003A 4800 LDR R2,=0x40000
0000003C 4800 LDR R0,=0xFFFFF460
0000003E 6801 LDR R1,[R0,#0x0]
00000040 4051 EOR R1,R2
00000042 6001 STR R1,[R0,#0x0]
36: while (1){}
00000044 L_1:
00000044 E7FE B L_1 ; T=0x00000044
38: }
00000046 BC08 POP {R3}
00000048 4718 BX R3
0000004A ENDP ; 'main'
Module Information Static
----------------------------------
ARM COMPILER V2.42, 3PWM 10/12/07 18:10:16 PAGE 3
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 + -