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

📄 position.lst

📁 利用avr c编程的综合程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 333               	.LM26:
 334               		call uartGetc
 335               	.L26:
 337               	.LM27:
 338               		lds r30,count
 339 0150 87FF      		ldi r31,lo8(0)
 340 0152 00C0      		andi r24,lo8(127)
 341 0154 00C0      		subi r30,lo8(-(uart_rec))
 342               		sbci r31,hi8(-(uart_rec))
 343               		st Z,r24
 345 0156 0E94 0000 	.LM28:
 346               		lds r24,count
 347               		subi r24,lo8(-(1))
 348               		sts count,r24
 350 015e F0E0      	.LM29:
 351 0160 8F77      		lds r24,count
 352 0162 E050      		cpi r24,lo8(6)
 353 0164 F040      		brlo .L23
 355               	.LM30:
 356               		lds r18,uart_rec
 357 0168 8091 0000 		lds r24,uart_rec+1
 358 016c 8F5F      		ldi r25,lo8(0)
 359 016e 8093 0000 		lsr r25
 360               		mov r25,r24
 361               		clr r24
 362 0172 8091 0000 		ror r25
 363 0176 8630      		ror r24
 364 0178 00F0      		add r24,r18
 365               		adc r25,__zero_reg__
 366               		asr r25
 367 017a 2091 0000 		ror r24
 368 017e 8091 0000 		sts (angle_loca)+1,r25
 369 0182 90E0      		sts angle_loca,r24
 371 0186 982F      	.LM31:
 372 0188 8827      		lds r18,uart_rec+2
 373 018a 9795      		lds r24,uart_rec+3
 374 018c 8795      		ldi r25,lo8(0)
 375 018e 820F      		lsr r25
 376 0190 911D      		mov r25,r24
 377 0192 9595      		clr r24
 378 0194 8795      		ror r25
 379 0196 9093 0000 		ror r24
 380 019a 8093 0000 		add r24,r18
 381               		adc r25,__zero_reg__
 382               		sts (x_loca)+1,r25
 383 019e 2091 0000 		sts x_loca,r24
 385 01a6 90E0      	.LM32:
 386 01a8 9695      		lds r18,uart_rec+4
 387 01aa 982F      		lds r24,uart_rec+5
 388 01ac 8827      		ldi r25,lo8(0)
 389 01ae 9795      		lsr r25
 390 01b0 8795      		mov r25,r24
 391 01b2 820F      		clr r24
 392 01b4 911D      		ror r25
 393 01b6 9093 0000 		ror r24
 394 01ba 8093 0000 		add r24,r18
 395               		adc r25,__zero_reg__
 396               		sts (y_loca)+1,r25
 397 01be 2091 0000 		sts y_loca,r24
 398 01c2 8091 0000 	/* epilogue start */
 400 01c8 9695      	.LM33:
 401 01ca 982F      		ret
 406 01d4 911D      	.Lscope4:
 410               	.global	rotate
 412 01de 0895      	rotate:
 414               	.LM34:
 415               	.LFBB5:
 416               		push r14
 417               		push r15
 418               		push r16
 419               		push r17
 420               		push r28
 421               		push r29
 422               	/* prologue: function */
 423               	/* frame size = 0 */
 424               		movw r14,r24
 425               		movw r16,r22
 427 01e0 EF92      	.LM35:
 428 01e2 FF92      		movw r20,r22
 429 01e4 0F93      		ldi r24,lo8(26)
 430 01e6 1F93      		call motor
 431 01e8 CF93      	.LBB18:
 432 01ea DF93      	.LBB19:
 433               	.LBB20:
 434               	.LBB21:
 436 01ee 8B01      	.Ltext1:
 438               	.LM36:
 439 01f0 AB01      		ldi r24,lo8(-25536)
 440 01f2 8AE1      		ldi r25,hi8(-25536)
 441 01f4 0E94 0000 	/* #APP */
 442               	 ;  105 "c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h" 1
 443               		1: sbiw r24,1
 444               		brne 1b
 445               	 ;  0 "" 2
 446               	/* #NOAPP */
 447               	.LBE21:
   1:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** /* Copyright (c) 2002, Marek Michalkiewicz
   2:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****    Copyright (c) 2007 Joerg Wunsch
   3:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****    All rights reserved.
   4:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** 
   5:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****    Redistribution and use in source and binary forms, with or without
   6:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****    modification, are permitted provided that the following conditions are met:
   7:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** 
   8:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****    * Redistributions of source code must retain the above copyright
   9:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****      notice, this list of conditions and the following disclaimer.
  10:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** 
  11:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****    * Redistributions in binary form must reproduce the above copyright
  12:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****      notice, this list of conditions and the following disclaimer in
  13:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****      the documentation and/or other materials provided with the
  14:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****      distribution.
  15:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** 
  16:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****    * Neither the name of the copyright holders nor the names of
  17:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****      contributors may be used to endorse or promote products derived
  18:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****      from this software without specific prior written permission.
  19:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** 
  20:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  21:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  22:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  23:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  24:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  25:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  26:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  27:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  28:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  29:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  30:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****   POSSIBILITY OF SUCH DAMAGE. */
  31:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** 
  32:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** /* $Id: delay_basic.h,v 1.1 2007/05/13 21:23:20 joerg_wunsch Exp $ */
  33:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** 
  34:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** #ifndef _UTIL_DELAY_BASIC_H_
  35:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** #define _UTIL_DELAY_BASIC_H_ 1
  36:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** 
  37:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** #include <inttypes.h>
  38:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** 
  39:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** /** \file */
  40:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** /** \defgroup util_delay_basic <util/delay_basic.h>: Basic busy-wait delay loops
  41:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     \code
  42:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     #include <util/delay_basic.h>
  43:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     \endcode
  44:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** 
  45:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     The functions in this header file implement simple delay loops
  46:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     that perform a busy-waiting.  They are typically used to
  47:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     facilitate short delays in the program execution.  They are
  48:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     implemented as count-down loops with a well-known CPU cycle
  49:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     count per loop iteration.  As such, no other processing can
  50:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     occur simultaneously.  It should be kept in mind that the
  51:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     functions described here do not disable interrupts.
  52:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** 
  53:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     In general, for long delays, the use of hardware timers is
  54:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     much preferrable, as they free the CPU, and allow for
  55:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     concurrent processing of other events while the timer is
  56:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     running.  However, in particular for very short delays, the
  57:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     overhead of setting up a hardware timer is too much compared
  58:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     to the overall delay time.
  59:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** 
  60:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     Two inline functions are provided for the actual delay algorithms.
  61:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** 
  62:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** */
  63:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** 
  64:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** #if !defined(__DOXYGEN__)
  65:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** static inline void _delay_loop_1(uint8_t __count) __attribute__((always_inline));
  66:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** static inline void _delay_loop_2(uint16_t __count) __attribute__((always_inline));
  67:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** #endif
  68:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** 
  69:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** /** \ingroup util_delay_basic
  70:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** 
  71:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     Delay loop using an 8-bit counter \c __count, so up to 256
  72:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     iterations are possible.  (The value 256 would have to be passed
  73:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     as 0.)  The loop executes three CPU cycles per iteration, not
  74:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     including the overhead the compiler needs to setup the counter
  75:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     register.
  76:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** 
  77:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     Thus, at a CPU speed of 1 MHz, delays of up to 768 microseconds
  78:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     can be achieved.
  79:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** */
  80:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** void
  81:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** _delay_loop_1(uint8_t __count)
  82:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** {
  83:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** 	__asm__ volatile (
  84:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** 		"1: dec %0" "\n\t"
  85:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** 		"brne 1b"
  86:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** 		: "=r" (__count)
  87:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** 		: "0" (__count)
  88:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** 	);
  89:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** }
  90:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** 
  91:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** /** \ingroup util_delay_basic
  92:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** 
  93:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     Delay loop using a 16-bit counter \c __count, so up to 65536
  94:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     iterations are possible.  (The value 65536 would have to be
  95:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     passed as 0.)  The loop executes four CPU cycles per iteration,
  96:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     not including the overhead the compiler requires to setup the
  97:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     counter register pair.
  98:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** 
  99:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     Thus, at a CPU speed of 1 MHz, delays of up to about 262.1
 100:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****     milliseconds can be achieved.
 101:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****  */
 102:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** void
 103:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** _delay_loop_2(uint16_t __count)
 104:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** {
 105:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** 	__asm__ volatile (
 448               	abn	68,0,42,.LM38-.LFBB5
 449               	.LM38:
 450 01f8 80E4      		lds r24,angle_loca
 451 01fa 9CE9      		lds r25,(angle_loca)+1
 452               		movw r28,r14
 453               		sub r28,r24
 454 01fc 0197      		sbc r29,r25
 456               	.LM39:
 457               		movw r24,r28
 458               		subi r24,lo8(-(180))
 459               		sbci r25,hi8(-(180))
 460               		subi r24,lo8(361)
 461               		sbci r25,hi8(361)
 462               		brsh .+2
 463               		rjmp .L47
 465               	.LM40:
 466 0200 0E94 0000 		cpi r28,181
 467               		cpc r29,__zero_reg__
 468               		brlt .L29
 470               	.LM41:
 471 0204 8091 0000 		subi r28,lo8(-(-360))
 472 0208 9091 0000 		sbci r29,hi8(-(-360))
 473 020c E701      		rjmp .L47
 474 020e C81B      	.L29:
 476               	.LM42:
 477               		ldi r24,hi8(-180)
 478 0212 CE01      		cpi r28,lo8(-180)
 479 0214 8C54      		cpc r29,r24
 480 0216 9F4F      		brlt .L30
 481 0218 8956      		ldi r28,lo8(0)
 482 021a 9140      		ldi r29,hi8(0)
 483 021c 00F4      		rjmp .L47
 484 021e 00C0      	.L30:
 486               	.LM43:
 487 0220 C53B      		subi r28,lo8(-(360))
 488 0222 D105      		sbci r29,hi8(-(360))
 489 0224 04F0      		rjmp .L47
 490               	.L41:
 491               	.LBE23:
 492 0226 C856      	.LBE22:
 494 022a 00C0      	.LM44:
 495               		call get_position
 496               	.LBB24:
 497               	.LBB25:
 499 022e CC34      	.LM45:
 500 0230 D807      		lds r24,angle_loca
 501 0232 04F0      		lds r25,(angle_loca)+1
 502 0234 C0E0      		movw r28,r14
 503 0236 D0E0      		sub r28,r24
 504 0238 00C0      		sbc r29,r25
 506               	.LM46:
 507               		movw r24,r28
 508 023a C859      		subi r24,lo8(-(180))
 509 023c DE4F      		sbci r25,hi8(-(180))
 510 023e 00C0      		subi r24,lo8(361)
 511               		sbci r25,hi8(361)
 512               		brlo .L31
 514               	.LM47:
 515               		cpi r28,181
 516 0240 0E94 0000 		cpc r29,__zero_reg__
 517               		brlt .L32
 519               	.LM48:
 520               		subi r28,lo8(-(-360))
 521 0244 8091 0000 		sbci r29,hi8(-(-360))
 522 0248 9091 0000 		rjmp .L31
 523 024c E701      	.L32:
 525 0250 D90B      	.LM49:
 526               		ldi r24,hi8(-180)
 527               		cpi r28,lo8(-180)
 528 0252 CE01      		cpc r29,r24
 529 0254 8C54      		brlt .L33
 530 0256 9F4F      		ldi r28,lo8(0)
 531 0258 8956      		ldi r29,hi8(0)
 532 025a 9140      		rjmp .L31
 533 025c 00F0      	.L33:
 535               	.LM50:
 536 025e C53B      		subi r28,lo8(-(360))
 537 0260 D105      		sbci r29,hi8(-(360))
 538 0262 04F0      	.L31:
 539               	.LBE25:
 540               	.LBE24:
 542 0266 D140      	.LM51:
 543 0268 00C0      		movw r24,r28
 544               		sbrs r29,7
 545               		rjmp .L34
 546               		clr r24
 547 026a 8FEF      		clr r25
 548 026c CC34      		sub r24,r28
 549 026e D807      		sbc r25,r29
 550 0270 04F0      	.L34:
 551 0272 C0E0      	.LBB26:
 552 0274 D0E0      	.LBB27:
 554               	.LM52:
 555               		cpi r24,121
 556               		cpc r25,__zero_reg__
 557 0278 C859      		brlt .L35
 558 027a DE4F      		ldi r20,lo8(50)
 559               		ldi r21,hi8(50)
 560               		rjmp .L36
 561               	.L35:
 563               	.LM53:
 564 027c CE01      		cpi r24,91
 565 027e D7FF      		cpc r25,__zero_reg__
 566 0280 00C0      		brlt .L37
 567 0282 8827      		ldi r20,lo8(40)
 568 0284 9927      		ldi r21,hi8(40)
 569 0286 8C1B      		rjmp .L36
 570 0288 9D0B      	.L37:
 572               	.LM54:
 573               		cpi r24,46
 574               		cpc r25,__zero_reg__
 575               		brlt .L38
 576 028a 8937      		ldi r20,lo8(30)
 577 028c 9105      		ldi r21,hi8(30)
 578 028e 04F0      		rjmp .L36
 579 0290 42E3      	.L38:
 581 0294 00C0      	.LM55:
 582               		sbiw r24,16
 583               		brge .L39
 584               		ldi r20,lo8(10)
 585 0296 8B35      		ldi r21,hi8(10)
 586 0298 9105      		rjmp .L36
 587 029a 04F0      	.L39:
 588 029c 48E2      		ldi r20,lo8(20)
 589 029e 50E0      		ldi r21,hi8(20)
 590 02a0 00C0      	.L36:
 591               		movw r24,r16
 592               		sub r24,r20
 593               		sbc r25,r21
 594 02a2 8E32      		movw r22,r20
 595 02a4 9105      		add r22,r16
 596 02a6 04F0      		adc r23,r17
 597 02a8 4EE1      	.LBE27:
 598 02aa 50E0      	.LBE26:

⌨️ 快捷键说明

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