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

📄 coder.lss

📁 光电编码器源代码
💻 LSS
📖 第 1 页 / 共 3 页
字号:

coder.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         000005fe  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         0000000c  00800060  000005fe  00000692  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          0000000a  0080006c  0080006c  0000069e  2**0
                  ALLOC
  3 .noinit       00000000  00800076  00800076  0000069e  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  0000069e  2**0
                  CONTENTS
  5 .stab         0000036c  00000000  00000000  000006a0  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      00000084  00000000  00000000  00000a0c  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_aranges 00000028  00000000  00000000  00000a90  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_pubnames 000000ad  00000000  00000000  00000ab8  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_info   00000654  00000000  00000000  00000b65  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_abbrev 000001b6  00000000  00000000  000011b9  2**0
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_line   000003a1  00000000  00000000  0000136f  2**0
                  CONTENTS, READONLY, DEBUGGING
 12 .debug_str    00000156  00000000  00000000  00001710  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	0c 94 2a 00 	jmp	0x54 <__ctors_end>
   4:	0c 94 47 00 	jmp	0x8e <__vector_1>
   8:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
   c:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  10:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  14:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  18:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  1c:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  20:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  24:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  28:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  2c:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  30:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  34:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  38:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  3c:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  40:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  44:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  48:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  4c:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  50:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>

00000054 <__ctors_end>:
  54:	11 24       	eor	r1, r1
  56:	1f be       	out	0x3f, r1	; 63
  58:	cf e5       	ldi	r28, 0x5F	; 95
  5a:	d4 e0       	ldi	r29, 0x04	; 4
  5c:	de bf       	out	0x3e, r29	; 62
  5e:	cd bf       	out	0x3d, r28	; 61

00000060 <__do_copy_data>:
  60:	10 e0       	ldi	r17, 0x00	; 0
  62:	a0 e6       	ldi	r26, 0x60	; 96
  64:	b0 e0       	ldi	r27, 0x00	; 0
  66:	ee ef       	ldi	r30, 0xFE	; 254
  68:	f5 e0       	ldi	r31, 0x05	; 5
  6a:	02 c0       	rjmp	.+4      	; 0x70 <.do_copy_data_start>

0000006c <.do_copy_data_loop>:
  6c:	05 90       	lpm	r0, Z+
  6e:	0d 92       	st	X+, r0

00000070 <.do_copy_data_start>:
  70:	ac 36       	cpi	r26, 0x6C	; 108
  72:	b1 07       	cpc	r27, r17
  74:	d9 f7       	brne	.-10     	; 0x6c <.do_copy_data_loop>

00000076 <__do_clear_bss>:
  76:	10 e0       	ldi	r17, 0x00	; 0
  78:	ac e6       	ldi	r26, 0x6C	; 108
  7a:	b0 e0       	ldi	r27, 0x00	; 0
  7c:	01 c0       	rjmp	.+2      	; 0x80 <.do_clear_bss_start>

0000007e <.do_clear_bss_loop>:
  7e:	1d 92       	st	X+, r1

00000080 <.do_clear_bss_start>:
  80:	a6 37       	cpi	r26, 0x76	; 118
  82:	b1 07       	cpc	r27, r17
  84:	e1 f7       	brne	.-8      	; 0x7e <.do_clear_bss_loop>
  86:	0c 94 da 00 	jmp	0x1b4 <main>

0000008a <__bad_interrupt>:
  8a:	0c 94 00 00 	jmp	0x0 <__vectors>

0000008e <__vector_1>:
入口参数:无
备  注:无
********************************************************************************/
SIGNAL(SIG_INTERRUPT0)
{
  8e:	1f 92       	push	r1
  90:	0f 92       	push	r0
  92:	0f b6       	in	r0, 0x3f	; 63
  94:	0f 92       	push	r0
  96:	11 24       	eor	r1, r1
  98:	2f 93       	push	r18
  9a:	8f 93       	push	r24
  9c:	9f 93       	push	r25
  9e:	af 93       	push	r26
  a0:	bf 93       	push	r27
   
   if((PINC&(1<<0)) == 1)//顺时针时增加
  a2:	98 9b       	sbis	0x13, 0	; 19
  a4:	3c c0       	rjmp	.+120    	; 0x11e <__vector_1+0x90>
        {
            step++;
  a6:	80 91 70 00 	lds	r24, 0x0070
  aa:	90 91 71 00 	lds	r25, 0x0071
  ae:	01 96       	adiw	r24, 0x01	; 1
  b0:	90 93 71 00 	sts	0x0071, r25
  b4:	80 93 70 00 	sts	0x0070, r24
            if(step>=1000)
  b8:	80 91 70 00 	lds	r24, 0x0070
  bc:	90 91 71 00 	lds	r25, 0x0071
  c0:	88 5e       	subi	r24, 0xE8	; 232
  c2:	93 40       	sbci	r25, 0x03	; 3
  c4:	b8 f0       	brcs	.+46     	; 0xf4 <__vector_1+0x66>
                {
                    ring++;
  c6:	80 91 72 00 	lds	r24, 0x0072
  ca:	90 91 73 00 	lds	r25, 0x0073
  ce:	a0 91 74 00 	lds	r26, 0x0074
  d2:	b0 91 75 00 	lds	r27, 0x0075
  d6:	01 96       	adiw	r24, 0x01	; 1
  d8:	a1 1d       	adc	r26, r1
  da:	b1 1d       	adc	r27, r1
  dc:	80 93 72 00 	sts	0x0072, r24
  e0:	90 93 73 00 	sts	0x0073, r25
  e4:	a0 93 74 00 	sts	0x0074, r26
  e8:	b0 93 75 00 	sts	0x0075, r27
                    step = 0;
  ec:	10 92 71 00 	sts	0x0071, r1
  f0:	10 92 70 00 	sts	0x0070, r1
                }
            if(ring>=32766)
  f4:	80 91 72 00 	lds	r24, 0x0072
  f8:	90 91 73 00 	lds	r25, 0x0073
  fc:	a0 91 74 00 	lds	r26, 0x0074
 100:	b0 91 75 00 	lds	r27, 0x0075
 104:	8e 5f       	subi	r24, 0xFE	; 254
 106:	9f 47       	sbci	r25, 0x7F	; 127
 108:	a0 40       	sbci	r26, 0x00	; 0
 10a:	b0 40       	sbci	r27, 0x00	; 0
 10c:	44 f0       	brlt	.+16     	; 0x11e <__vector_1+0x90>
                ring = 0;
 10e:	10 92 72 00 	sts	0x0072, r1
 112:	10 92 73 00 	sts	0x0073, r1
 116:	10 92 74 00 	sts	0x0074, r1
 11a:	10 92 75 00 	sts	0x0075, r1
        }
   	if((PINC&(1<<0)) == 0)//逆时针时减小
 11e:	98 99       	sbic	0x13, 0	; 19
 120:	3f c0       	rjmp	.+126    	; 0x1a0 <__vector_1+0x112>
        {
           	step--;
 122:	80 91 70 00 	lds	r24, 0x0070
 126:	90 91 71 00 	lds	r25, 0x0071
 12a:	01 97       	sbiw	r24, 0x01	; 1
 12c:	90 93 71 00 	sts	0x0071, r25
 130:	80 93 70 00 	sts	0x0070, r24
            if(step>65534)
 134:	80 91 70 00 	lds	r24, 0x0070
 138:	90 91 71 00 	lds	r25, 0x0071
 13c:	8f 5f       	subi	r24, 0xFF	; 255
 13e:	9f 4f       	sbci	r25, 0xFF	; 255
 140:	c9 f4       	brne	.+50     	; 0x174 <__vector_1+0xe6>
                {
                    ring--;
 142:	80 91 72 00 	lds	r24, 0x0072
 146:	90 91 73 00 	lds	r25, 0x0073
 14a:	a0 91 74 00 	lds	r26, 0x0074
 14e:	b0 91 75 00 	lds	r27, 0x0075
 152:	01 97       	sbiw	r24, 0x01	; 1
 154:	a1 09       	sbc	r26, r1
 156:	b1 09       	sbc	r27, r1
 158:	80 93 72 00 	sts	0x0072, r24
 15c:	90 93 73 00 	sts	0x0073, r25
 160:	a0 93 74 00 	sts	0x0074, r26
 164:	b0 93 75 00 	sts	0x0075, r27
                    step = 1000;
 168:	88 ee       	ldi	r24, 0xE8	; 232
 16a:	93 e0       	ldi	r25, 0x03	; 3
 16c:	90 93 71 00 	sts	0x0071, r25
 170:	80 93 70 00 	sts	0x0070, r24
                }
			if(ring <0)
 174:	80 91 72 00 	lds	r24, 0x0072
 178:	90 91 73 00 	lds	r25, 0x0073
 17c:	a0 91 74 00 	lds	r26, 0x0074
 180:	b0 91 75 00 	lds	r27, 0x0075
 184:	b7 ff       	sbrs	r27, 7
 186:	0c c0       	rjmp	.+24     	; 0x1a0 <__vector_1+0x112>
                {
				    ring = 0;
 188:	10 92 72 00 	sts	0x0072, r1
 18c:	10 92 73 00 	sts	0x0073, r1
 190:	10 92 74 00 	sts	0x0074, r1
 194:	10 92 75 00 	sts	0x0075, r1
				    step = 0;
 198:	10 92 71 00 	sts	0x0071, r1
 19c:	10 92 70 00 	sts	0x0070, r1
 1a0:	bf 91       	pop	r27
 1a2:	af 91       	pop	r26
 1a4:	9f 91       	pop	r25
 1a6:	8f 91       	pop	r24
 1a8:	2f 91       	pop	r18
 1aa:	0f 90       	pop	r0
 1ac:	0f be       	out	0x3f, r0	; 63
 1ae:	0f 90       	pop	r0
 1b0:	1f 90       	pop	r1
 1b2:	18 95       	reti

000001b4 <main>:
				}            
	    }
		
 
}

int main(void)
{
 1b4:	cf e5       	ldi	r28, 0x5F	; 95
 1b6:	d4 e0       	ldi	r29, 0x04	; 4
 1b8:	de bf       	out	0x3e, r29	; 62
 1ba:	cd bf       	out	0x3d, r28	; 61
   
	
	DDRB = (1<<0)|(1<<1);//驱动ZLG7290用
 1bc:	83 e0       	ldi	r24, 0x03	; 3
 1be:	87 bb       	out	0x17, r24	; 23
	PORTB = 0x00;
 1c0:	18 ba       	out	0x18, r1	; 24
 	
	DDRC &= ~(1<<0);//PC0引脚,
 1c2:	a0 98       	cbi	0x14, 0	; 20

	MCUCR=(1<<ISC01)|(0<<ISC00);//设定中断触发方式为下降沿触发
 1c4:	82 e0       	ldi	r24, 0x02	; 2
 1c6:	85 bf       	out	0x35, r24	; 53
	GIFR=(1<<INTF0);//清中断标志,以免误触发中断
 1c8:	80 e4       	ldi	r24, 0x40	; 64
 1ca:	8a bf       	out	0x3a, r24	; 58
    GICR=(1<<INT0);//外部中断0允许位
 1cc:	8b bf       	out	0x3b, r24	; 59
	sei();//使能全局中断
 1ce:	78 94       	sei
	while(1)
    { 
	    data_disp = (ring*1000+step);
 1d0:	80 91 72 00 	lds	r24, 0x0072
 1d4:	90 91 73 00 	lds	r25, 0x0073
 1d8:	a0 91 74 00 	lds	r26, 0x0074
 1dc:	b0 91 75 00 	lds	r27, 0x0075
 1e0:	bc 01       	movw	r22, r24
 1e2:	cd 01       	movw	r24, r26
 1e4:	28 ee       	ldi	r18, 0xE8	; 232
 1e6:	33 e0       	ldi	r19, 0x03	; 3
 1e8:	40 e0       	ldi	r20, 0x00	; 0
 1ea:	50 e0       	ldi	r21, 0x00	; 0
 1ec:	0e 94 be 02 	call	0x57c <__mulsi3>
 1f0:	dc 01       	movw	r26, r24
 1f2:	cb 01       	movw	r24, r22
 1f4:	20 91 70 00 	lds	r18, 0x0070
 1f8:	30 91 71 00 	lds	r19, 0x0071
 1fc:	44 27       	eor	r20, r20
 1fe:	55 27       	eor	r21, r21
 200:	82 0f       	add	r24, r18
 202:	93 1f       	adc	r25, r19
 204:	a4 1f       	adc	r26, r20
 206:	b5 1f       	adc	r27, r21
 208:	80 93 6c 00 	sts	0x006C, r24
 20c:	90 93 6d 00 	sts	0x006D, r25
 210:	a0 93 6e 00 	sts	0x006E, r26
 214:	b0 93 6f 00 	sts	0x006F, r27
	    
		Disp_i2c_led(data_disp);
 218:	bc 01       	movw	r22, r24
 21a:	cd 01       	movw	r24, r26
 21c:	0e 94 8e 01 	call	0x31c <Disp_i2c_led>
 220:	d7 cf       	rjmp	.-82     	; 0x1d0 <main+0x1c>

00000222 <start_i2c>:
*功能:启动I2C总线,即发送I2C起始条件
***********************************************************************************************/
void start_i2c(void)
{
    SDA_1; 
 222:	c0 9a       	sbi	0x18, 0	; 24

⌨️ 快捷键说明

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