📄 main.lst
字号:
1 .file "main.c"
2 .arch at90s2313
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
11 .text
12 .Ltext0:
55 .global __do_global_ctors
56 .section .ctors,"a",@progbits
57 0000 0000 .word pm(_GLOBAL__I__ZN8CControlC2Ev)
58 .global g_oMotorCtl
59 .global g_oMotorCtl
60 .section .bss
63 g_oMotorCtl:
64 0000 00 .skip 1,0
65 .text
68 .global _ZN8CControlC2Ev
70 _ZN8CControlC2Ev:
1:main.c **** /*
2:main.c **** 广告灯箱交流电机测试程序
3:main.c **** main.c
4:main.c **** MCU:at90s2313
5:main.c **** 时钟:4MHz
6:main.c ****
7:main.c **** 佟长福 2004-09-25
8:main.c **** */
9:main.c ****
10:main.c **** #include <avr/io.h>
11:main.c **** #include <avr/delay.h>
12:main.c ****
13:main.c **** #define uchar unsigned char
14:main.c **** #define uint unsigned int
15:main.c ****
16:main.c **** #define SET_RED_LED PORTD|=_BV(5) //PD5接红色发光管
17:main.c **** #define CLR_RED_LED PORTD&=~_BV(5)
18:main.c ****
19:main.c **** #define SET_GRN_LED PORTD|=_BV(4) //PD4接绿色发光管
20:main.c **** #define CLR_GRN_LED PORTD&=~_BV(4)
21:main.c ****
22:main.c **** class CControl
23:main.c **** {
24:main.c **** public:
25:main.c **** CControl();
26:main.c **** public:
27:main.c **** uchar m_bCounter;
28:main.c ****
29:main.c **** void DelayMs(uint ms);
30:main.c **** void RunMotor(uchar direction);
31:main.c **** };
32:main.c ****
33:main.c **** CControl::CControl()
34:main.c **** {
72 .LM1:
73 /* prologue: frame size=0 */
74 /* prologue end (size=0) */
75 0000 F92F mov r31,r25
76 0002 E82F mov r30,r24
77 .LBB2:
35:main.c **** m_bCounter=0;
79 .LM2:
80 0004 1082 st Z,__zero_reg__
81 .LBE2:
82 /* epilogue: frame size=0 */
83 0006 0895 ret
84 /* epilogue end (size=1) */
85 /* function CControl::CControl() size 4 (3) */
89 .global _ZN8CControlC1Ev
91 _ZN8CControlC1Ev:
93 .LM3:
94 /* prologue: frame size=0 */
95 /* prologue end (size=0) */
96 0008 F92F mov r31,r25
97 000a E82F mov r30,r24
98 .LBB3:
100 .LM4:
101 000c 1082 st Z,__zero_reg__
102 .LBE3:
103 /* epilogue: frame size=0 */
104 000e 0895 ret
105 /* epilogue end (size=1) */
106 /* function CControl::CControl() size 4 (3) */
111 .global _ZN8CControl7DelayMsEj
113 _ZN8CControl7DelayMsEj:
36:main.c ****
37:main.c **** }
38:main.c ****
39:main.c **** void CControl::RunMotor(uchar direction)
40:main.c **** {
41:main.c **** if(direction==1)
42:main.c **** {
43:main.c **** SET_GRN_LED;
44:main.c **** CLR_RED_LED;
45:main.c **** }
46:main.c **** else if(direction==2)
47:main.c **** {
48:main.c **** CLR_GRN_LED;
49:main.c **** SET_RED_LED;
50:main.c **** }
51:main.c **** else
52:main.c **** {
53:main.c **** CLR_GRN_LED;
54:main.c **** CLR_RED_LED;
55:main.c **** }
56:main.c ****
57:main.c **** for(uchar i=0;i<m_bCounter;i++)
58:main.c **** {
59:main.c **** while((PINB&_BV(0))==1);
60:main.c **** while((PINB&_BV(0))==0);
61:main.c ****
62:main.c **** if(direction==1)
63:main.c **** {
64:main.c **** PORTB|=_BV(PB3);
65:main.c **** DelayMs(2);
66:main.c **** PORTB&=~_BV(PB3);
67:main.c **** }
68:main.c **** else if(direction==2)
69:main.c **** {
70:main.c **** PORTB|=_BV(PB2);
71:main.c **** DelayMs(2);
72:main.c **** PORTB&=~_BV(PB2);
73:main.c **** }
74:main.c **** else
75:main.c **** PORTB=0;
76:main.c **** }
77:main.c **** }
78:main.c ****
79:main.c **** void CControl::DelayMs(uint ms)
80:main.c **** {
115 .LM5:
116 /* prologue: frame size=0 */
117 /* prologue end (size=0) */
118 .L11:
119 .LBB4:
120 .LBB5:
81:main.c **** uint k=0;
82:main.c **** for(k=0;k<ms;k++)
122 .LM6:
123 0010 6115 cp r22,__zero_reg__
124 0012 7105 cpc r23,__zero_reg__
125 0014 39F0 breq .L10
126 .LBB6:
128 .Ltext1:
1:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** /* Copyright (c) 2002, Marek Michalkiewicz
2:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** All rights reserved.
3:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****
4:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** Redistribution and use in source and binary forms, with or without
5:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** modification, are permitted provided that the following conditions are met:
6:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****
7:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** * Redistributions of source code must retain the above copyright
8:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** notice, this list of conditions and the following disclaimer.
9:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** * Redistributions in binary form must reproduce the above copyright
10:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** notice, this list of conditions and the following disclaimer in
11:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** the documentation and/or other materials provided with the
12:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** distribution.
13:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****
14:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
18:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** POSSIBILITY OF SUCH DAMAGE. */
25:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****
26:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** /* $Id: delay.h,v 1.2.2.2 2004/02/13 21:43:37 joerg_wunsch Exp $ */
27:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****
28:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** /*
29:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** avr/delay.h - loops for small accurate delays
30:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** */
31:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****
32:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** #ifndef _AVR_DELAY_H_
33:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** #define _AVR_DELAY_H_ 1
34:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****
35:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** #include <inttypes.h>
36:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****
37:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** /* 8-bit count, 3 cycles/loop */
38:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** static __inline__ void
39:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** _delay_loop_1(uint8_t __count)
40:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** {
41:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** asm volatile (
42:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** "1: dec %0" "\n\t"
43:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** "brne 1b"
44:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** : "=r" (__count)
45:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** : "0" (__count)
46:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** );
47:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** }
48:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****
49:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** /* 16-bit count, 4 cycles/loop */
50:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** static __inline__ void
51:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** _delay_loop_2(uint16_t __count)
52:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** {
130 .LM7:
131 0016 88EE ldi r24,lo8(1000)
132 0018 93E0 ldi r25,hi8(1000)
133 .LBB7:
53:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** asm volatile (
54:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** "1: sbiw %0,1" "\n\t"
55:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** "brne 1b"
56:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** : "=w" (__count)
57:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** : "0" (__count)
58:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** );
135 .LM8:
136 /* #APP */
137 001a 0197 1: sbiw r24,1
138 001c F1F7 brne 1b
139 /* #NOAPP */
140 .LBE7:
141 .LBE6:
143 .Ltext2:
145 .LM9:
146 001e 6150 subi r22,lo8(-(-1))
147 0020 7040 sbci r23,hi8(-(-1))
148 0022 F6CF rjmp .L11
149 .L10:
150 0024 0895 ret
151 .LBE5:
152 .LBE4:
153 /* epilogue: frame size=0 */
154 /* epilogue: noreturn */
155 /* epilogue end (size=0) */
156 /* function void CControl::DelayMs(unsigned int) size 13 (13) */
167 .global _ZN8CControl8RunMotorEh
169 _ZN8CControl8RunMotorEh:
171 .LM10:
172 /* prologue: frame size=0 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -