📄 ecp_util.lst
字号:
###############################################################################
# #
# IAR Systems MSP430 Assembler V3.42A/W32 29/Jun/2007 14:46:00 #
# Copyright 1996-2006 IAR Systems. All rights reserved. #
# #
# Target option = MSP430 #
# Source file = C:\Data\DM350MSP430\VA3\ecp_util.s43 #
# List file = C:\Data\DM350MSP430\VA3\Debug\List\ecp_util.lst #
# Object file = C:\Data\DM350MSP430\VA3\Debug\Obj\ecp_util.r43 #
# Command line = C:\Data\DM350MSP430\VA3\ecp_util.s43 #
# -OC:\Data\DM350MSP430\VA3\Debug\Obj\ -s+ -M<> #
# -w+ -LC:\Data\DM350MSP430\VA3\Debug\List\ -t8 #
# -r -D__MSP430F155__ #
# -IC:\Program Files\IAR Systems\Embedded Workbench 4.0\430\INC\ #
# #
###############################################################################
1 000000 #include <msp430x15x.h>
2 000000 #include "ECP.h"
3 000000
4 000000 RSEG ECP_UTIL_CODE
5 000000 ; **********************************************
******************************
6 000000 ; Function SWDelayxxxxns
7 000000 ; xxxx = 1000 for 1us (8 cycles =
1us)
8 000000 ; xxxx = 3700 for 3.7us (30 cycles =
3.75us)
9 000000 ; xxxx = 4000 for 4.0us (32 cycles =
4.0us)
10 000000 ; xxxx = 4700 for 4.7us (38 cycles =
4.75us)
11 000000 ; xxxx = 5300 for 5.3us (43 cycles =
5.375us)
12 000000 ;
13 000000 ; Inputs: None
14 000000 ;
15 000000 ; Outputs: CPU is delayed by the specified
amount of time
16 000000 ;
17 000000 ; **********************************************
******************************
18 000000 PUBLIC SWDelay1000ns
; Call 5 cycles
19 000000 3041 SWDelay1000ns ret
; 3 cycles -> Total 8
20 000002
21 000000 PUBLIC SWDelay3700ns
; Call 5 cycles
22 000002 0412 SWDelay3700ns push R4
; Save R4 3 cycles
23 000004 0443 clr R4
; Clear R4 2 cycles
24 000006 A4440000 mov 0(R4),0(R4)
; nop 6
cycles
25 00000A 003C jmp $+2
; nop 2 cycles
26 00000C 0343 nop
; nop 1 cycle
27 00000E A4440000 mov 0(R4),0(R4)
; nop 6
cycles
28 000012 3441 pop R4
; Restore R4 2 cycles
29 000014 3041 ret
; 3 cycles -> Total 30
30 000016
31 000000 PUBLIC SWDelay4000ns
; Call 5 cycles
32 000016 0412 SWDelay4000ns push R4
; Save R4 3 cycles
33 000018 0443 clr R4
; Clear R4 2 cycles
34 00001A A4440000 mov 0(R4),0(R4)
; nop 6
cycles
35 00001E A4440000 mov 0(R4),0(R4)
; nop 6
cycles
36 000022 A4440000 mov @R4,0(R4)
; nop 5
cycles
37 000026 3441 pop R4
; Restore R4 2 cycles
38 000028 3041 ret
; 3 cycles -> Total 32
39 00002A
40 000000 PUBLIC SWDelay4700ns
; Call 5 cycles
41 00002A 0412 SWDelay4700ns push R4
; Save R4 3 cycles
42 00002C 0443 clr R4
; Clear R4 2 cycles
43 00002E A4440000 mov 0(R4),0(R4)
; nop 6
cycles
44 000032 A4440000 mov 0(R4),0(R4)
; nop 6
cycles
45 000036 A4440000 mov 0(R4),0(R4)
; nop 6
cycles
46 00003A A4440000 mov @R4,0(R4)
; nop 5
cycles
47 00003E 3441 pop R4
; Restore R4 2 cycles
48 000040 3041 ret
; 3 cycles -> Total 38
49 000042
50 000000 PUBLIC SWDelay5300ns
; Call 5 cycles
51 000042 0412 SWDelay5300ns push R4
; Save R4 3 cycles
52 000044 0443 clr R4
; Clear R4 2 cycles
53 000046 A4440000 mov 0(R4),0(R4)
; nop 6
cycles
54 00004A A4440000 mov 0(R4),0(R4)
; nop 6
cycles
55 00004E A4440000 mov @R4,0(R4)
; nop 5
cycles
56 000052 A4440000 mov 0(R4),0(R4)
; nop 6
cycles
57 000056 A4440000 mov @R4,0(R4)
; nop 5
cycles
58 00005A 3441 pop R4
; Restore R4 2 cycles
59 00005C 3041 ret
; 3 cycles -> Total 43
60 00005E
61 000000 public SWDelay100ms
; Call 5 cycles
62 00005E 0412 SWDelay100ms push R4
; Save R4 3 cycles
63 000060 3440B449 mov #18868,R4
; Loop 18,868 times
64 000064 B012.... Loop_100ms call #SWDelay5300ns
; Wait 5.3 us
65 000068 1483 dec R4
; Count it
66 00006A FC23 jnz Loop_100ms
; Loop until done
67 00006C 3441 pop R4
68 00006E 3041 ret
69 000070
70 000000 public SWDelay500ms
71 000070 0412 SWDelay500ms push R4
; Save R4
72 000072 34400500 mov #5,R4
; Loop 5 times
73 000076 B012.... Loop_500ms call #SWDelay100ms
; Wait 0.1s
74 00007A 1483 dec R4
; Count it
75 00007C FC23 jnz Loop_500ms
; Loop until done
76 00007E 3441 pop R4
77 000080 3041 ret
78 000082
79 000082 ; 7112 cycles or 889us
80 000000 PUBLIC SWDelay889us
; Call 5 cycles
81 000082 0412 SWDelay889us push R4
; Save R4 3 cycles (8)
82 000084 34409300 mov #147,R4
; 147 times 2 cycles (10)
83 000088 B012.... Loop_889us call #SWDelay5300ns
; Wait 5.3us 43 cycles
84 00008C 1483 dec R4
; Dec R4 3 cycles (46)
85 00008E FC23 jnz Loop_889us
; jmp 2 cycles (48)
86 000090
; 7056 + 10 = 7066 cycles
87 000090 B012.... call #SWDelay3700ns
; 30 cycles -> 7096
88 000094 A4440000 mov @R4,0(R4)
; nop 5 cycles
7101
89 000098 A4440000 mov 0(R4),0(R4)
; nop 6
cycles 7107
90 00009C 3441 pop R4
; Res R4 2 cycles (7109)
91 00009E 3041 ret
; 3 cycles (7112 total)
92 0000A0
93 0000A0 ; 10256 cycles or 1282 us
94 000000 PUBLIC SWDelay1282us
; Call 5 cycles
95 0000A0 0412 SWDelay1282us push R4
; Save R4 3 cycles (8)
96 0000A2 3440D500 mov #213,R4
; 147 times 2 cycles (10)
97 0000A6 B012.... Loop_1282us call #SWDelay5300ns
; Wait 5.3us 43 cycles
98 0000AA 1483 dec R4
; Dec R4 3 cycles (46)
99 0000AC FC23 jnz Loop_1282us
; jmp 2 cycles (48)
100 0000AE
; 10224 + 10 =10234 cycles
101 0000AE B012.... call #SWDelay1000ns
; 8 cycles ->10242
102 0000B2 B012.... call #SWDelay1000ns
; 8 cycles ->10250
103 0000B6 0443 clr R4
; 2 cycles -> 10252
104 0000B8 3441 pop R4
; Res R4 2 cycles (10254)
105 0000BA 3041 ret
; 3 cycles (10257 total)
106 0000BC
107 0000BC
108 0000BC ; 10668 cycles or 1333.5 us
109 000000 public SWDelay1333us
; Call 5 cycles
110 0000BC 0412 SWDelay1333us push R4
; Save R4 3 cycles (8)
111 0000BE 3440DD00 mov #221,R4
; 147 times 2 cycles (10)
112 0000C2 B012.... Loop_1333us call #SWDelay5300ns
; Wait 5.3us 43 cycles
113 0000C6 1483 dec R4
; Dec R4 3 cycles (46)
114 0000C8 FC23 jnz Loop_1333us
; jmp 2 cycles (48)
115 0000CA
; 10608 + 10 =10618 cycles
116 0000CA B012.... call #SWDelay5300ns
; 43 cycles ->10661
117 0000CE 0443 clr R4
; 2 cycles -> 10663
118 0000D0 3441 pop R4
; Res R4 2 cycles (10665)
119 0000D2 3041 ret
; 3 cycles (10668 total)
120 0000D4
121 0000D4 END
##############################
# CRC:9554 #
# Errors: 0 #
# Warnings: 0 #
# Bytes: 212 #
##############################
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -