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

📄 ultrasound.lst

📁 基于AVR的超声波测距程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 348 0216 90E0      		ldi r25,hi8(150)
 349 0218 0E94 0000 		call delay_nus
 350               	.LM39:
 351 021c BB98      		cbi 55-0x20,3
 352               	.LM40:
 353 021e 86E9      		ldi r24,lo8(150)
 354 0220 90E0      		ldi r25,hi8(150)
 355 0222 0E94 0000 		call delay_nus
 356               	.LM41:
 357 0226 8AB7      		in r24,90-0x20
 358 0228 8064      		ori r24,lo8(64)
 359 022a 8ABF      		out 90-0x20,r24
 360 022c 8BB7      		in r24,91-0x20
 361 022e 8064      		ori r24,lo8(64)
 362 0230 8BBF      		out 91-0x20,r24
 363               	.L19:
 364               	.LM42:
 365 0232 8091 0000 		lds r24,Ultrasound_TimeOut_Flag
 366 0236 8823      		tst r24
 367 0238 01F4      		brne .L20
 368 023a 8091 0000 		lds r24,Ultrasound_Receive_Flag
 369 023e 8823      		tst r24
 370 0240 01F0      		breq .L19
 371               	.L20:
 372               	.LM43:
 373 0242 8091 0000 		lds r24,Ultrasound_TimeOut_Flag
 374 0246 8823      		tst r24
 375 0248 01F0      		breq .L22
 376               	.LM44:
 377 024a 1092 0000 		sts Ultrasound_TimeOut_Flag,__zero_reg__
 378               	.LM45:
 379 024e 8CE2      		ldi r24,lo8(300)
 380 0250 91E0      		ldi r25,hi8(300)
 381 0252 0E94 0000 		call delay_nms
 382 0256 C0E0      		ldi r28,lo8(0)
 383 0258 D0E0      		ldi r29,hi8(0)
 384               	.LVL14:
 385 025a 00C0      		rjmp .L24
 386               	.LVL15:
 387               	.L22:
 388               	.LM46:
 389 025c 1092 0000 		sts Ultrasound_Receive_Flag,__zero_reg__
 390               	.LM47:
 391 0260 0E94 0000 		call Calculate_Distant
 392 0264 EC01      		movw r28,r24
 393               	.LVL16:
 394               	.LM48:
 395 0266 8CE2      		ldi r24,lo8(300)
 396 0268 91E0      		ldi r25,hi8(300)
 397 026a 0E94 0000 		call delay_nms
 398               	.L24:
 399               	.LM49:
 400 026e CE01      		movw r24,r28
 401               	/* epilogue: frame size=0 */
 402 0270 DF91      		pop r29
 403 0272 CF91      		pop r28
 404 0274 0895      		ret
 405               	/* epilogue end (size=3) */
 406               	/* function GetImmediateDistance size 62 (57) */
 407               	.LFE9:
 409               		.data
 410               	.LC0:
 411 0000 0A45 7272 		.string	"\nError Occured!!! Too Far Or Too Close 650mm >= Distance >= 50mm"
 411      6F72 204F 
 411      6363 7572 
 411      6564 2121 
 411      2120 546F 
 412               	.LC1:
 413 0041 0A43 7572 		.string	"\nCurrent Valuable Distance: %d mm"
 413      7265 6E74 
 413      2056 616C 
 413      7561 626C 
 413      6520 4469 
 414               		.text
 415               	.global	GetValuableDistant
 417               	GetValuableDistant:
 418               	.LFB10:
 419               	.LM50:
 420               	/* prologue: frame size=10 */
 421 0276 BF92      		push r11
 422 0278 CF92      		push r12
 423 027a DF92      		push r13
 424 027c EF92      		push r14
 425 027e FF92      		push r15
 426 0280 0F93      		push r16
 427 0282 1F93      		push r17
 428 0284 CF93      		push r28
 429 0286 DF93      		push r29
 430 0288 CDB7      		in r28,__SP_L__
 431 028a DEB7      		in r29,__SP_H__
 432 028c 2A97      		sbiw r28,10
 433 028e 0FB6      		in __tmp_reg__,__SREG__
 434 0290 F894      		cli
 435 0292 DEBF      		out __SP_H__,r29
 436 0294 0FBE      		out __SREG__,__tmp_reg__
 437 0296 CDBF      		out __SP_L__,r28
 438               	/* prologue end (size=17) */
 439 0298 6E01      		movw r12,r28
 440 029a 0894      		sec
 441 029c C11C      		adc r12,__zero_reg__
 442 029e D11C      		adc r13,__zero_reg__
 443 02a0 7601      		movw r14,r12
 444               	.LM51:
 445 02a2 8E01      		movw r16,r28
 446 02a4 055F      		subi r16,lo8(-(11))
 447 02a6 1F4F      		sbci r17,hi8(-(11))
 448               	.L28:
 449               	.LM52:
 450 02a8 0E94 0000 		call GetImmediateDistance
 451 02ac F701      		movw r30,r14
 452 02ae 8193      		st Z+,r24
 453 02b0 9193      		st Z+,r25
 454 02b2 7F01      		movw r14,r30
 455               	.LM53:
 456 02b4 E017      		cp r30,r16
 457 02b6 F107      		cpc r31,r17
 458 02b8 01F4      		brne .L28
 459 02ba F601      		movw r30,r12
 460 02bc 10E0      		ldi r17,lo8(0)
 461               	.LVL17:
 462 02be 00E0      		ldi r16,lo8(0)
 463               	.LVL18:
 464 02c0 BB24      		clr r11
 465               	.LVL19:
 466               	.L30:
 467               	.LM54:
 468 02c2 6081      		ld r22,Z
 469 02c4 7181      		ldd r23,Z+1
 470 02c6 9B01      		movw r18,r22
 471 02c8 40E0      		ldi r20,lo8(0)
 472 02ca 50E0      		ldi r21,hi8(0)
 473 02cc 8091 0000 		lds r24,Valuable_Distance
 474 02d0 9091 0000 		lds r25,(Valuable_Distance)+1
 475 02d4 A091 0000 		lds r26,(Valuable_Distance)+2
 476 02d8 B091 0000 		lds r27,(Valuable_Distance)+3
 477 02dc 8217      		cp r24,r18
 478 02de 9307      		cpc r25,r19
 479 02e0 A407      		cpc r26,r20
 480 02e2 B507      		cpc r27,r21
 481 02e4 00F4      		brsh .L31
 482               	.LM55:
 483 02e6 1F5F      		subi r17,lo8(-(1))
 484               	.L31:
 485               	.LM56:
 486 02e8 8091 0000 		lds r24,Valuable_Distance
 487 02ec 9091 0000 		lds r25,(Valuable_Distance)+1
 488 02f0 A091 0000 		lds r26,(Valuable_Distance)+2
 489 02f4 B091 0000 		lds r27,(Valuable_Distance)+3
 490 02f8 2817      		cp r18,r24
 491 02fa 3907      		cpc r19,r25
 492 02fc 4A07      		cpc r20,r26
 493 02fe 5B07      		cpc r21,r27
 494 0300 00F4      		brsh .L33
 495               	.LM57:
 496 0302 0F5F      		subi r16,lo8(-(1))
 497               	.L33:
 498               	.LM58:
 499 0304 6253      		subi r22,lo8(-(-50))
 500 0306 7040      		sbci r23,hi8(-(-50))
 501 0308 6955      		subi r22,lo8(601)
 502 030a 7240      		sbci r23,hi8(601)
 503 030c 00F0      		brlo .L35
 504 030e BB24      		clr r11
 505 0310 B394      		inc r11
 506               	.L35:
 507 0312 3296      		adiw r30,2
 508               	.LM59:
 509 0314 EE15      		cp r30,r14
 510 0316 FF05      		cpc r31,r15
 511 0318 01F4      		brne .L30
 512               	.LM60:
 513 031a BB20      		tst r11
 514 031c 01F0      		breq .+2
 515 031e 00C0      		rjmp .L38
 516               	.LM61:
 517 0320 1530      		cpi r17,lo8(5)
 518 0322 01F0      		breq .L40
 519 0324 0530      		cpi r16,lo8(5)
 520 0326 01F0      		breq .+2
 521 0328 00C0      		rjmp .L42
 522               	.L40:
 523               	.LM62:
 524 032a 1092 0000 		sts Valuable_Distance,__zero_reg__
 525 032e 1092 0000 		sts (Valuable_Distance)+1,__zero_reg__
 526 0332 1092 0000 		sts (Valuable_Distance)+2,__zero_reg__
 527 0336 1092 0000 		sts (Valuable_Distance)+3,__zero_reg__
 528               	.L43:
 529               	.LM63:
 530 033a 2091 0000 		lds r18,Valuable_Distance
 531 033e 3091 0000 		lds r19,(Valuable_Distance)+1
 532 0342 4091 0000 		lds r20,(Valuable_Distance)+2
 533 0346 5091 0000 		lds r21,(Valuable_Distance)+3
 534 034a F601      		movw r30,r12
 535 034c 8191      		ld r24,Z+
 536 034e 9191      		ld r25,Z+
 537 0350 6F01      		movw r12,r30
 538 0352 A0E0      		ldi r26,lo8(0)
 539 0354 B0E0      		ldi r27,hi8(0)
 540 0356 820F      		add r24,r18
 541 0358 931F      		adc r25,r19
 542 035a A41F      		adc r26,r20
 543 035c B51F      		adc r27,r21
 544 035e 8093 0000 		sts Valuable_Distance,r24
 545 0362 9093 0000 		sts (Valuable_Distance)+1,r25
 546 0366 A093 0000 		sts (Valuable_Distance)+2,r26
 547 036a B093 0000 		sts (Valuable_Distance)+3,r27
 548               	.LM64:
 549 036e EE15      		cp r30,r14
 550 0370 FF05      		cpc r31,r15
 551 0372 01F4      		brne .L43
 552               	.LM65:
 553 0374 6091 0000 		lds r22,Valuable_Distance
 554 0378 7091 0000 		lds r23,(Valuable_Distance)+1
 555 037c 8091 0000 		lds r24,(Valuable_Distance)+2
 556 0380 9091 0000 		lds r25,(Valuable_Distance)+3
 557 0384 25E0      		ldi r18,lo8(5)
 558 0386 30E0      		ldi r19,hi8(5)
 559 0388 40E0      		ldi r20,hlo8(5)
 560 038a 50E0      		ldi r21,hhi8(5)
 561 038c 0E94 0000 		call __udivmodsi4
 562 0390 2093 0000 		sts Valuable_Distance,r18
 563 0394 3093 0000 		sts (Valuable_Distance)+1,r19
 564 0398 4093 0000 		sts (Valuable_Distance)+2,r20
 565 039c 5093 0000 		sts (Valuable_Distance)+3,r21
 566 03a0 00C0      		rjmp .L42
 567               	.L38:
 568               	.LM66:
 569 03a2 80E0      		ldi r24,lo8(.LC0)
 570 03a4 90E0      		ldi r25,hi8(.LC0)
 571 03a6 9F93      		push r25
 572 03a8 8F93      		push r24
 573 03aa 0E94 0000 		call printf
 574 03ae 0F90      		pop __tmp_reg__
 575 03b0 0F90      		pop __tmp_reg__
 576 03b2 00C0      		rjmp .L45
 577               	.L42:
 578               	.LM67:
 579 03b4 8091 0000 		lds r24,Valuable_Distance
 580 03b8 9091 0000 		lds r25,(Valuable_Distance)+1
 581 03bc A091 0000 		lds r26,(Valuable_Distance)+2
 582 03c0 B091 0000 		lds r27,(Valuable_Distance)+3
 583 03c4 BF93      		push r27
 584 03c6 AF93      		push r26
 585 03c8 9F93      		push r25
 586 03ca 8F93      		push r24
 587 03cc 80E0      		ldi r24,lo8(.LC1)
 588 03ce 90E0      		ldi r25,hi8(.LC1)
 589 03d0 9F93      		push r25
 590 03d2 8F93      		push r24
 591 03d4 0E94 0000 		call printf
 592 03d8 8DB7      		in r24,__SP_L__
 593 03da 9EB7      		in r25,__SP_H__
 594 03dc 0696      		adiw r24,6
 595 03de 0FB6      		in __tmp_reg__,__SREG__
 596 03e0 F894      		cli
 597 03e2 9EBF      		out __SP_H__,r25
 598 03e4 0FBE      		out __SREG__,__tmp_reg__
 599 03e6 8DBF      		out __SP_L__,r24
 600               	.L45:
 601               	.LM68:
 602 03e8 8091 0000 		lds r24,Valuable_Distance
 603 03ec 9091 0000 		lds r25,(Valuable_Distance)+1
 604 03f0 A091 0000 		lds r26,(Valuable_Distance)+2
 605 03f4 B091 0000 		lds r27,(Valuable_Distance)+3
 606               	/* epilogue: frame size=10 */
 607 03f8 2A96      		adiw r28,10
 608 03fa 0FB6      		in __tmp_reg__,__SREG__
 609 03fc F894      		cli
 610 03fe DEBF      		out __SP_H__,r29
 611 0400 0FBE      		out __SREG__,__tmp_reg__
 612 0402 CDBF      		out __SP_L__,r28
 613 0404 DF91      		pop r29
 614 0406 CF91      		pop r28
 615 0408 1F91      		pop r17
 616 040a 0F91      		pop r16
 617 040c FF90      		pop r15
 618 040e EF90      		pop r14
 619 0410 DF90      		pop r13
 620 0412 CF90      		pop r12
 621 0414 BF90      		pop r11
 622 0416 0895      		ret
 623               	/* epilogue end (size=16) */
 624               	/* function GetValuableDistant size 210 (177) */
 625               	.LFE10:
 627               	.global	Temp_Reflash_at
 628               	.global	Temp_Reflash_at
 629               		.section .bss
 632               	Temp_Reflash_at:
 633 0000 0000      		.skip 2,0
 634               		.comm Valuable_Distance,4,1
 635               		.comm Valuable_Speed,4,1
 636               		.comm Ultrasound_TimeOut_Flag,1,1
 637               		.comm Ultrasound_Receive_Flag,1,1
 638               		.comm Timer1_Counter_H,1,1
 639               		.comm Timer1_Counter_L,1,1
 704               	.Letext0:
