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

📄 ctrl.lss

📁 利用winavr 编写的舵机控制程序
💻 LSS
字号:

ctrl.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00000128  00000000  00000000  00000054  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .debug_aranges 00000020  00000000  00000000  0000017c  2**0
                  CONTENTS, READONLY, DEBUGGING
  2 .debug_pubnames 00000067  00000000  00000000  0000019c  2**0
                  CONTENTS, READONLY, DEBUGGING
  3 .debug_info   000001f9  00000000  00000000  00000203  2**0
                  CONTENTS, READONLY, DEBUGGING
  4 .debug_abbrev 00000128  00000000  00000000  000003fc  2**0
                  CONTENTS, READONLY, DEBUGGING
  5 .debug_line   000001b4  00000000  00000000  00000524  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_frame  00000080  00000000  00000000  000006d8  2**2
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_str    000000a1  00000000  00000000  00000758  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_loc    0000006e  00000000  00000000  000007f9  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	0c 94 2a 00 	jmp	0x54	; 0x54 <__ctors_end>
   4:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
   8:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
   c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  10:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  14:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  18:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  1c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  20:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  24:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  28:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  2c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  30:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  34:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  38:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  3c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  40:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  44:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  48:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  4c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  50:	0c 94 47 00 	jmp	0x8e	; 0x8e <__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:	e8 e2       	ldi	r30, 0x28	; 40
  68:	f1 e0       	ldi	r31, 0x01	; 1
  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:	a0 36       	cpi	r26, 0x60	; 96
  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:	a0 e6       	ldi	r26, 0x60	; 96
  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:	a0 36       	cpi	r26, 0x60	; 96
  82:	b1 07       	cpc	r27, r17
  84:	e1 f7       	brne	.-8      	; 0x7e <.do_clear_bss_loop>
  86:	0e 94 83 00 	call	0x106	; 0x106 <main>
  8a:	0c 94 92 00 	jmp	0x124	; 0x124 <_exit>

0000008e <__bad_interrupt>:
  8e:	0c 94 00 00 	jmp	0	; 0x0 <__heap_end>

00000092 <delay_1us>:
	...
void delay_1us(void)                 //1us延时函数
  {
   uint i;
   for(i=0;i<4;i++)
   asm("nop");
  }
  9a:	08 95       	ret

0000009c <delay_nus>:

void delay_nus(uint n)       //N us延时函数
  {
  9c:	20 e0       	ldi	r18, 0x00	; 0
  9e:	30 e0       	ldi	r19, 0x00	; 0
   uint i=0;
   for (i=0;i<n;i++)
  a0:	28 17       	cp	r18, r24
  a2:	39 07       	cpc	r19, r25
  a4:	38 f4       	brcc	.+14     	; 0xb4 <delay_nus+0x18>
	...
  ae:	2f 5f       	subi	r18, 0xFF	; 255
  b0:	3f 4f       	sbci	r19, 0xFF	; 255
  b2:	f6 cf       	rjmp	.-20     	; 0xa0 <delay_nus+0x4>
  b4:	08 95       	ret

000000b6 <delay_1ms>:
   delay_1us();
  }
  
void delay_1ms(void)                 //1ms延时函数
  {
  b6:	08 95       	ret

000000b8 <delay_nms>:
   uint i;
   for (i=0;i<(uint)(XTAL*143-2);i++);
  }
  
