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

📄 treater.lss

📁 用CODEVISION编的 AVR单片机的振荡 程序
💻 LSS
字号:

treater.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         000002a8  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000006  00800060  000002a8  0000033c  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000008  00800066  00800066  00000342  2**0
                  ALLOC
  3 .noinit       00000000  0080006e  0080006e  00000342  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  00000342  2**0
                  CONTENTS
  5 .stab         000008a0  00000000  00000000  00000344  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      0000077b  00000000  00000000  00000be4  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	09 c0       	rjmp	.+18     	; 0x14 <__ctors_end>
   2:	21 c0       	rjmp	.+66     	; 0x46 <__bad_interrupt>
   4:	20 c0       	rjmp	.+64     	; 0x46 <__bad_interrupt>
   6:	20 c0       	rjmp	.+64     	; 0x48 <__vector_3>
   8:	1e c0       	rjmp	.+60     	; 0x46 <__bad_interrupt>
   a:	1d c0       	rjmp	.+58     	; 0x46 <__bad_interrupt>
   c:	1c c0       	rjmp	.+56     	; 0x46 <__bad_interrupt>
   e:	1b c0       	rjmp	.+54     	; 0x46 <__bad_interrupt>
  10:	1a c0       	rjmp	.+52     	; 0x46 <__bad_interrupt>
  12:	19 c0       	rjmp	.+50     	; 0x46 <__bad_interrupt>

00000014 <__ctors_end>:
  14:	11 24       	eor	r1, r1
  16:	1f be       	out	0x3f, r1	; 63
  18:	cf e9       	ldi	r28, 0x9F	; 159
  1a:	cd bf       	out	0x3d, r28	; 61

0000001c <__do_copy_data>:
  1c:	10 e0       	ldi	r17, 0x00	; 0
  1e:	a0 e6       	ldi	r26, 0x60	; 96
  20:	b0 e0       	ldi	r27, 0x00	; 0
  22:	e8 ea       	ldi	r30, 0xA8	; 168
  24:	f2 e0       	ldi	r31, 0x02	; 2
  26:	03 c0       	rjmp	.+6      	; 0x2e <.do_copy_data_start>

00000028 <.do_copy_data_loop>:
  28:	c8 95       	lpm
  2a:	31 96       	adiw	r30, 0x01	; 1
  2c:	0d 92       	st	X+, r0

0000002e <.do_copy_data_start>:
  2e:	a6 36       	cpi	r26, 0x66	; 102
  30:	b1 07       	cpc	r27, r17
  32:	d1 f7       	brne	.-12     	; 0x28 <.do_copy_data_loop>

00000034 <__do_clear_bss>:
  34:	10 e0       	ldi	r17, 0x00	; 0
  36:	a6 e6       	ldi	r26, 0x66	; 102
  38:	b0 e0       	ldi	r27, 0x00	; 0
  3a:	01 c0       	rjmp	.+2      	; 0x3e <.do_clear_bss_start>

0000003c <.do_clear_bss_loop>:
  3c:	1d 92       	st	X+, r1

0000003e <.do_clear_bss_start>:
  3e:	ae 36       	cpi	r26, 0x6E	; 110
  40:	b1 07       	cpc	r27, r17
  42:	e1 f7       	brne	.-8      	; 0x3c <.do_clear_bss_loop>
  44:	18 c1       	rjmp	.+560    	; 0x276 <main>

00000046 <__bad_interrupt>:
  46:	dc cf       	rjmp	.-72     	; 0x0 <__vectors>

00000048 <__vector_3>:
#include <avr/interrupt.h>
#include <avr/sleep.h>

ISR(TIM0_OVF_vect) 
{
  48:	1f 92       	push	r1
  4a:	0f 92       	push	r0
  4c:	0f b6       	in	r0, 0x3f	; 63
  4e:	0f 92       	push	r0
  50:	11 24       	eor	r1, r1
  52:	2f 93       	push	r18
  54:	3f 93       	push	r19
  56:	4f 93       	push	r20
  58:	5f 93       	push	r21
  5a:	8f 93       	push	r24
  5c:	9f 93       	push	r25
  5e:	af 93       	push	r26
  60:	bf 93       	push	r27
	static unsigned char pulse = 0;
	static unsigned int envelope = 0; 
	static unsigned char enval = 255;
	static unsigned char endrv = 255;
	static long temp;
	static unsigned char acosum = 0;
	static unsigned long timeout = 67500000L;
	
	if(timeout > 0) --timeout;
  62:	80 91 62 00 	lds	r24, 0x0062
  66:	90 91 63 00 	lds	r25, 0x0063
  6a:	a0 91 64 00 	lds	r26, 0x0064
  6e:	b0 91 65 00 	lds	r27, 0x0065
  72:	00 97       	sbiw	r24, 0x00	; 0
  74:	a1 05       	cpc	r26, r1
  76:	b1 05       	cpc	r27, r1
  78:	59 f0       	breq	.+22     	; 0x90 <__vector_3+0x48>
  7a:	01 97       	sbiw	r24, 0x01	; 1
  7c:	a1 09       	sbc	r26, r1
  7e:	b1 09       	sbc	r27, r1
  80:	80 93 62 00 	sts	0x0062, r24
  84:	90 93 63 00 	sts	0x0063, r25
  88:	a0 93 64 00 	sts	0x0064, r26
  8c:	b0 93 65 00 	sts	0x0065, r27
	
	if((pulse < 102) || (timeout == 0)) PORTB &= ~(1 << PB2);
  90:	30 91 66 00 	lds	r19, 0x0066
  94:	36 36       	cpi	r19, 0x66	; 102
  96:	60 f0       	brcs	.+24     	; 0xb0 <__stack+0x11>
  98:	80 91 62 00 	lds	r24, 0x0062
  9c:	90 91 63 00 	lds	r25, 0x0063
  a0:	a0 91 64 00 	lds	r26, 0x0064
  a4:	b0 91 65 00 	lds	r27, 0x0065
  a8:	00 97       	sbiw	r24, 0x00	; 0
  aa:	a1 05       	cpc	r26, r1
  ac:	b1 05       	cpc	r27, r1
  ae:	11 f4       	brne	.+4      	; 0xb4 <__stack+0x15>
  b0:	c2 98       	cbi	0x18, 2	; 24
  b2:	01 c0       	rjmp	.+2      	; 0xb6 <__stack+0x17>
	else PORTB |= (1 << PB2);
  b4:	c2 9a       	sbi	0x18, 2	; 24
		
	acosum += (ACSR & (1 << ACO)) >> ACO;
  b6:	88 b1       	in	r24, 0x08	; 8
  b8:	99 27       	eor	r25, r25
  ba:	80 72       	andi	r24, 0x20	; 32
  bc:	90 70       	andi	r25, 0x00	; 0
  be:	45 e0       	ldi	r20, 0x05	; 5
  c0:	95 95       	asr	r25
  c2:	87 95       	ror	r24
  c4:	4a 95       	dec	r20
  c6:	e1 f7       	brne	.-8      	; 0xc0 <__stack+0x21>
  c8:	20 91 6d 00 	lds	r18, 0x006D
  cc:	28 0f       	add	r18, r24
  ce:	20 93 6d 00 	sts	0x006D, r18
	
	if(++pulse == 106) 
  d2:	83 2f       	mov	r24, r19
  d4:	8f 5f       	subi	r24, 0xFF	; 255
  d6:	80 93 66 00 	sts	0x0066, r24
  da:	8a 36       	cpi	r24, 0x6A	; 106
  dc:	09 f0       	breq	.+2      	; 0xe0 <__stack+0x41>
  de:	be c0       	rjmp	.+380    	; 0x25c <__stack+0x1bd>
	{
		pulse = 0;
  e0:	10 92 66 00 	sts	0x0066, r1
		if(envelope < 45) endrv = 255; 
  e4:	80 91 67 00 	lds	r24, 0x0067
  e8:	90 91 68 00 	lds	r25, 0x0068
  ec:	8d 32       	cpi	r24, 0x2D	; 45
  ee:	91 05       	cpc	r25, r1
  f0:	d8 f1       	brcs	.+118    	; 0x168 <__stack+0xc9>
		else if(envelope < 65) endrv = 0;
  f2:	81 34       	cpi	r24, 0x41	; 65
  f4:	91 05       	cpc	r25, r1
  f6:	60 f0       	brcs	.+24     	; 0x110 <__stack+0x71>
		else if(envelope < 95) endrv = 60;
  f8:	8f 35       	cpi	r24, 0x5F	; 95
  fa:	91 05       	cpc	r25, r1
  fc:	10 f4       	brcc	.+4      	; 0x102 <__stack+0x63>
  fe:	8c e3       	ldi	r24, 0x3C	; 60
 100:	34 c0       	rjmp	.+104    	; 0x16a <__stack+0xcb>
		else if(envelope < 140) endrv = 40;
 102:	8c 38       	cpi	r24, 0x8C	; 140
 104:	91 05       	cpc	r25, r1
 106:	58 f0       	brcs	.+22     	; 0x11e <__stack+0x7f>
		else if(envelope < 335) endrv = 0;
 108:	21 e0       	ldi	r18, 0x01	; 1
 10a:	8f 34       	cpi	r24, 0x4F	; 79
 10c:	92 07       	cpc	r25, r18
 10e:	18 f4       	brcc	.+6      	; 0x116 <__stack+0x77>
 110:	10 92 61 00 	sts	0x0061, r1
 114:	2c c0       	rjmp	.+88     	; 0x16e <__stack+0xcf>
		else if(envelope < 340) endrv = 40;
 116:	21 e0       	ldi	r18, 0x01	; 1
 118:	84 35       	cpi	r24, 0x54	; 84
 11a:	92 07       	cpc	r25, r18
 11c:	10 f4       	brcc	.+4      	; 0x122 <__stack+0x83>
 11e:	88 e2       	ldi	r24, 0x28	; 40
 120:	24 c0       	rjmp	.+72     	; 0x16a <__stack+0xcb>
		else if(envelope < 400) endrv = 75;
 122:	21 e0       	ldi	r18, 0x01	; 1
 124:	80 39       	cpi	r24, 0x90	; 144
 126:	92 07       	cpc	r25, r18
 128:	10 f4       	brcc	.+4      	; 0x12e <__stack+0x8f>
 12a:	8b e4       	ldi	r24, 0x4B	; 75
 12c:	1e c0       	rjmp	.+60     	; 0x16a <__stack+0xcb>
		else if(envelope < 440) endrv = 90;
 12e:	21 e0       	ldi	r18, 0x01	; 1
 130:	88 3b       	cpi	r24, 0xB8	; 184
 132:	92 07       	cpc	r25, r18
 134:	10 f4       	brcc	.+4      	; 0x13a <__stack+0x9b>
 136:	8a e5       	ldi	r24, 0x5A	; 90
 138:	18 c0       	rjmp	.+48     	; 0x16a <__stack+0xcb>
		else if(envelope < 480) endrv = 110;
 13a:	21 e0       	ldi	r18, 0x01	; 1
 13c:	80 3e       	cpi	r24, 0xE0	; 224
 13e:	92 07       	cpc	r25, r18
 140:	10 f4       	brcc	.+4      	; 0x146 <__stack+0xa7>
 142:	8e e6       	ldi	r24, 0x6E	; 110
 144:	12 c0       	rjmp	.+36     	; 0x16a <__stack+0xcb>
		else if(envelope < 490) endrv = 180;
 146:	21 e0       	ldi	r18, 0x01	; 1
 148:	8a 3e       	cpi	r24, 0xEA	; 234
 14a:	92 07       	cpc	r25, r18
 14c:	10 f4       	brcc	.+4      	; 0x152 <__stack+0xb3>
 14e:	84 eb       	ldi	r24, 0xB4	; 180
 150:	0c c0       	rjmp	.+24     	; 0x16a <__stack+0xcb>
		else if(envelope < 510) endrv = 190;
 152:	21 e0       	ldi	r18, 0x01	; 1
 154:	8e 3f       	cpi	r24, 0xFE	; 254
 156:	92 07       	cpc	r25, r18
 158:	10 f4       	brcc	.+4      	; 0x15e <__stack+0xbf>
 15a:	8e eb       	ldi	r24, 0xBE	; 190
 15c:	06 c0       	rjmp	.+12     	; 0x16a <__stack+0xcb>
		else if(envelope < 530) endrv = 200;
 15e:	82 51       	subi	r24, 0x12	; 18
 160:	92 40       	sbci	r25, 0x02	; 2
 162:	10 f4       	brcc	.+4      	; 0x168 <__stack+0xc9>
 164:	88 ec       	ldi	r24, 0xC8	; 200
 166:	01 c0       	rjmp	.+2      	; 0x16a <__stack+0xcb>
		else endrv = 255;
 168:	8f ef       	ldi	r24, 0xFF	; 255
 16a:	80 93 61 00 	sts	0x0061, r24
		
		temp = temp + (endrv - enval);
 16e:	80 91 61 00 	lds	r24, 0x0061
 172:	99 27       	eor	r25, r25
 174:	20 91 60 00 	lds	r18, 0x0060
 178:	82 1b       	sub	r24, r18
 17a:	91 09       	sbc	r25, r1
 17c:	28 2f       	mov	r18, r24
 17e:	39 2f       	mov	r19, r25
 180:	44 27       	eor	r20, r20
 182:	37 fd       	sbrc	r19, 7
 184:	40 95       	com	r20
 186:	54 2f       	mov	r21, r20
 188:	80 91 69 00 	lds	r24, 0x0069
 18c:	90 91 6a 00 	lds	r25, 0x006A
 190:	a0 91 6b 00 	lds	r26, 0x006B
 194:	b0 91 6c 00 	lds	r27, 0x006C
 198:	82 0f       	add	r24, r18
 19a:	93 1f       	adc	r25, r19
 19c:	a4 1f       	adc	r26, r20
 19e:	b5 1f       	adc	r27, r21
 1a0:	80 93 69 00 	sts	0x0069, r24
 1a4:	90 93 6a 00 	sts	0x006A, r25
 1a8:	a0 93 6b 00 	sts	0x006B, r26
 1ac:	b0 93 6c 00 	sts	0x006C, r27
		
		enval = temp >> 5;
 1b0:	25 e0       	ldi	r18, 0x05	; 5
 1b2:	b5 95       	asr	r27
 1b4:	a7 95       	ror	r26
 1b6:	97 95       	ror	r25
 1b8:	87 95       	ror	r24
 1ba:	2a 95       	dec	r18
 1bc:	d1 f7       	brne	.-12     	; 0x1b2 <__stack+0x113>
 1be:	80 93 60 00 	sts	0x0060, r24
		
		if((acosum > 50) || (timeout == 0))
 1c2:	80 91 6d 00 	lds	r24, 0x006D
 1c6:	83 33       	cpi	r24, 0x33	; 51
 1c8:	60 f4       	brcc	.+24     	; 0x1e2 <__stack+0x143>
 1ca:	80 91 62 00 	lds	r24, 0x0062
 1ce:	90 91 63 00 	lds	r25, 0x0063
 1d2:	a0 91 64 00 	lds	r26, 0x0064
 1d6:	b0 91 65 00 	lds	r27, 0x0065
 1da:	00 97       	sbiw	r24, 0x00	; 0
 1dc:	a1 05       	cpc	r26, r1
 1de:	b1 05       	cpc	r27, r1
 1e0:	c9 f4       	brne	.+50     	; 0x214 <__stack+0x175>
		{
			if(envelope < ((timeout)?272:520)) PORTB &= ~(1 << PB3);
 1e2:	80 91 62 00 	lds	r24, 0x0062
 1e6:	90 91 63 00 	lds	r25, 0x0063
 1ea:	a0 91 64 00 	lds	r26, 0x0064
 1ee:	b0 91 65 00 	lds	r27, 0x0065
 1f2:	20 91 67 00 	lds	r18, 0x0067
 1f6:	30 91 68 00 	lds	r19, 0x0068
 1fa:	00 97       	sbiw	r24, 0x00	; 0
 1fc:	a1 05       	cpc	r26, r1
 1fe:	b1 05       	cpc	r27, r1
 200:	21 f0       	breq	.+8      	; 0x20a <__stack+0x16b>
 202:	20 51       	subi	r18, 0x10	; 16
 204:	31 40       	sbci	r19, 0x01	; 1
 206:	20 f0       	brcs	.+8      	; 0x210 <__stack+0x171>
 208:	05 c0       	rjmp	.+10     	; 0x214 <__stack+0x175>
 20a:	28 50       	subi	r18, 0x08	; 8
 20c:	32 40       	sbci	r19, 0x02	; 2
 20e:	10 f4       	brcc	.+4      	; 0x214 <__stack+0x175>
 210:	c3 98       	cbi	0x18, 3	; 24
 212:	01 c0       	rjmp	.+2      	; 0x216 <__stack+0x177>
			else PORTB |= (1 << PB3);
		}
		else PORTB |= (1 << PB3);
 214:	c3 9a       	sbi	0x18, 3	; 24
		acosum = 0;
 216:	10 92 6d 00 	sts	0x006D, r1
				
		if(++envelope == 544) 
 21a:	80 91 67 00 	lds	r24, 0x0067
 21e:	90 91 68 00 	lds	r25, 0x0068
 222:	01 96       	adiw	r24, 0x01	; 1
 224:	90 93 68 00 	sts	0x0068, r25
 228:	80 93 67 00 	sts	0x0067, r24
 22c:	80 52       	subi	r24, 0x20	; 32
 22e:	92 40       	sbci	r25, 0x02	; 2
 230:	21 f4       	brne	.+8      	; 0x23a <__stack+0x19b>
		{
			envelope = 0;
 232:	10 92 68 00 	sts	0x0068, r1
 236:	10 92 67 00 	sts	0x0067, r1
		}
		OCR0A = (timeout) ? enval : 255;
 23a:	80 91 62 00 	lds	r24, 0x0062
 23e:	90 91 63 00 	lds	r25, 0x0063
 242:	a0 91 64 00 	lds	r26, 0x0064
 246:	b0 91 65 00 	lds	r27, 0x0065
 24a:	00 97       	sbiw	r24, 0x00	; 0
 24c:	a1 05       	cpc	r26, r1
 24e:	b1 05       	cpc	r27, r1
 250:	19 f0       	breq	.+6      	; 0x258 <__stack+0x1b9>
 252:	80 91 60 00 	lds	r24, 0x0060
 256:	01 c0       	rjmp	.+2      	; 0x25a <__stack+0x1bb>
 258:	8f ef       	ldi	r24, 0xFF	; 255
 25a:	86 bf       	out	0x36, r24	; 54
 25c:	bf 91       	pop	r27
 25e:	af 91       	pop	r26
 260:	9f 91       	pop	r25
 262:	8f 91       	pop	r24
 264:	5f 91       	pop	r21
 266:	4f 91       	pop	r20
 268:	3f 91       	pop	r19
 26a:	2f 91       	pop	r18
 26c:	0f 90       	pop	r0
 26e:	0f be       	out	0x3f, r0	; 63
 270:	0f 90       	pop	r0
 272:	1f 90       	pop	r1
 274:	18 95       	reti

00000276 <main>:
	}	
}

int main(void)
{
 276:	cf e9       	ldi	r28, 0x9F	; 159
 278:	d0 e0       	ldi	r29, 0x00	; 0
 27a:	de bf       	out	0x3e, r29	; 62
 27c:	cd bf       	out	0x3d, r28	; 61
	ACSR = 0x40;
 27e:	80 e4       	ldi	r24, 0x40	; 64
 280:	88 b9       	out	0x08, r24	; 8
	TCCR0A = 0xc3;
 282:	83 ec       	ldi	r24, 0xC3	; 195
 284:	8f bd       	out	0x2f, r24	; 47
	TCCR0B = 0x01;
 286:	81 e0       	ldi	r24, 0x01	; 1
 288:	83 bf       	out	0x33, r24	; 51
	OCR0A = 0xff;
 28a:	8f ef       	ldi	r24, 0xFF	; 255
 28c:	86 bf       	out	0x36, r24	; 54
	DDRB = 0x0d;
 28e:	8d e0       	ldi	r24, 0x0D	; 13
 290:	87 bb       	out	0x17, r24	; 23
	TIMSK0 = 0x02;		
 292:	82 e0       	ldi	r24, 0x02	; 2
 294:	89 bf       	out	0x39, r24	; 57
	sei();
 296:	78 94       	sei
	for (;;)
	{	
		sleep_mode();
 298:	85 b7       	in	r24, 0x35	; 53
 29a:	80 62       	ori	r24, 0x20	; 32
 29c:	85 bf       	out	0x35, r24	; 53
 29e:	88 95       	sleep
 2a0:	85 b7       	in	r24, 0x35	; 53
 2a2:	8f 7d       	andi	r24, 0xDF	; 223
 2a4:	85 bf       	out	0x35, r24	; 53
 2a6:	f8 cf       	rjmp	.-16     	; 0x298 <main+0x22>

⌨️ 快捷键说明

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