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

📄 tc1_4.lss

📁 arm的功能测试模块
💻 LSS
字号:

TC1_4.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00000162  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000000  00800060  00000162  000001f6  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000000  00800060  00000162  000001f6  2**0
                  ALLOC
  3 .noinit       00000000  00800060  00800060  000001f6  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  000001f6  2**0
                  CONTENTS
  5 .debug_aranges 00000014  00000000  00000000  000001f6  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_pubnames 0000003a  00000000  00000000  0000020a  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_info   00000146  00000000  00000000  00000244  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_abbrev 0000004b  00000000  00000000  0000038a  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_line   0000013f  00000000  00000000  000003d5  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

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

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:	e2 e6       	ldi	r30, 0x62	; 98
  68:	f1 e0       	ldi	r31, 0x01	; 1
  6a:	02 c0       	rjmp	.+4      	; 0x70

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

00000070 <.do_copy_data_start>:
  70:	a0 36       	cpi	r26, 0x60	; 96
  72:	b1 07       	cpc	r27, r17
  74:	d9 f7       	brne	.-10     	; 0x6c

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

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

00000080 <.do_clear_bss_start>:
  80:	a0 36       	cpi	r26, 0x60	; 96
  82:	b1 07       	cpc	r27, r17
  84:	e1 f7       	brne	.-8      	; 0x7e
  86:	0c 94 a4 00 	jmp	0x148

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

0000008e <init_timer1>:


//TC1比较匹配A中断初始化
void init_timer1(void)
{
  8e:	cf 93       	push	r28
  90:	df 93       	push	r29
  92:	cd b7       	in	r28, 0x3d	; 61
  94:	de b7       	in	r29, 0x3e	; 62
  TCCR1A=0XC0;       //达到匹配值时,OC1A变高
  96:	80 ec       	ldi	r24, 0xC0	; 192
  98:	80 93 4f 00 	sts	0x004F, r24
  TCCR1B=0X0C;      //采用CTC模式,WGM13 WGM12 WGM11 WGM10=0 1 0 0 ;具体见手册,对主频256分频
  9c:	8c e0       	ldi	r24, 0x0C	; 12
  9e:	80 93 4e 00 	sts	0x004E, r24
  TCNT1=0X0000;     //置TCNT1初值为0
  a2:	10 92 4d 00 	sts	0x004D, r1
  a6:	10 92 4c 00 	sts	0x004C, r1
  OCR1A=0X0138;     //OCR1A置312,即匹配值为312,
  aa:	88 e3       	ldi	r24, 0x38	; 56
  ac:	91 e0       	ldi	r25, 0x01	; 1
  ae:	90 93 4b 00 	sts	0x004B, r25
  b2:	80 93 4a 00 	sts	0x004A, r24
  TIMSK=0X10;       //允许TC1比较匹配A中断
  b6:	80 e1       	ldi	r24, 0x10	; 16
  b8:	80 93 59 00 	sts	0x0059, r24
  TIFR=0XFF;        //写1清中断标志位
  bc:	8f ef       	ldi	r24, 0xFF	; 255
  be:	80 93 58 00 	sts	0x0058, r24
  c2:	df 91       	pop	r29
  c4:	cf 91       	pop	r28
  c6:	08 95       	ret

000000c8 <__vector_6>:
  }
  
  
SIGNAL(SIG_OUTPUT_COMPARE1A)
{
  c8:	1f 92       	push	r1
  ca:	0f 92       	push	r0
  cc:	0f b6       	in	r0, 0x3f	; 63
  ce:	0f 92       	push	r0
  d0:	11 24       	eor	r1, r1
  d2:	2f 93       	push	r18
  d4:	3f 93       	push	r19
  d6:	8f 93       	push	r24
  d8:	9f 93       	push	r25
  da:	cf 93       	push	r28
  dc:	df 93       	push	r29
  de:	cd b7       	in	r28, 0x3d	; 61
  e0:	de b7       	in	r29, 0x3e	; 62
 if((TCCR1A&(1<<COM1A0))==0)
  e2:	80 91 4f 00 	lds	r24, 0x004F
  e6:	99 27       	eor	r25, r25
  e8:	9c 01       	movw	r18, r24
  ea:	00 24       	eor	r0, r0
  ec:	22 0f       	add	r18, r18
  ee:	33 1f       	adc	r19, r19
  f0:	00 1c       	adc	r0, r0
  f2:	22 0f       	add	r18, r18
  f4:	33 1f       	adc	r19, r19
  f6:	00 1c       	adc	r0, r0
  f8:	23 2f       	mov	r18, r19
  fa:	30 2d       	mov	r19, r0
  fc:	81 e0       	ldi	r24, 0x01	; 1
  fe:	90 e0       	ldi	r25, 0x00	; 0
 100:	82 27       	eor	r24, r18
 102:	93 27       	eor	r25, r19
 104:	81 70       	andi	r24, 0x01	; 1
 106:	90 70       	andi	r25, 0x00	; 0
 108:	00 97       	sbiw	r24, 0x00	; 0
 10a:	51 f0       	breq	.+20     	; 0x120
   {TCCR1A=0XC0;       //若为0,下次达到匹配值时,OC1A变高
 10c:	80 ec       	ldi	r24, 0xC0	; 192
 10e:	80 93 4f 00 	sts	0x004F, r24
    OCR1A=0X0138;      //送下次比较匹配值312
 112:	88 e3       	ldi	r24, 0x38	; 56
 114:	91 e0       	ldi	r25, 0x01	; 1
 116:	90 93 4b 00 	sts	0x004B, r25
 11a:	80 93 4a 00 	sts	0x004A, r24
 11e:	09 c0       	rjmp	.+18     	; 0x132
	}
  else
   {OCR1A=0X009C;     //若为1,送下次比较匹配值156
 120:	8c e9       	ldi	r24, 0x9C	; 156
 122:	90 e0       	ldi	r25, 0x00	; 0
 124:	90 93 4b 00 	sts	0x004B, r25
 128:	80 93 4a 00 	sts	0x004A, r24
    TCCR1A=0X80;       //下次达到匹配值时,OC1A变低
 12c:	80 e8       	ldi	r24, 0x80	; 128
 12e:	80 93 4f 00 	sts	0x004F, r24
 132:	df 91       	pop	r29
 134:	cf 91       	pop	r28
 136:	9f 91       	pop	r25
 138:	8f 91       	pop	r24
 13a:	3f 91       	pop	r19
 13c:	2f 91       	pop	r18
 13e:	0f 90       	pop	r0
 140:	0f be       	out	0x3f, r0	; 63
 142:	0f 90       	pop	r0
 144:	1f 90       	pop	r1
 146:	18 95       	reti

00000148 <main>:
	}
 }
 
 int main(void)
 {
 148:	cf e5       	ldi	r28, 0x5F	; 95
 14a:	d4 e0       	ldi	r29, 0x04	; 4
 14c:	de bf       	out	0x3e, r29	; 62
 14e:	cd bf       	out	0x3d, r28	; 61
   DDRD|=(1<<PD5);  //定义PD5为输出
 150:	80 91 31 00 	lds	r24, 0x0031
 154:	80 62       	ori	r24, 0x20	; 32
 156:	80 93 31 00 	sts	0x0031, r24
   init_timer1();
 15a:	0e 94 47 00 	call	0x8e
   sei();
 15e:	78 94       	sei
   while(1){}
 160:	ff cf       	rjmp	.-2      	; 0x160

⌨️ 快捷键说明

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