⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 steper.lss

📁 步近电机控制代码
💻 LSS
📖 第 1 页 / 共 3 页
字号:

steper.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         0000065a  00000000  00000000  00000074  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         0000000a  00800060  0000065a  000006ce  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000011  0080006a  00000664  000006d8  2**0
                  ALLOC
  3 .stab         00000cd8  00000000  00000000  000006d8  2**2
                  CONTENTS, READONLY, DEBUGGING
  4 .stabstr      000008ff  00000000  00000000  000013b0  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	12 c0       	rjmp	.+36     	; 0x26 <__ctors_end>
   2:	bb c0       	rjmp	.+374    	; 0x17a <__vector_1>
   4:	2b c0       	rjmp	.+86     	; 0x5c <__bad_interrupt>
   6:	2a c0       	rjmp	.+84     	; 0x5c <__bad_interrupt>
   8:	29 c0       	rjmp	.+82     	; 0x5c <__bad_interrupt>
   a:	28 c0       	rjmp	.+80     	; 0x5c <__bad_interrupt>
   c:	27 c0       	rjmp	.+78     	; 0x5c <__bad_interrupt>
   e:	26 c0       	rjmp	.+76     	; 0x5c <__bad_interrupt>
  10:	44 c1       	rjmp	.+648    	; 0x29a <__vector_8>
  12:	ea c0       	rjmp	.+468    	; 0x1e8 <__vector_9>
  14:	23 c0       	rjmp	.+70     	; 0x5c <__bad_interrupt>
  16:	22 c0       	rjmp	.+68     	; 0x5c <__bad_interrupt>
  18:	21 c0       	rjmp	.+66     	; 0x5c <__bad_interrupt>
  1a:	20 c0       	rjmp	.+64     	; 0x5c <__bad_interrupt>
  1c:	1f c0       	rjmp	.+62     	; 0x5c <__bad_interrupt>
  1e:	1e c0       	rjmp	.+60     	; 0x5c <__bad_interrupt>
  20:	1d c0       	rjmp	.+58     	; 0x5c <__bad_interrupt>
  22:	1c c0       	rjmp	.+56     	; 0x5c <__bad_interrupt>
  24:	1b c0       	rjmp	.+54     	; 0x5c <__bad_interrupt>

00000026 <__ctors_end>:
  26:	11 24       	eor	r1, r1
  28:	1f be       	out	0x3f, r1	; 63
  2a:	cf e5       	ldi	r28, 0x5F	; 95
  2c:	d4 e0       	ldi	r29, 0x04	; 4
  2e:	de bf       	out	0x3e, r29	; 62
  30:	cd bf       	out	0x3d, r28	; 61

00000032 <__do_copy_data>:
  32:	10 e0       	ldi	r17, 0x00	; 0
  34:	a0 e6       	ldi	r26, 0x60	; 96
  36:	b0 e0       	ldi	r27, 0x00	; 0
  38:	ea e5       	ldi	r30, 0x5A	; 90
  3a:	f6 e0       	ldi	r31, 0x06	; 6
  3c:	02 c0       	rjmp	.+4      	; 0x42 <.do_copy_data_start>

0000003e <.do_copy_data_loop>:
  3e:	05 90       	lpm	r0, Z+
  40:	0d 92       	st	X+, r0

00000042 <.do_copy_data_start>:
  42:	aa 36       	cpi	r26, 0x6A	; 106
  44:	b1 07       	cpc	r27, r17
  46:	d9 f7       	brne	.-10     	; 0x3e <.do_copy_data_loop>

00000048 <__do_clear_bss>:
  48:	10 e0       	ldi	r17, 0x00	; 0
  4a:	aa e6       	ldi	r26, 0x6A	; 106
  4c:	b0 e0       	ldi	r27, 0x00	; 0
  4e:	01 c0       	rjmp	.+2      	; 0x52 <.do_clear_bss_start>

00000050 <.do_clear_bss_loop>:
  50:	1d 92       	st	X+, r1

00000052 <.do_clear_bss_start>:
  52:	ab 37       	cpi	r26, 0x7B	; 123
  54:	b1 07       	cpc	r27, r17
  56:	e1 f7       	brne	.-8      	; 0x50 <.do_clear_bss_loop>
  58:	7d d2       	rcall	.+1274   	; 0x554 <main>
  5a:	fd c2       	rjmp	.+1530   	; 0x656 <_exit>

0000005c <__bad_interrupt>:
  5c:	d1 cf       	rjmp	.-94     	; 0x0 <__vectors>

0000005e <imaxabs>:
#endif /* __STDC_VERSION__ >= 199901 */

#endif	/* !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS) */

__CRT_INLINE intmax_t __cdecl imaxabs (intmax_t j)
	{return	(j >= 0 ? j : -j);}
  5e:	af 92       	push	r10
  60:	bf 92       	push	r11
  62:	cf 92       	push	r12
  64:	df 92       	push	r13
  66:	ef 92       	push	r14
  68:	ff 92       	push	r15
  6a:	0f 93       	push	r16
  6c:	1f 93       	push	r17
  6e:	f3 2f       	mov	r31, r19
  70:	da 01       	movw	r26, r20
  72:	f6 2e       	mov	r15, r22
  74:	d7 2e       	mov	r13, r23
  76:	b8 2e       	mov	r11, r24
  78:	19 2f       	mov	r17, r25
  7a:	e2 2f       	mov	r30, r18
  7c:	17 ff       	sbrs	r17, 7
  7e:	5f c0       	rjmp	.+190    	; 0x13e <imaxabs+0xe0>
  80:	a2 2e       	mov	r10, r18
  82:	a1 94       	neg	r10
  84:	e1 e0       	ldi	r30, 0x01	; 1
  86:	1a 14       	cp	r1, r10
  88:	08 f0       	brcs	.+2      	; 0x8c <imaxabs+0x2e>
  8a:	e0 e0       	ldi	r30, 0x00	; 0
  8c:	3f 2f       	mov	r19, r31
  8e:	31 95       	neg	r19
  90:	f1 e0       	ldi	r31, 0x01	; 1
  92:	13 16       	cp	r1, r19
  94:	08 f0       	brcs	.+2      	; 0x98 <imaxabs+0x3a>
  96:	f0 e0       	ldi	r31, 0x00	; 0
  98:	c3 2e       	mov	r12, r19
  9a:	ce 1a       	sub	r12, r30
  9c:	e1 e0       	ldi	r30, 0x01	; 1
  9e:	3c 15       	cp	r19, r12
  a0:	08 f0       	brcs	.+2      	; 0xa4 <imaxabs+0x46>
  a2:	e0 e0       	ldi	r30, 0x00	; 0
  a4:	fe 2b       	or	r31, r30
  a6:	4a 2f       	mov	r20, r26
  a8:	41 95       	neg	r20
  aa:	a1 e0       	ldi	r26, 0x01	; 1
  ac:	14 16       	cp	r1, r20
  ae:	08 f0       	brcs	.+2      	; 0xb2 <imaxabs+0x54>
  b0:	a0 e0       	ldi	r26, 0x00	; 0
  b2:	e4 2e       	mov	r14, r20
  b4:	ef 1a       	sub	r14, r31
  b6:	e1 e0       	ldi	r30, 0x01	; 1
  b8:	4e 15       	cp	r20, r14
  ba:	08 f0       	brcs	.+2      	; 0xbe <imaxabs+0x60>
  bc:	e0 e0       	ldi	r30, 0x00	; 0
  be:	ae 2b       	or	r26, r30
  c0:	5b 2f       	mov	r21, r27
  c2:	51 95       	neg	r21
  c4:	f1 e0       	ldi	r31, 0x01	; 1
  c6:	15 16       	cp	r1, r21
  c8:	08 f0       	brcs	.+2      	; 0xcc <imaxabs+0x6e>
  ca:	f0 e0       	ldi	r31, 0x00	; 0
  cc:	05 2f       	mov	r16, r21
  ce:	0a 1b       	sub	r16, r26
  d0:	e1 e0       	ldi	r30, 0x01	; 1
  d2:	50 17       	cp	r21, r16
  d4:	08 f0       	brcs	.+2      	; 0xd8 <imaxabs+0x7a>
  d6:	e0 e0       	ldi	r30, 0x00	; 0
  d8:	fe 2b       	or	r31, r30
  da:	6f 2d       	mov	r22, r15
  dc:	61 95       	neg	r22
  de:	a1 e0       	ldi	r26, 0x01	; 1
  e0:	16 16       	cp	r1, r22
  e2:	08 f0       	brcs	.+2      	; 0xe6 <imaxabs+0x88>
  e4:	a0 e0       	ldi	r26, 0x00	; 0
  e6:	26 2f       	mov	r18, r22
  e8:	2f 1b       	sub	r18, r31
  ea:	e1 e0       	ldi	r30, 0x01	; 1
  ec:	62 17       	cp	r22, r18
  ee:	08 f0       	brcs	.+2      	; 0xf2 <imaxabs+0x94>
  f0:	e0 e0       	ldi	r30, 0x00	; 0
  f2:	ae 2b       	or	r26, r30
  f4:	7d 2d       	mov	r23, r13
  f6:	71 95       	neg	r23
  f8:	f1 e0       	ldi	r31, 0x01	; 1
  fa:	17 16       	cp	r1, r23
  fc:	08 f0       	brcs	.+2      	; 0x100 <imaxabs+0xa2>
  fe:	f0 e0       	ldi	r31, 0x00	; 0
 100:	b7 2f       	mov	r27, r23
 102:	ba 1b       	sub	r27, r26
 104:	e1 e0       	ldi	r30, 0x01	; 1
 106:	7b 17       	cp	r23, r27
 108:	08 f0       	brcs	.+2      	; 0x10c <imaxabs+0xae>
 10a:	e0 e0       	ldi	r30, 0x00	; 0
 10c:	fe 2b       	or	r31, r30
 10e:	8b 2d       	mov	r24, r11
 110:	81 95       	neg	r24
 112:	a1 e0       	ldi	r26, 0x01	; 1
 114:	18 16       	cp	r1, r24
 116:	08 f0       	brcs	.+2      	; 0x11a <imaxabs+0xbc>
 118:	a0 e0       	ldi	r26, 0x00	; 0
 11a:	98 2f       	mov	r25, r24
 11c:	9f 1b       	sub	r25, r31
 11e:	f9 2f       	mov	r31, r25
 120:	e1 e0       	ldi	r30, 0x01	; 1
 122:	89 17       	cp	r24, r25
 124:	08 f0       	brcs	.+2      	; 0x128 <imaxabs+0xca>
 126:	e0 e0       	ldi	r30, 0x00	; 0
 128:	ae 2b       	or	r26, r30
 12a:	91 2f       	mov	r25, r17
 12c:	91 95       	neg	r25
 12e:	ea 2d       	mov	r30, r10
 130:	3c 2d       	mov	r19, r12
 132:	4e 2d       	mov	r20, r14
 134:	50 2f       	mov	r21, r16
 136:	62 2f       	mov	r22, r18
 138:	7b 2f       	mov	r23, r27
 13a:	8f 2f       	mov	r24, r31
 13c:	9a 1b       	sub	r25, r26
 13e:	2e 2f       	mov	r18, r30
 140:	1f 91       	pop	r17
 142:	0f 91       	pop	r16
 144:	ff 90       	pop	r15
 146:	ef 90       	pop	r14
 148:	df 90       	pop	r13
 14a:	cf 90       	pop	r12
 14c:	bf 90       	pop	r11
 14e:	af 90       	pop	r10
 150:	08 95       	ret

00000152 <eeprom_read_byte>:

/** \ingroup avr_eeprom
    Read one byte from EEPROM address \a __p.
 */
__ATTR_PURE__ static __inline__ uint8_t eeprom_read_byte (const uint8_t *__p)
{
 152:	9c 01       	movw	r18, r24
    do {} while (!eeprom_is_ready ());
 154:	e1 99       	sbic	0x1c, 1	; 28
 156:	fe cf       	rjmp	.-4      	; 0x154 <eeprom_read_byte+0x2>
#if	E2END <= 0xFF
    EEARL = (unsigned)__p;
#else
    EEAR = (unsigned)__p;
 158:	3f bb       	out	0x1f, r19	; 31
 15a:	2e bb       	out	0x1e, r18	; 30
#endif
    EECR |= (1 << EERE);
 15c:	e0 9a       	sbi	0x1c, 0	; 28
    return EEDR;
 15e:	8d b3       	in	r24, 0x1d	; 29
}
 160:	08 95       	ret

00000162 <eeprom_write_byte>:

/** \ingroup avr_eeprom
    Write a byte \a __value to EEPROM address \a __p.
 */
static __inline__ void eeprom_write_byte (uint8_t *__p, uint8_t __value)
{
 162:	9c 01       	movw	r18, r24
    do {} while (!eeprom_is_ready ());
 164:	e1 99       	sbic	0x1c, 1	; 28
 166:	fe cf       	rjmp	.-4      	; 0x164 <eeprom_write_byte+0x2>
#endif

#if	E2END <= 0xFF
    EEARL = (unsigned)__p;
#else
    EEAR = (unsigned)__p;
 168:	3f bb       	out	0x1f, r19	; 31
 16a:	2e bb       	out	0x1e, r18	; 30
#endif
    EEDR = __value;
 16c:	6d bb       	out	0x1d, r22	; 29

    __asm__ __volatile__ (
 16e:	0f b6       	in	r0, 0x3f	; 63
 170:	f8 94       	cli
 172:	e2 9a       	sbi	0x1c, 2	; 28
 174:	e1 9a       	sbi	0x1c, 1	; 28
 176:	0f be       	out	0x3f, r0	; 63
          [__sreg]  "i" (_SFR_IO_ADDR(SREG)),
          [__eemwe] "i" (EEMWE),
          [__eewe]  "i" (EEWE)
        : "r0"
    );
}
 178:	08 95       	ret

0000017a <__vector_1>:
	T0End:
		;
}

ISR(SIG_INTERRUPT0)
{
 17a:	1f 92       	push	r1
 17c:	0f 92       	push	r0
 17e:	0f b6       	in	r0, 0x3f	; 63
 180:	0f 92       	push	r0
 182:	11 24       	eor	r1, r1
 184:	8f 93       	push	r24
	cli();
 186:	f8 94       	cli
	StepperStop();
 188:	1e bc       	out	0x2e, r1	; 46
 18a:	93 98       	cbi	0x12, 3	; 18
 18c:	85 b3       	in	r24, 0x15	; 21
 18e:	83 7f       	andi	r24, 0xF3	; 243
 190:	85 bb       	out	0x15, r24	; 21
	key_limit=(PINB & 0X30);
 192:	86 b3       	in	r24, 0x16	; 22
 194:	80 73       	andi	r24, 0x30	; 48
 196:	80 93 77 00 	sts	0x0077, r24
	if(key_limit==0x20)  //前限位
 19a:	80 91 77 00 	lds	r24, 0x0077
 19e:	80 32       	cpi	r24, 0x20	; 32
 1a0:	31 f4       	brne	.+12     	; 0x1ae <__vector_1+0x34>
	{
		Direction=1;
 1a2:	81 e0       	ldi	r24, 0x01	; 1
 1a4:	80 93 6a 00 	sts	0x006A, r24
		Limit=0;
 1a8:	10 92 6b 00 	sts	0x006B, r1
 1ac:	09 c0       	rjmp	.+18     	; 0x1c0 <__vector_1+0x46>
	}
	else if(key_limit==0x10)	//后限位
 1ae:	80 91 77 00 	lds	r24, 0x0077
 1b2:	80 31       	cpi	r24, 0x10	; 16
 1b4:	29 f4       	brne	.+10     	; 0x1c0 <__vector_1+0x46>
	{
		Direction=0;
 1b6:	10 92 6a 00 	sts	0x006A, r1
		Limit=1;
 1ba:	81 e0       	ldi	r24, 0x01	; 1
 1bc:	80 93 6b 00 	sts	0x006B, r24
	}
	Pflag=1;
 1c0:	81 e0       	ldi	r24, 0x01	; 1
 1c2:	80 93 6c 00 	sts	0x006C, r24
	Pcnt=0;
 1c6:	10 92 7a 00 	sts	0x007A, r1
 1ca:	10 92 79 00 	sts	0x0079, r1
	StepperStart();
 1ce:	93 9a       	sbi	0x12, 3	; 18
 1d0:	85 e0       	ldi	r24, 0x05	; 5
 1d2:	8e bd       	out	0x2e, r24	; 46
 1d4:	89 b7       	in	r24, 0x39	; 57
 1d6:	84 60       	ori	r24, 0x04	; 4
 1d8:	89 bf       	out	0x39, r24	; 57
	sei();
 1da:	78 94       	sei
}
 1dc:	8f 91       	pop	r24
 1de:	0f 90       	pop	r0
 1e0:	0f be       	out	0x3f, r0	; 63
 1e2:	0f 90       	pop	r0
 1e4:	1f 90       	pop	r1
 1e6:	18 95       	reti

