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

📄 main.lss

📁 自己以前编的avr_gcc的pwm程序
💻 LSS
字号:

main.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         000000b4  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000000  00800060  000000b4  00000148  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000001  00800060  00800060  00000148  2**0
                  ALLOC
  3 .noinit       00000000  00800061  00800061  00000148  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  00000148  2**0
                  CONTENTS
  5 .stab         0000036c  00000000  00000000  00000148  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      00000084  00000000  00000000  000004b4  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_aranges 00000014  00000000  00000000  00000538  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_pubnames 00000040  00000000  00000000  0000054c  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_info   0000010d  00000000  00000000  0000058c  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_abbrev 000000db  00000000  00000000  00000699  2**0
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_line   00000113  00000000  00000000  00000774  2**0
                  CONTENTS, READONLY, DEBUGGING
 12 .debug_str    00000093  00000000  00000000  00000887  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	12 c0       	rjmp	.+36     	; 0x26 <__ctors_end>
   2:	2b c0       	rjmp	.+86     	; 0x5a <__bad_interrupt>
   4:	2a c0       	rjmp	.+84     	; 0x5a <__bad_interrupt>
   6:	29 c0       	rjmp	.+82     	; 0x5a <__bad_interrupt>
   8:	28 c0       	rjmp	.+80     	; 0x5a <__bad_interrupt>
   a:	27 c0       	rjmp	.+78     	; 0x5a <__bad_interrupt>
   c:	26 c0       	rjmp	.+76     	; 0x5a <__bad_interrupt>
   e:	25 c0       	rjmp	.+74     	; 0x5a <__bad_interrupt>
  10:	24 c0       	rjmp	.+72     	; 0x5a <__bad_interrupt>
  12:	23 c0       	rjmp	.+70     	; 0x5a <__bad_interrupt>
  14:	22 c0       	rjmp	.+68     	; 0x5a <__bad_interrupt>
  16:	21 c0       	rjmp	.+66     	; 0x5a <__bad_interrupt>
  18:	20 c0       	rjmp	.+64     	; 0x5a <__bad_interrupt>
  1a:	1f c0       	rjmp	.+62     	; 0x5a <__bad_interrupt>
  1c:	1e c0       	rjmp	.+60     	; 0x5a <__bad_interrupt>
  1e:	1d c0       	rjmp	.+58     	; 0x5a <__bad_interrupt>
  20:	1c c0       	rjmp	.+56     	; 0x5a <__bad_interrupt>
  22:	1b c0       	rjmp	.+54     	; 0x5a <__bad_interrupt>
  24:	1a c0       	rjmp	.+52     	; 0x5a <__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:	e4 eb       	ldi	r30, 0xB4	; 180
  3a:	f0 e0       	ldi	r31, 0x00	; 0
  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:	a0 36       	cpi	r26, 0x60	; 96
  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:	a0 e6       	ldi	r26, 0x60	; 96
  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:	a1 36       	cpi	r26, 0x61	; 97
  54:	b1 07       	cpc	r27, r17
  56:	e1 f7       	brne	.-8      	; 0x50 <.do_clear_bss_loop>
  58:	21 c0       	rjmp	.+66     	; 0x9c <main>

0000005a <__bad_interrupt>:
  5a:	d2 cf       	rjmp	.-92     	; 0x0 <__vectors>

0000005c <delayMs>:
    uchar m;
	
	///延时1Ms
	void delayMs(uint t)
	  {
  5c:	ac 01       	movw	r20, r24
	      uint i=0;
  5e:	20 e0       	ldi	r18, 0x00	; 0
  60:	30 e0       	ldi	r19, 0x00	; 0
         for(;i<t;i++) 
  62:	24 17       	cp	r18, r20
  64:	35 07       	cpc	r19, r21
  66:	38 f4       	brcc	.+14     	; 0x76 <delayMs+0x1a>
    milliseconds can be achieved.
 */
void
_delay_loop_2(uint16_t __count)
{
  68:	88 ee       	ldi	r24, 0xE8	; 232
  6a:	93 e0       	ldi	r25, 0x03	; 3
	__asm__ volatile (
  6c:	01 97       	sbiw	r24, 0x01	; 1
  6e:	f1 f7       	brne	.-4      	; 0x6c <delayMs+0x10>
  70:	2f 5f       	subi	r18, 0xFF	; 255
  72:	3f 4f       	sbci	r19, 0xFF	; 255
  74:	f6 cf       	rjmp	.-20     	; 0x62 <delayMs+0x6>
  76:	08 95       	ret

00000078 <time1_PWM_init>:
	        
			_delay_loop_2(250*4);
	   
	  }
	
  /////T1的PWM
   
   void time1_PWM_init(void)
     {                           ///8M/2*1024*TOP=4Hz
	    OCR1AH=0x03;            ///定时TOP值         时间约为5秒 频率为0.2Hz	 
  78:	83 e0       	ldi	r24, 0x03	; 3
  7a:	8b bd       	out	0x2b, r24	; 43
		OCR1AL=0xff;            ///8000000/(1024*0.2)=19531   39061
  7c:	9f ef       	ldi	r25, 0xFF	; 255
  7e:	9a bd       	out	0x2a, r25	; 42
								 
								 
        OCR1BH=0x01;              ///设定0C1B的PWM值  时间约为2秒  占空比40%   								 
  80:	81 e0       	ldi	r24, 0x01	; 1
  82:	89 bd       	out	0x29, r24	; 41
	    OCR1BL=0xff;              ///8000000/(1024*0.5)=7812.5   15624
  84:	98 bd       	out	0x28, r25	; 40
		TCCR1B|=_BV(CS12)|_BV(CS11)|_BV(CS10);	               ///1024分频
  86:	8e b5       	in	r24, 0x2e	; 46
  88:	87 60       	ori	r24, 0x07	; 7
  8a:	8e bd       	out	0x2e, r24	; 46
        TCCR1A|=_BV(WGM10)|_BV(COM1B0);   ///PWM模式9  OCB1输出PWM			 
  8c:	8f b5       	in	r24, 0x2f	; 47
  8e:	81 61       	ori	r24, 0x11	; 17
  90:	8f bd       	out	0x2f, r24	; 47
		TCCR1B=_BV(WGM13)/*|_BV(WGM12)*/;     ///OCA1为普通I/O口
  92:	80 e1       	ldi	r24, 0x10	; 16
  94:	8e bd       	out	0x2e, r24	; 46
		TCNT1H=0;
  96:	1d bc       	out	0x2d, r1	; 45
		TCNT1L=0;
  98:	1c bc       	out	0x2c, r1	; 44
  9a:	08 95       	ret

0000009c <main>:
			                                                
	 }
	 
	
   int main(void)
	 {
  9c:	cf e5       	ldi	r28, 0x5F	; 95
  9e:	d4 e0       	ldi	r29, 0x04	; 4
  a0:	de bf       	out	0x3e, r29	; 62
  a2:	cd bf       	out	0x3d, r28	; 61

	     DDRD=0xff;
  a4:	8f ef       	ldi	r24, 0xFF	; 255
  a6:	81 bb       	out	0x11, r24	; 17
	     DDRB|=_BV(PB2);
  a8:	ba 9a       	sbi	0x17, 2	; 23
         PORTB&=~_BV(PB2);              //设置0CB1为输出 
  aa:	c2 98       	cbi	0x18, 2	; 24
		 time1_PWM_init();
  ac:	e5 df       	rcall	.-54     	; 0x78 <time1_PWM_init>
  ae:	8f e0       	ldi	r24, 0x0F	; 15
	     while(1)
			{
				PORTD=0x0F;
  b0:	82 bb       	out	0x12, r24	; 18
  b2:	fe cf       	rjmp	.-4      	; 0xb0 <main+0x14>

⌨️ 快捷键说明

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