void delay_nms(uint n)       //N ms延时函数
  {
  b8:	08 95       	ret

000000ba <InitIo>:
#define INIT_C
#include "common.h"
void InitIo(void)
{
  ba:	8f ef       	ldi	r24, 0xFF	; 255
  bc:	8a bb       	out	0x1a, r24	; 26
    DDRA  = 0xff;
    PORTA = 0xff;
  be:	8b bb       	out	0x1b, r24	; 27
    DDRB  = 0x00;
  c0:	17 ba       	out	0x17, r1	; 23
    PORTB = 0x00;
  c2:	18 ba       	out	0x18, r1	; 24
    PORTB = 0xff;
  c4:	88 bb       	out	0x18, r24	; 24
    DDRC  = 0xff;
  c6:	84 bb       	out	0x14, r24	; 20
    PORTC = 0xff;    
  c8:	85 bb       	out	0x15, r24	; 21
}
  ca:	08 95       	ret

000000cc <ctrl>:
#include"init.c"
#define DL 500
#define DR 1
void delay_1ms(void);
void ctrl(uint cf, uint n)
{
  cc:	89 2b       	or	r24, r25
  ce:	21 f0       	breq	.+8      	; 0xd8 <ctrl+0xc>
  d0:	80 e0       	ldi	r24, 0x00	; 0
  d2:	90 e0       	ldi	r25, 0x00	; 0
  d4:	21 e0       	ldi	r18, 0x01	; 1
  d6:	13 c0       	rjmp	.+38     	; 0xfe <ctrl+0x32>
  d8:	80 e0       	ldi	r24, 0x00	; 0
  da:	90 e0       	ldi	r25, 0x00	; 0
  dc:	21 e0       	ldi	r18, 0x01	; 1
  de:	06 c0       	rjmp	.+12     	; 0xec <ctrl+0x20>
  uint i;
  uchar j=0x01;
  if(cf==0)
    for(i=0;i<n;i++)
	{
          DDRD=j;
  e0:	21 bb       	out	0x11, r18	; 17
      delay_1ms();//delay_1ms
      j=j<<1;
  e2:	22 0f       	add	r18, r18
      if((j^0x08)==0) j=0x01;
  e4:	28 30       	cpi	r18, 0x08	; 8
  e6:	09 f4       	brne	.+2      	; 0xea <ctrl+0x1e>
  e8:	21 e0       	ldi	r18, 0x01	; 1
void ctrl(uint cf, uint n)
{
  uint i;
  uchar j=0x01;
  if(cf==0)
    for(i=0;i<n;i++)
  ea:	01 96       	adiw	r24, 0x01	; 1
  ec:	86 17       	cp	r24, r22
  ee:	97 07       	cpc	r25, r23
  f0:	b8 f3       	brcs	.-18     	; 0xe0 <ctrl+0x14>
  f2:	08 95       	ret
    }
  else
    {
      for(i=0;i<n;i++)
        {
           DDRD=j;
  f4:	21 bb       	out	0x11, r18	; 17
           delay_nms(DL);
           j=j>>1;
  f6:	26 95       	lsr	r18
           if(j==0) 
  f8:	09 f4       	brne	.+2      	; 0xfc <ctrl+0x30>
  fa:	24 e0       	ldi	r18, 0x04	; 4
      j=j<<1;
      if((j^0x08)==0) j=0x01;
    }
  else
    {
      for(i=0;i<n;i++)
  fc:	01 96       	adiw	r24, 0x01	; 1
  fe:	86 17       	cp	r24, r22
 100:	97 07       	cpc	r25, r23
 102:	c0 f3       	brcs	.-16     	; 0xf4 <ctrl+0x28>
 104:	08 95       	ret

00000106 <main>:
		   j=0x04;
         }
     }
}
void main(void)
  {
 106:	8f ef       	ldi	r24, 0xFF	; 255
 108:	8a bb       	out	0x1a, r24	; 26
#define INIT_C
#include "common.h"
void InitIo(void)
{
    DDRA  = 0xff;
    PORTA = 0xff;
 10a:	8b bb       	out	0x1b, r24	; 27
    DDRB  = 0x00;
 10c:	17 ba       	out	0x17, r1	; 23
    PORTB = 0x00;
 10e:	18 ba       	out	0x18, r1	; 24
    PORTB = 0xff;
 110:	88 bb       	out	0x18, r24	; 24
    DDRC  = 0xff;
 112:	84 bb       	out	0x14, r24	; 20
    PORTC = 0xff;    
 114:	85 bb       	out	0x15, r24	; 21
    InitIo();
    if(DR==1) ctrl(1,100);
 116:	64 e6       	ldi	r22, 0x64	; 100
 118:	70 e0       	ldi	r23, 0x00	; 0
 11a:	81 e0       	ldi	r24, 0x01	; 1
 11c:	90 e0       	ldi	r25, 0x00	; 0
 11e:	0e 94 66 00 	call	0xcc	; 0xcc <ctrl>
    else ctrl(0,100);
	//return 1;
  }
 122:	08 95       	ret

00000124 <_exit>:
 124:	f8 94       	cli

00000126 <__stop_program>:
 126:	ff cf       	rjmp	.-2      	; 0x126 <__stop_program>

⌨️ 快捷键说明

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