📄 step_motor.lss
字号:
step_motor.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 00000004 00800100 000001a4 00000238 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 000001a4 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .bss 00000001 00800104 00800104 0000023c 2**0
ALLOC
3 .noinit 00000000 00800105 00800105 0000023c 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 0000023c 2**0
CONTENTS
5 .stab 000002f4 00000000 00000000 0000023c 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 00000570 00000000 00000000 00000530 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 46 00 jmp 0x8c
4: 0c 94 63 00 jmp 0xc6
8: 0c 94 63 00 jmp 0xc6
c: 0c 94 63 00 jmp 0xc6
10: 0c 94 63 00 jmp 0xc6
14: 0c 94 63 00 jmp 0xc6
18: 0c 94 63 00 jmp 0xc6
1c: 0c 94 63 00 jmp 0xc6
20: 0c 94 63 00 jmp 0xc6
24: 0c 94 63 00 jmp 0xc6
28: 0c 94 63 00 jmp 0xc6
2c: 0c 94 63 00 jmp 0xc6
30: 0c 94 63 00 jmp 0xc6
34: 0c 94 63 00 jmp 0xc6
38: 0c 94 63 00 jmp 0xc6
3c: 0c 94 63 00 jmp 0xc6
40: 0c 94 63 00 jmp 0xc6
44: 0c 94 63 00 jmp 0xc6
48: 0c 94 63 00 jmp 0xc6
4c: 0c 94 63 00 jmp 0xc6
50: 0c 94 63 00 jmp 0xc6
54: 0c 94 63 00 jmp 0xc6
58: 0c 94 63 00 jmp 0xc6
5c: 0c 94 63 00 jmp 0xc6
60: 0c 94 63 00 jmp 0xc6
64: 0c 94 63 00 jmp 0xc6
68: 0c 94 63 00 jmp 0xc6
6c: 0c 94 63 00 jmp 0xc6
70: 0c 94 63 00 jmp 0xc6
74: 0c 94 63 00 jmp 0xc6
78: 0c 94 63 00 jmp 0xc6
7c: 0c 94 63 00 jmp 0xc6
80: 0c 94 63 00 jmp 0xc6
84: 0c 94 63 00 jmp 0xc6
88: 0c 94 63 00 jmp 0xc6
0000008c <__ctors_end>:
8c: 11 24 eor r1, r1
8e: 1f be out 0x3f, r1 ; 63
90: cf ef ldi r28, 0xFF ; 255
92: d0 e1 ldi r29, 0x10 ; 16
94: de bf out 0x3e, r29 ; 62
96: cd bf out 0x3d, r28 ; 61
00000098 <__do_copy_data>:
98: 11 e0 ldi r17, 0x01 ; 1
9a: a0 e0 ldi r26, 0x00 ; 0
9c: b1 e0 ldi r27, 0x01 ; 1
9e: e4 ea ldi r30, 0xA4 ; 164
a0: f1 e0 ldi r31, 0x01 ; 1
a2: 00 e0 ldi r16, 0x00 ; 0
a4: 0b bf out 0x3b, r16 ; 59
a6: 02 c0 rjmp .+4 ; 0xac
000000a8 <.__do_copy_data_loop>:
a8: 07 90 elpm r0, Z+
aa: 0d 92 st X+, r0
000000ac <.__do_copy_data_start>:
ac: a4 30 cpi r26, 0x04 ; 4
ae: b1 07 cpc r27, r17
b0: d9 f7 brne .-10 ; 0xa8
000000b2 <__do_clear_bss>:
b2: 11 e0 ldi r17, 0x01 ; 1
b4: a4 e0 ldi r26, 0x04 ; 4
b6: b1 e0 ldi r27, 0x01 ; 1
b8: 01 c0 rjmp .+2 ; 0xbc
000000ba <.do_clear_bss_loop>:
ba: 1d 92 st X+, r1
000000bc <.do_clear_bss_start>:
bc: a5 30 cpi r26, 0x05 ; 5
be: b1 07 cpc r27, r17
c0: e1 f7 brne .-8 ; 0xba
c2: 0c 94 65 00 jmp 0xca
000000c6 <__bad_interrupt>:
c6: 0c 94 00 00 jmp 0x0
000000ca <main>:
void delay(unsigned int d1,unsigned int d2);
void go_step_2phase(unsigned int time);
int main(void)
{
ca: cf ef ldi r28, 0xFF ; 255
cc: d0 e1 ldi r29, 0x10 ; 16
ce: de bf out 0x3e, r29 ; 62
d0: cd bf out 0x3d, r28 ; 61
DDRD=0xf0;
d2: 80 ef ldi r24, 0xF0 ; 240
d4: 80 93 31 00 sts 0x0031, r24
while(1){
go_step_2phase(700);
d8: 8c eb ldi r24, 0xBC ; 188
da: 92 e0 ldi r25, 0x02 ; 2
dc: 0e 94 a6 00 call 0x14c
e0: fb cf rjmp .-10 ; 0xd8
000000e2 <delay>:
}
}
void delay(unsigned int d1,unsigned int d2)
{
e2: cf 93 push r28
e4: df 93 push r29
e6: cd b7 in r28, 0x3d ; 61
e8: de b7 in r29, 0x3e ; 62
ea: 28 97 sbiw r28, 0x08 ; 8
ec: 0f b6 in r0, 0x3f ; 63
ee: f8 94 cli
f0: de bf out 0x3e, r29 ; 62
f2: 0f be out 0x3f, r0 ; 63
f4: cd bf out 0x3d, r28 ; 61
f6: 89 83 std Y+1, r24 ; 0x01
f8: 9a 83 std Y+2, r25 ; 0x02
fa: 6b 83 std Y+3, r22 ; 0x03
fc: 7c 83 std Y+4, r23 ; 0x04
unsigned int i,j;
for(i=0;i<d1;i++){
fe: 1d 82 std Y+5, r1 ; 0x05
100: 1e 82 std Y+6, r1 ; 0x06
102: 2d 81 ldd r18, Y+5 ; 0x05
104: 3e 81 ldd r19, Y+6 ; 0x06
106: 89 81 ldd r24, Y+1 ; 0x01
108: 9a 81 ldd r25, Y+2 ; 0x02
10a: 28 17 cp r18, r24
10c: 39 07 cpc r19, r25
10e: a8 f4 brcc .+42 ; 0x13a
for(j=0;j<d2;j++);
110: 1f 82 std Y+7, r1 ; 0x07
112: 18 86 std Y+8, r1 ; 0x08
114: 2f 81 ldd r18, Y+7 ; 0x07
116: 38 85 ldd r19, Y+8 ; 0x08
118: 8b 81 ldd r24, Y+3 ; 0x03
11a: 9c 81 ldd r25, Y+4 ; 0x04
11c: 28 17 cp r18, r24
11e: 39 07 cpc r19, r25
120: 30 f4 brcc .+12 ; 0x12e
122: 8f 81 ldd r24, Y+7 ; 0x07
124: 98 85 ldd r25, Y+8 ; 0x08
126: 01 96 adiw r24, 0x01 ; 1
128: 8f 83 std Y+7, r24 ; 0x07
12a: 98 87 std Y+8, r25 ; 0x08
12c: f3 cf rjmp .-26 ; 0x114
12e: 8d 81 ldd r24, Y+5 ; 0x05
130: 9e 81 ldd r25, Y+6 ; 0x06
132: 01 96 adiw r24, 0x01 ; 1
134: 8d 83 std Y+5, r24 ; 0x05
136: 9e 83 std Y+6, r25 ; 0x06
138: e4 cf rjmp .-56 ; 0x102
13a: 28 96 adiw r28, 0x08 ; 8
13c: 0f b6 in r0, 0x3f ; 63
13e: f8 94 cli
140: de bf out 0x3e, r29 ; 62
142: 0f be out 0x3f, r0 ; 63
144: cd bf out 0x3d, r28 ; 61
146: df 91 pop r29
148: cf 91 pop r28
14a: 08 95 ret
0000014c <go_step_2phase>:
}
}
void go_step_2phase(unsigned int time)
{
14c: cf 93 push r28
14e: df 93 push r29
150: cd b7 in r28, 0x3d ; 61
152: de b7 in r29, 0x3e ; 62
154: 22 97 sbiw r28, 0x02 ; 2
156: 0f b6 in r0, 0x3f ; 63
158: f8 94 cli
15a: de bf out 0x3e, r29 ; 62
15c: 0f be out 0x3f, r0 ; 63
15e: cd bf out 0x3d, r28 ; 61
160: 89 83 std Y+1, r24 ; 0x01
162: 9a 83 std Y+2, r25 ; 0x02
PORTD=two_phase[phase_pnt++]<<4;
164: a4 e0 ldi r26, 0x04 ; 4
166: b1 e0 ldi r27, 0x01 ; 1
168: 2c 91 ld r18, X
16a: 82 2f mov r24, r18
16c: 99 27 eor r25, r25
16e: fc 01 movw r30, r24
170: e0 50 subi r30, 0x00 ; 0
172: ff 4f sbci r31, 0xFF ; 255
174: 80 81 ld r24, Z
176: 82 95 swap r24
178: 80 7f andi r24, 0xF0 ; 240
17a: 2f 5f subi r18, 0xFF ; 255
17c: 2c 93 st X, r18
17e: 80 93 32 00 sts 0x0032, r24
phase_pnt&0x03;
182: 80 91 04 01 lds r24, 0x0104
delay(time,100);
186: 64 e6 ldi r22, 0x64 ; 100
188: 70 e0 ldi r23, 0x00 ; 0
18a: 89 81 ldd r24, Y+1 ; 0x01
18c: 9a 81 ldd r25, Y+2 ; 0x02
18e: 0e 94 71 00 call 0xe2
192: 22 96 adiw r28, 0x02 ; 2
194: 0f b6 in r0, 0x3f ; 63
196: f8 94 cli
198: de bf out 0x3e, r29 ; 62
19a: 0f be out 0x3f, r0 ; 63
19c: cd bf out 0x3d, r28 ; 61
19e: df 91 pop r29
1a0: cf 91 pop r28
1a2: 08 95 ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -