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

📄 elevator.lst

📁 MAGE128下用RS485进行通讯并进行CRC校验以及中断的处理
💻 LST
📖 第 1 页 / 共 5 页
字号:
 485 0126 8093 9C00 		sts 156,r24
 127:elevator.c    **** 	}
 128:elevator.c    **** }
 486               		.stabn 68,0,128,.LM53-__vector_32
 487               	.LM53:
 488               	.L41:
 489               	/* epilogue: frame size=0 */
 490 012a FF91      		pop r31
 491 012c EF91      		pop r30
 492 012e 9F91      		pop r25
 493 0130 8F91      		pop r24
 494 0132 0F90      		pop __tmp_reg__
GAS LISTING C:\DOCUME~1\zhang\LOCALS~1\Temp/cckDaaaa.s 			page 12


 495 0134 0FBE      		out __SREG__,__tmp_reg__
 496 0136 0F90      		pop __tmp_reg__
 497 0138 1F90      		pop __zero_reg__
 498 013a 1895      		reti
 499               	/* epilogue end (size=9) */
 500               	/* function __vector_32 size 42 (24) */
 501               	.Lfe9:
 502               		.size	__vector_32,.Lfe9-__vector_32
 503               	.Lscope8:
 504               		.stabs	"",36,0,0,.Lscope8-__vector_32
 505               		.stabs	"USART_Transmit0:F(0,20)",36,0,131,USART_Transmit0
 506               		.stabs	"buf0:P(1,5)",64,0,130,30
 507               		.stabs	"size0:P(1,3)",64,0,130,24
 508               	.global	USART_Transmit0
 509               		.type	USART_Transmit0,@function
 510               	USART_Transmit0:
 129:elevator.c    **** 
 130:elevator.c    **** void USART_Transmit0(u08 *buf0,u16 size0)
 131:elevator.c    **** {
 511               		.stabn 68,0,131,.LM54-USART_Transmit0
 512               	.LM54:
 513               	/* prologue: frame size=0 */
 514               	/* prologue end (size=0) */
 515 013c FC01      		movw r30,r24
 132:elevator.c    **** array0=buf0;
 516               		.stabn 68,0,132,.LM55-USART_Transmit0
 517               	.LM55:
 518 013e F093 0000 		sts (array0)+1,r31
 519 0142 E093 0000 		sts array0,r30
 133:elevator.c    **** counter0=size0;
 520               		.stabn 68,0,133,.LM56-USART_Transmit0
 521               	.LM56:
 522 0146 7093 0000 		sts (counter0)+1,r23
 523 014a 6093 0000 		sts counter0,r22
 134:elevator.c    **** outp(*buf0,UDR1);
 524               		.stabn 68,0,134,.LM57-USART_Transmit0
 525               	.LM57:
 526 014e 8081      		ld r24,Z
 527 0150 8093 9C00 		sts 156,r24
 135:elevator.c    **** }
 528               		.stabn 68,0,135,.LM58-USART_Transmit0
 529               	.LM58:
 530               	/* epilogue: frame size=0 */
 531 0154 0895      		ret
 532               	/* epilogue end (size=1) */
 533               	/* function USART_Transmit0 size 13 (12) */
 534               	.Lfe10:
 535               		.size	USART_Transmit0,.Lfe10-USART_Transmit0
 536               	.Lscope9:
 537               		.stabs	"",36,0,0,.Lscope9-USART_Transmit0
 538               		.stabs	"__vector_20:F(0,20)",36,0,140,__vector_20
 539               	.global	__vector_20
 540               		.type	__vector_20,@function
 541               	__vector_20:
 136:elevator.c    **** 
 137:elevator.c    **** 
 138:elevator.c    **** 
GAS LISTING C:\DOCUME~1\zhang\LOCALS~1\Temp/cckDaaaa.s 			page 13


 139:elevator.c    **** SIGNAL(SIG_UART0_TRANS)
 140:elevator.c    **** {
 542               		.stabn 68,0,140,.LM59-__vector_20
 543               	.LM59:
 544               	/* prologue: frame size=0 */
 545 0156 1F92      		push __zero_reg__
 546 0158 0F92      		push __tmp_reg__
 547 015a 0FB6      		in __tmp_reg__,__SREG__
 548 015c 0F92      		push __tmp_reg__
 549 015e 1124      		clr __zero_reg__
 550 0160 8F93      		push r24
 551 0162 9F93      		push r25
 552 0164 EF93      		push r30
 553 0166 FF93      		push r31
 554               	/* prologue end (size=9) */
 141:elevator.c    **** array0++;
 555               		.stabn 68,0,141,.LM60-__vector_20
 556               	.LM60:
 557 0168 E091 0000 		lds r30,array0
 558 016c F091 0000 		lds r31,(array0)+1
 559 0170 3196      		adiw r30,1
 560 0172 F093 0000 		sts (array0)+1,r31
 561 0176 E093 0000 		sts array0,r30
 562 017a 3197      		sbiw r30,1
 142:elevator.c    **** if(--counter0)
 563               		.stabn 68,0,142,.LM61-__vector_20
 564               	.LM61:
 565 017c 8091 0000 		lds r24,counter0
 566 0180 9091 0000 		lds r25,(counter0)+1
 567 0184 0197      		sbiw r24,1
 568 0186 9093 0000 		sts (counter0)+1,r25
 569 018a 8093 0000 		sts counter0,r24
 570 018e 892B      		or r24,r25
 571 0190 19F0      		breq .L44
 143:elevator.c    **** 	{
 144:elevator.c    **** 	outp(*array0,UDR1);
 572               		.stabn 68,0,144,.LM62-__vector_20
 573               	.LM62:
 574 0192 8181      		ldd r24,Z+1
 575 0194 8093 9C00 		sts 156,r24
 145:elevator.c    **** 	}
 146:elevator.c    **** }
 576               		.stabn 68,0,146,.LM63-__vector_20
 577               	.LM63:
 578               	.L44:
 579               	/* epilogue: frame size=0 */
 580 0198 FF91      		pop r31
 581 019a EF91      		pop r30
 582 019c 9F91      		pop r25
 583 019e 8F91      		pop r24
 584 01a0 0F90      		pop __tmp_reg__
 585 01a2 0FBE      		out __SREG__,__tmp_reg__
 586 01a4 0F90      		pop __tmp_reg__
 587 01a6 1F90      		pop __zero_reg__
 588 01a8 1895      		reti
 589               	/* epilogue end (size=9) */
 590               	/* function __vector_20 size 42 (24) */
GAS LISTING C:\DOCUME~1\zhang\LOCALS~1\Temp/cckDaaaa.s 			page 14


 591               	.Lfe11:
 592               		.size	__vector_20,.Lfe11-__vector_20
 593               	.Lscope10:
 594               		.stabs	"",36,0,0,.Lscope10-__vector_20
 595               		.stabs	"__vector_30:F(0,20)",36,0,151,__vector_30
 596               	.global	__vector_30
 597               		.type	__vector_30,@function
 598               	__vector_30:
 147:elevator.c    **** 
 148:elevator.c    **** 
 149:elevator.c    **** 
 150:elevator.c    **** SIGNAL(SIG_UART1_RECV)      
 151:elevator.c    **** {
 599               		.stabn 68,0,151,.LM64-__vector_30
 600               	.LM64:
 601               	/* prologue: frame size=0 */
 602 01aa 1F92      		push __zero_reg__
 603 01ac 0F92      		push __tmp_reg__
 604 01ae 0FB6      		in __tmp_reg__,__SREG__
 605 01b0 0F92      		push __tmp_reg__
 606 01b2 1124      		clr __zero_reg__
 607 01b4 2F93      		push r18
 608 01b6 3F93      		push r19
 609 01b8 4F93      		push r20
 610 01ba 5F93      		push r21
 611 01bc 6F93      		push r22
 612 01be 7F93      		push r23
 613 01c0 8F93      		push r24
 614 01c2 9F93      		push r25
 615 01c4 AF93      		push r26
 616 01c6 BF93      		push r27
 617 01c8 EF93      		push r30
 618 01ca FF93      		push r31
 619               	/* prologue end (size=17) */
 152:elevator.c    **** led[k]= inp(UDR1);        /* read byte for UART data buffer */
 620               		.stabn 68,0,152,.LM65-__vector_30
 621               	.LM65:
 622 01cc 8091 0000 		lds r24,k
 623 01d0 E0E0      		ldi r30,lo8(led)
 624 01d2 F0E0      		ldi r31,hi8(led)
 625 01d4 E80F      		add r30,r24
 626 01d6 F11D      		adc r31,__zero_reg__
 627 01d8 9091 9C00 		lds r25,156
 628 01dc 9083      		st Z,r25
 153:elevator.c    **** if(k==0)
 629               		.stabn 68,0,153,.LM66-__vector_30
 630               	.LM66:
 631 01de 8823      		tst r24
 632 01e0 39F4      		brne .L47
 154:elevator.c    **** 	{
 155:elevator.c    ****         if(led[k]==0x55)
 633               		.stabn 68,0,155,.LM67-__vector_30
 634               	.LM67:
 635 01e2 9535      		cpi r25,lo8(85)
 636 01e4 09F0      		breq _PC_+2
 637 01e6 4EC0      		rjmp .L46
 638               	.L86:
GAS LISTING C:\DOCUME~1\zhang\LOCALS~1\Temp/cckDaaaa.s 			page 15


 639 01e8 8F5F      		subi r24,lo8(-(1))
 640 01ea 8093 0000 		sts k,r24
 641 01ee 4AC0      		rjmp .L46
 642               	.L47:
 156:elevator.c    ****         	k++;
 157:elevator.c    ****         }
 158:elevator.c    **** else if(k==1)
 643               		.stabn 68,0,158,.LM68-__vector_30
 644               	.LM68:
 645 01f0 8130      		cpi r24,lo8(1)
 646 01f2 D1F3      		breq .L86
 159:elevator.c    **** 	{
 160:elevator.c    ****         if(led[k]!=0xdd&&led[k]<=0x01&&led[k]>=0x60&&led[k]!=0xcc&&led[k]!=0xbc&&led[k]!=0xcb)
 161:elevator.c    ****         	{
 162:elevator.c    ****         	k=0;
 163:elevator.c    ****         	led[0]=0;
 164:elevator.c    ****         	}
 165:elevator.c    ****         else
 166:elevator.c    ****         	k++;
 167:elevator.c    ****         }
 168:elevator.c    **** else if(k==2)
 647               		.stabn 68,0,168,.LM69-__vector_30
 648               	.LM69:
 649 01f4 8230      		cpi r24,lo8(2)
 650 01f6 C1F3      		breq .L86
 169:elevator.c    **** 	{
 170:elevator.c    ****         k++;
 171:elevator.c    **** 	}
 172:elevator.c    **** else if(k==3)
 651               		.stabn 68,0,172,.LM70-__vector_30
 652               	.LM70:
 653 01f8 8330      		cpi r24,lo8(3)
 654 01fa 79F1      		breq .L87
 173:elevator.c    **** 	{
 174:elevator.c    ****         k++;
 175:elevator.c    ****         if(led[3]==0x6a)  //&&led[1]=0xcc
 176:elevator.c    ****         	{
 177:elevator.c    ****         	ok1=1;
 178:elevator.c    ****         	}
 179:elevator.c    ****         else if(led[3]==0x4a)  //&&led[1]=0xcc
 180:elevator.c    ****         	{
 181:elevator.c    ****         	err1=1;
 182:elevator.c    ****         	}
 183:elevator.c    ****         else
 184:elevator.c    ****         	{
 185:elevator.c    ****         	ok1=0;
 186:elevator.c    ****         	err1=0;
 187:elevator.c    ****         	}
 188:elevator.c    ****         }
 189:elevator.c    **** else if(k==4)
 655               		.stabn 68,0,189,.LM71-__vector_30
 656               	.LM71:
 657 01fc 8430      		cpi r24,lo8(4)
 658 01fe 91F0      		breq .L88
 190:elevator.c    ****         {
 191:elevator.c    ****         byt1[0]=led[1];
 192:elevator.c    ****         byt1[1]=led[2];
GAS LISTING C:\DOCUME~1\zhang\LOCALS~1\Temp/cckDaaaa.s 			page 16


 193:elevator.c    ****         byt1[2]=led[3];
 194:elevator.c    ****         byt1[3]=led[4];
 195:elevator.c    ****         d1=crc_gen(byt1,4);//CRC校验
 196:elevator.c    ****         k++;
 197:elevator.c    ****         }
 198:elevator.c    **** else if(k==5)
 659               		.stabn 68,0,198,.LM72-__vector_30
 660               	.LM72:
 661 0200 8530      		cpi r24,lo8(5)
 662 0202 59F0      		breq .L89
 199:elevator.c    ****         {
 200:elevator.c    ****         k=0;
 201:elevator.c    ****        	led[0]=0;
 202:elevator.c    ****        	if(led[k]==0xaa)
 203:elevator.c    ****        		{
 204:elevator.c    ****        		if(ok1!=1&&err1!=1)
 205:elevator.c    ****        			{
 206:elevator.c    ****        			byt1[0]=0xbb;
 207:elevator.c    ****        			if(d1==0)
 208:elevator.c    ****        				{
 209:elevator.c    ****     				if(led[1]==0xcc)
 210:elevator.c    ****     					{
 211:elevator.c    ****     					if(led[2]==0xbc)
 212:elevator.c    ****         					{
 213:elevator.c    ****         					floor=led[3];
 214:elevator.c    ****         					}
 215:elevator.c    ****     					else if(led[2]==0xcb)
 216:elevator.c    ****     						{
 217:elevator.c    ****     						shield[pin]=led[3];
 218:elevator.c    ****     						pin++;
 219:elevator.c    ****     						}
 220:elevator.c    ****     					else
 221:elevator.c    ****     						{
 222:elevator.c    ****        						if(state==0)
 223:elevator.c    ****        							{
 224:elevator.c    ****        							chain1(led[3]);
 225:elevator.c    **** 	       						instruction1++;	
 226:elevator.c    ****       	                                		}						
 227:elevator.c    ****        						else
 228:elevator.c    ****        							{
 229:elevator.c    ****        							*(*putin1+0)=led[1];
 230:elevator.c    ****        							*(*putin1+1)=led[3];
 231:elevator.c    ****        							putin1++;
 232:elevator.c    ****        							r1++;
 233:elevator.c    ****        							if(r1>=50)
 234:elevator.c    ****        								{
 235:elevator.c    ****        								r1=0;
 236:elevator.c    ****        								putin1=store2;
 237:elevator.c    ****        								}
 238:elevator.c    ****        							}
 239:elevator.c    ****        						}
 240:elevator.c    ****        					}
 241:elevator.c    ****        			        else 
 242:elevator.c    ****        					{
 243:elevator.c    ****        					if(led[1]==0xdd)
 244:elevator.c    ****        						{send_buf0[1]=0xdd;}
 245:elevator.c    ****        					else
GAS LISTING C:\DOCUME~1\zhang\LOCALS~1\Temp/cckDaaaa.s 			page 17


 246:elevator.c    ****        						{send_buf0[1]=led[1];}
 247:elevator.c    ****        					send_buf0[3]=led[3];
 248:elevator.c    ****        					byt0[0]=send_buf0[1];
 249:elevator.c    ****        					byt0[1]=send_buf0[2];
 250:elevator.c    ****        					byt0[2]=send_buf0[3];
 251:elevator.c    ****        					send_buf0[4]=crc_gen(byt0,3);
 252:elevator.c    ****        					USART_Transmit0(send_buf0,6);
 253:elevator.c    ****        					}
 254:elevator.c    ****        				

⌨️ 快捷键说明

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