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

📄 pwm32.lss

📁 本人用AVR mega32写的一个关于输出32路PWM的程序
💻 LSS
📖 第 1 页 / 共 5 页
字号:

Pwm32.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .data         0000000a  00800100  000033d0  00003464  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  1 .text         000033d0  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  2 .bss          000001aa  0080010a  0080010a  0000346e  2**0
                  ALLOC
  3 .noinit       00000000  008002b4  008002b4  0000346e  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  0000346e  2**0
                  CONTENTS
  5 .stab         0000036c  00000000  00000000  00003470  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      00000084  00000000  00000000  000037dc  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_aranges 0000012c  00000000  00000000  00003860  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_pubnames 0000066a  00000000  00000000  0000398c  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_info   00002a3b  00000000  00000000  00003ff6  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_abbrev 00000a3f  00000000  00000000  00006a31  2**0
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_line   000019ac  00000000  00000000  00007470  2**0
                  CONTENTS, READONLY, DEBUGGING
 12 .debug_str    0000008f  00000000  00000000  00008e1c  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
       0:	0c 94 2e 00 	jmp	0x5c <__ctors_end>
       4:	0c 94 49 00 	jmp	0x92 <__bad_interrupt>
       8:	0c 94 b9 05 	jmp	0xb72 <__vector_2>
       c:	0c 94 49 00 	jmp	0x92 <__bad_interrupt>
      10:	0c 94 83 05 	jmp	0xb06 <__vector_4>
      14:	0c 94 49 00 	jmp	0x92 <__bad_interrupt>
      18:	0c 94 49 00 	jmp	0x92 <__bad_interrupt>
      1c:	0c 94 c4 04 	jmp	0x988 <__vector_7>
      20:	0c 94 49 00 	jmp	0x92 <__bad_interrupt>
      24:	0c 94 49 00 	jmp	0x92 <__bad_interrupt>
      28:	0c 94 33 04 	jmp	0x866 <__vector_10>
      2c:	0c 94 49 00 	jmp	0x92 <__bad_interrupt>
      30:	0c 94 49 00 	jmp	0x92 <__bad_interrupt>
      34:	0c 94 9a 01 	jmp	0x334 <__vector_13>
      38:	0c 94 49 00 	jmp	0x92 <__bad_interrupt>
      3c:	0c 94 49 00 	jmp	0x92 <__bad_interrupt>
      40:	0c 94 49 00 	jmp	0x92 <__bad_interrupt>
      44:	0c 94 49 00 	jmp	0x92 <__bad_interrupt>
      48:	0c 94 49 00 	jmp	0x92 <__bad_interrupt>
      4c:	0c 94 49 00 	jmp	0x92 <__bad_interrupt>
      50:	0c 94 49 00 	jmp	0x92 <__bad_interrupt>
      54:	0c 94 49 00 	jmp	0x92 <__bad_interrupt>
      58:	0c 94 49 00 	jmp	0x92 <__bad_interrupt>

0000005c <__ctors_end>:
      5c:	11 24       	eor	r1, r1
      5e:	1f be       	out	0x3f, r1	; 63
      60:	cf ef       	ldi	r28, 0xFF	; 255
      62:	d4 e0       	ldi	r29, 0x04	; 4
      64:	de bf       	out	0x3e, r29	; 62
      66:	cd bf       	out	0x3d, r28	; 61

00000068 <__do_copy_data>:
      68:	11 e0       	ldi	r17, 0x01	; 1
      6a:	a0 e0       	ldi	r26, 0x00	; 0
      6c:	b1 e0       	ldi	r27, 0x01	; 1
      6e:	e0 ed       	ldi	r30, 0xD0	; 208
      70:	f3 e3       	ldi	r31, 0x33	; 51
      72:	02 c0       	rjmp	.+4      	; 0x78 <.do_copy_data_start>

00000074 <.do_copy_data_loop>:
      74:	05 90       	lpm	r0, Z+
      76:	0d 92       	st	X+, r0

00000078 <.do_copy_data_start>:
      78:	aa 30       	cpi	r26, 0x0A	; 10
      7a:	b1 07       	cpc	r27, r17
      7c:	d9 f7       	brne	.-10     	; 0x74 <.do_copy_data_loop>

0000007e <__do_clear_bss>:
      7e:	12 e0       	ldi	r17, 0x02	; 2
      80:	aa e0       	ldi	r26, 0x0A	; 10
      82:	b1 e0       	ldi	r27, 0x01	; 1
      84:	01 c0       	rjmp	.+2      	; 0x88 <.do_clear_bss_start>

00000086 <.do_clear_bss_loop>:
      86:	1d 92       	st	X+, r1

00000088 <.do_clear_bss_start>:
      88:	a4 3b       	cpi	r26, 0xB4	; 180
      8a:	b1 07       	cpc	r27, r17
      8c:	e1 f7       	brne	.-8      	; 0x86 <.do_clear_bss_loop>
      8e:	0c 94 4b 00 	jmp	0x96 <main>

00000092 <__bad_interrupt>:
      92:	0c 94 00 00 	jmp	0x0 <__vectors>

00000096 <main>:
 Return value:   None                     
 Author:         Chen yuan zhen May.30.2008 
*************************************************************/
void main(void) 
{  
      96:	c1 ef       	ldi	r28, 0xF1	; 241
      98:	d4 e0       	ldi	r29, 0x04	; 4
      9a:	de bf       	out	0x3e, r29	; 62
      9c:	cd bf       	out	0x3d, r28	; 61
    SP =0x04FF;  	
      9e:	8f ef       	ldi	r24, 0xFF	; 255
      a0:	94 e0       	ldi	r25, 0x04	; 4
      a2:	90 93 5e 00 	sts	0x005E, r25
      a6:	80 93 5d 00 	sts	0x005D, r24
	SET_Y_LED;
      aa:	80 91 34 00 	lds	r24, 0x0034
      ae:	84 60       	ori	r24, 0x04	; 4
      b0:	80 93 34 00 	sts	0x0034, r24
	SystemInitial( );
      b4:	0e 94 a2 03 	call	0x744 <SystemInitial>
    DownLoadDispose( );
      b8:	0e 94 7e 0c 	call	0x18fc <DownLoadDispose>
   The maximal possible delay is 768 us / F_CPU in MHz.
 */
void
_delay_us(double __us)
{
      bc:	80 e0       	ldi	r24, 0x00	; 0
      be:	90 e0       	ldi	r25, 0x00	; 0
      c0:	a0 e2       	ldi	r26, 0x20	; 32
      c2:	b1 e4       	ldi	r27, 0x41	; 65
      c4:	89 83       	std	Y+1, r24	; 0x01
      c6:	9a 83       	std	Y+2, r25	; 0x02
      c8:	ab 83       	std	Y+3, r26	; 0x03
      ca:	bc 83       	std	Y+4, r27	; 0x04
	uint8_t __ticks;
	double __tmp = ((F_CPU) / 3e6) * __us;
      cc:	2b ea       	ldi	r18, 0xAB	; 171
      ce:	3a ea       	ldi	r19, 0xAA	; 170
      d0:	4a e2       	ldi	r20, 0x2A	; 42
      d2:	50 e4       	ldi	r21, 0x40	; 64
      d4:	69 81       	ldd	r22, Y+1	; 0x01
      d6:	7a 81       	ldd	r23, Y+2	; 0x02
      d8:	8b 81       	ldd	r24, Y+3	; 0x03
      da:	9c 81       	ldd	r25, Y+4	; 0x04
      dc:	0e 94 c1 15 	call	0x2b82 <__mulsf3>
      e0:	dc 01       	movw	r26, r24
      e2:	cb 01       	movw	r24, r22
      e4:	8e 83       	std	Y+6, r24	; 0x06
      e6:	9f 83       	std	Y+7, r25	; 0x07
      e8:	a8 87       	std	Y+8, r26	; 0x08
      ea:	b9 87       	std	Y+9, r27	; 0x09
	if (__tmp < 1.0)
      ec:	20 e0       	ldi	r18, 0x00	; 0
      ee:	30 e0       	ldi	r19, 0x00	; 0
      f0:	40 e8       	ldi	r20, 0x80	; 128
      f2:	5f e3       	ldi	r21, 0x3F	; 63
      f4:	6e 81       	ldd	r22, Y+6	; 0x06
      f6:	7f 81       	ldd	r23, Y+7	; 0x07
      f8:	88 85       	ldd	r24, Y+8	; 0x08
      fa:	99 85       	ldd	r25, Y+9	; 0x09
      fc:	0e 94 48 17 	call	0x2e90 <__ltsf2>
     100:	88 23       	and	r24, r24
     102:	0c f0       	brlt	.+2      	; 0x106 <main+0x70>
     104:	03 c0       	rjmp	.+6      	; 0x10c <main+0x76>
		__ticks = 1;
     106:	81 e0       	ldi	r24, 0x01	; 1
     108:	8d 83       	std	Y+5, r24	; 0x05
     10a:	18 c0       	rjmp	.+48     	; 0x13c <main+0xa6>
	else if (__tmp > 255)
     10c:	20 e0       	ldi	r18, 0x00	; 0
     10e:	30 e0       	ldi	r19, 0x00	; 0
     110:	4f e7       	ldi	r20, 0x7F	; 127
     112:	53 e4       	ldi	r21, 0x43	; 67
     114:	6e 81       	ldd	r22, Y+6	; 0x06
     116:	7f 81       	ldd	r23, Y+7	; 0x07
     118:	88 85       	ldd	r24, Y+8	; 0x08
     11a:	99 85       	ldd	r25, Y+9	; 0x09
     11c:	0e 94 dc 16 	call	0x2db8 <__gtsf2>
     120:	18 16       	cp	r1, r24
     122:	0c f0       	brlt	.+2      	; 0x126 <main+0x90>
     124:	02 c0       	rjmp	.+4      	; 0x12a <main+0x94>
		__ticks = 0;	/* i.e. 256 */
     126:	1d 82       	std	Y+5, r1	; 0x05
     128:	09 c0       	rjmp	.+18     	; 0x13c <main+0xa6>
	else
		__ticks = (uint8_t)__tmp;
     12a:	6e 81       	ldd	r22, Y+6	; 0x06
     12c:	7f 81       	ldd	r23, Y+7	; 0x07
     12e:	88 85       	ldd	r24, Y+8	; 0x08
     130:	99 85       	ldd	r25, Y+9	; 0x09
     132:	0e 94 0d 14 	call	0x281a <__fixunssfsi>
     136:	dc 01       	movw	r26, r24
     138:	cb 01       	movw	r24, r22
     13a:	8d 83       	std	Y+5, r24	; 0x05
     13c:	8d 81       	ldd	r24, Y+5	; 0x05
     13e:	8a 87       	std	Y+10, r24	; 0x0a
     140:	8a 85       	ldd	r24, Y+10	; 0x0a
     142:	8a 95       	dec	r24
     144:	f1 f7       	brne	.-4      	; 0x142 <main+0xac>
     146:	8a 87       	std	Y+10, r24	; 0x0a
	

    
    _delay_us(10);
    //HStartTime=EEPROM_read(HSTIME_AD);
	//LStartTime=EEPROM_read(LSTIME_AD);
	GentleStartTime = 30;                 //(HStartTime*256+LStartTime)/8;         //31
     148:	8e e1       	ldi	r24, 0x1E	; 30
     14a:	90 e0       	ldi	r25, 0x00	; 0
     14c:	90 93 5a 01 	sts	0x015A, r25
     150:	80 93 59 01 	sts	0x0159, r24


    T1Start( );                          //启动
     154:	0e 94 a7 04 	call	0x94e <T1Start>
   The maximal possible delay is 262.14 ms / F_CPU in MHz.
 */
void
_delay_ms(double __ms)
{
     158:	80 e0       	ldi	r24, 0x00	; 0
     15a:	90 e0       	ldi	r25, 0x00	; 0
     15c:	a0 ef       	ldi	r26, 0xF0	; 240
     15e:	b1 e4       	ldi	r27, 0x41	; 65
     160:	8e 83       	std	Y+6, r24	; 0x06
     162:	9f 83       	std	Y+7, r25	; 0x07
     164:	a8 87       	std	Y+8, r26	; 0x08
     166:	b9 87       	std	Y+9, r27	; 0x09
	uint16_t __ticks;
	double __tmp = ((F_CPU) / 4e3) * __ms;
     168:	20 e0       	ldi	r18, 0x00	; 0
     16a:	30 e0       	ldi	r19, 0x00	; 0
     16c:	4a ef       	ldi	r20, 0xFA	; 250
     16e:	54 e4       	ldi	r21, 0x44	; 68
     170:	6e 81       	ldd	r22, Y+6	; 0x06
     172:	7f 81       	ldd	r23, Y+7	; 0x07
     174:	88 85       	ldd	r24, Y+8	; 0x08
     176:	99 85       	ldd	r25, Y+9	; 0x09
     178:	0e 94 c1 15 	call	0x2b82 <__mulsf3>
     17c:	dc 01       	movw	r26, r24
     17e:	cb 01       	movw	r24, r22
     180:	89 83       	std	Y+1, r24	; 0x01
     182:	9a 83       	std	Y+2, r25	; 0x02
     184:	ab 83       	std	Y+3, r26	; 0x03
     186:	bc 83       	std	Y+4, r27	; 0x04
	if (__tmp < 1.0)
     188:	20 e0       	ldi	r18, 0x00	; 0
     18a:	30 e0       	ldi	r19, 0x00	; 0
     18c:	40 e8       	ldi	r20, 0x80	; 128
     18e:	5f e3       	ldi	r21, 0x3F	; 63
     190:	69 81       	ldd	r22, Y+1	; 0x01
     192:	7a 81       	ldd	r23, Y+2	; 0x02
     194:	8b 81       	ldd	r24, Y+3	; 0x03
     196:	9c 81       	ldd	r25, Y+4	; 0x04
     198:	0e 94 48 17 	call	0x2e90 <__ltsf2>
     19c:	88 23       	and	r24, r24
     19e:	0c f0       	brlt	.+2      	; 0x1a2 <main+0x10c>
     1a0:	05 c0       	rjmp	.+10     	; 0x1ac <main+0x116>
		__ticks = 1;
     1a2:	81 e0       	ldi	r24, 0x01	; 1
     1a4:	90 e0       	ldi	r25, 0x00	; 0
     1a6:	9c 87       	std	Y+12, r25	; 0x0c
     1a8:	8b 87       	std	Y+11, r24	; 0x0b
     1aa:	1a c0       	rjmp	.+52     	; 0x1e0 <main+0x14a>
	else if (__tmp > 65535)
     1ac:	20 e0       	ldi	r18, 0x00	; 0
     1ae:	3f ef       	ldi	r19, 0xFF	; 255
     1b0:	4f e7       	ldi	r20, 0x7F	; 127
     1b2:	57 e4       	ldi	r21, 0x47	; 71
     1b4:	69 81       	ldd	r22, Y+1	; 0x01
     1b6:	7a 81       	ldd	r23, Y+2	; 0x02
     1b8:	8b 81       	ldd	r24, Y+3	; 0x03
     1ba:	9c 81       	ldd	r25, Y+4	; 0x04
     1bc:	0e 94 dc 16 	call	0x2db8 <__gtsf2>
     1c0:	18 16       	cp	r1, r24
     1c2:	0c f0       	brlt	.+2      	; 0x1c6 <main+0x130>
     1c4:	03 c0       	rjmp	.+6      	; 0x1cc <main+0x136>
		__ticks = 0;	/* i.e. 65536 */
     1c6:	1c 86       	std	Y+12, r1	; 0x0c
     1c8:	1b 86       	std	Y+11, r1	; 0x0b
     1ca:	0a c0       	rjmp	.+20     	; 0x1e0 <main+0x14a>
	else
		__ticks = (uint16_t)__tmp;
     1cc:	69 81       	ldd	r22, Y+1	; 0x01
     1ce:	7a 81       	ldd	r23, Y+2	; 0x02
     1d0:	8b 81       	ldd	r24, Y+3	; 0x03
     1d2:	9c 81       	ldd	r25, Y+4	; 0x04
     1d4:	0e 94 0d 14 	call	0x281a <__fixunssfsi>
     1d8:	dc 01       	movw	r26, r24
     1da:	cb 01       	movw	r24, r22
     1dc:	9c 87       	std	Y+12, r25	; 0x0c
     1de:	8b 87       	std	Y+11, r24	; 0x0b
     1e0:	8b 85       	ldd	r24, Y+11	; 0x0b
     1e2:	9c 85       	ldd	r25, Y+12	; 0x0c
     1e4:	9e 87       	std	Y+14, r25	; 0x0e
     1e6:	8d 87       	std	Y+13, r24	; 0x0d
     1e8:	8d 85       	ldd	r24, Y+13	; 0x0d
     1ea:	9e 85       	ldd	r25, Y+14	; 0x0e
     1ec:	01 97       	sbiw	r24, 0x01	; 1
     1ee:	f1 f7       	brne	.-4      	; 0x1ec <main+0x156>
     1f0:	9e 87       	std	Y+14, r25	; 0x0e
     1f2:	8d 87       	std	Y+13, r24	; 0x0d
	_delay_ms(30);
	
	
	START_FLAG=0;
     1f4:	80 91 c0 01 	lds	r24, 0x01C0
     1f8:	8f 7e       	andi	r24, 0xEF	; 239
     1fa:	80 93 c0 01 	sts	0x01C0, r24
	
	

	    while(!START_FLAG)
     1fe:	80 91 c0 01 	lds	r24, 0x01C0
     202:	80 71       	andi	r24, 0x10	; 16
     204:	88 23       	and	r24, r24
     206:	09 f0       	breq	.+2      	; 0x20a <main+0x174>
     208:	41 c0       	rjmp	.+130    	; 0x28c <main+0x1f6>
		{
    	  	if(PwmStepCounter>PwmPulse[TrueStepCount])               //最开始时应该设为0
     20a:	80 91 88 02 	lds	r24, 0x0288
     20e:	99 27       	eor	r25, r25
     210:	fc 01       	movw	r30, r24
     212:	e3 57       	subi	r30, 0x73	; 115
     214:	fd 4f       	sbci	r31, 0xFD	; 253
     216:	90 81       	ld	r25, Z
     218:	80 91 b0 02 	lds	r24, 0x02B0
     21c:	98 17       	cp	r25, r24
     21e:	78 f7       	brcc	.-34     	; 0x1fe <main+0x168>
      	  	{
	        	PORTA=PwmStepBuffer0[TrueStepCount]  & DDRA;
     220:	80 91 88 02 	lds	r24, 0x0288
     224:	99 27       	eor	r25, r25
     226:	fc 01       	movw	r30, r24
     228:	e8 5c       	subi	r30, 0xC8	; 200
     22a:	fe 4f       	sbci	r31, 0xFE	; 254
     22c:	90 81       	ld	r25, Z
     22e:	80 91 21 00 	lds	r24, 0x0021
     232:	89 23       	and	r24, r25
     234:	80 93 22 00 	sts	0x0022, r24
		    	PORTC=PwmStepBuffer7[TrueStepCount]  & DDRC;
     238:	80 91 88 02 	lds	r24, 0x0288
     23c:	99 27       	eor	r25, r25
     23e:	fc 01       	movw	r30, r24
     240:	e5 59       	subi	r30, 0x95	; 149
     242:	fe 4f       	sbci	r31, 0xFE	; 254
     244:	90 81       	ld	r25, Z
     246:	80 91 27 00 	lds	r24, 0x0027
     24a:	89 23       	and	r24, r25
     24c:	80 93 28 00 	sts	0x0028, r24
	    		PORTD=PwmStepBuffer15[TrueStepCount] & DDRD;
     250:	80 91 88 02 	lds	r24, 0x0288
     254:	99 27       	eor	r25, r25
     256:	fc 01       	movw	r30, r24
     258:	e9 59       	subi	r30, 0x99	; 153
     25a:	fd 4f       	sbci	r31, 0xFD	; 253
     25c:	90 81       	ld	r25, Z
     25e:	80 91 2a 00 	lds	r24, 0x002A

⌨️ 快捷键说明

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