DEFINED SYMBOLS
                            *ABS*:00000000 Ultrasound.c
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT2pKL0.s:2      *ABS*:0000003f __SREG__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT2pKL0.s:3      *ABS*:0000003e __SP_H__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT2pKL0.s:4      *ABS*:0000003d __SP_L__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT2pKL0.s:5      *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT2pKL0.s:6      *ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT2pKL0.s:19     .text:00000000 __vector_1
                            *COM*:00000001 Timer1_Counter_L
                            *COM*:00000001 Timer1_Counter_H
                            *COM*:00000001 Ultrasound_Receive_Flag
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT2pKL0.s:63     .text:0000003a __vector_6
                            *COM*:00000001 Ultrasound_TimeOut_Flag
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT2pKL0.s:101    .text:00000068 GetUltrasoundSpeed
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT2pKL0.s:632    .bss:00000000 Temp_Reflash_at
                            *COM*:00000004 Valuable_Speed
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT2pKL0.s:191    .text:00000118 Calculate_Distant
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT2pKL0.s:326    .text:000001fa GetImmediateDistance
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT2pKL0.s:417    .text:00000276 GetValuableDistant
                            *COM*:00000004 Valuable_Distance

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
GetTemperature
__nesf2
__mulsf3
__addsf3
__fixunssfsi
__mulsi3
__udivmodsi4
delay_nus
delay_nms
printf

⌨️ 快捷键说明

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