000001e8 <__vector_9>:
ISR(SIG_OVERFLOW0)
{
 1e8:	1f 92       	push	r1
 1ea:	0f 92       	push	r0
 1ec:	0f b6       	in	r0, 0x3f	; 63
 1ee:	0f 92       	push	r0
 1f0:	11 24       	eor	r1, r1
 1f2:	6f 93       	push	r22
 1f4:	7f 93       	push	r23
 1f6:	8f 93       	push	r24
 1f8:	9f 93       	push	r25
	TCNT0=0x64;
 1fa:	84 e6       	ldi	r24, 0x64	; 100
 1fc:	82 bf       	out	0x32, r24	; 50
	
	CurKey=(PINB & 0X0F);
 1fe:	86 b3       	in	r24, 0x16	; 22
 200:	8f 70       	andi	r24, 0x0F	; 15
 202:	80 93 75 00 	sts	0x0075, r24
	if(CurKey==LastKey)
 206:	90 91 75 00 	lds	r25, 0x0075
 20a:	80 91 60 00 	lds	r24, 0x0060
 20e:	98 17       	cp	r25, r24
 210:	e1 f4       	brne	.+56     	; 0x24a <__vector_9+0x62>
	{
		keytimes++;
 212:	80 91 76 00 	lds	r24, 0x0076
 216:	8f 5f       	subi	r24, 0xFF	; 255
 218:	80 93 76 00 	sts	0x0076, r24
		if(keytimes%5==0)//短按
 21c:	80 91 76 00 	lds	r24, 0x0076
 220:	65 e0       	ldi	r22, 0x05	; 5
 222:	0d d2       	rcall	.+1050   	; 0x63e <__udivmodqi4>
 224:	99 23       	and	r25, r25
 226:	21 f4       	brne	.+8      	; 0x230 <__vector_9+0x48>
		{
			keycode=(ShortPush|CurKey);
 228:	80 91 75 00 	lds	r24, 0x0075
 22c:	80 64       	ori	r24, 0x40	; 64
 22e:	0a c0       	rjmp	.+20     	; 0x244 <__vector_9+0x5c>
		}
		else if(keytimes>100) //长按
 230:	80 91 76 00 	lds	r24, 0x0076
 234:	85 36       	cpi	r24, 0x65	; 101

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -