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

📄 level3.lst

📁 此程序为利用mage8 AVR 和EM4094实现读取TYPE B类型卡的C程序、读卡稳定、这个项目我们做了好久、非常不错的程序、很适合做这方面产品的朋友们参考
💻 LST
📖 第 1 页 / 共 4 页
字号:

 423               		.stabn 68,0,148,.LM57-ScaleOnce
 424               	.LM57:
 149:level3.c      ****         } 
 150:level3.c      ****         else if ( maxCaptureTimeScale == 6 ) 
 425               		.stabn 68,0,150,.LM58-ScaleOnce
 426               	.LM58:
 427 0158 2630      		cpi r18,lo8(6)
 428 015a 39F0      		breq .L30
 151:level3.c      ****         {
 152:level3.c      ****             period /= 2;
 153:level3.c      ****             maxCaptureTimeScale++;
 154:level3.c      ****         } 
 155:level3.c      ****         else if ( period > 255 ) 
 429               		.stabn 68,0,155,.LM59-ScaleOnce
 430               	.LM59:
 431 015c 8F3F      		cpi r24,255
 432 015e 9105      		cpc r25,__zero_reg__
 433 0160 19F0      		breq .L23
 434 0162 10F0      		brlo .L23
 156:level3.c      ****         {
 157:level3.c      ****             period = 255;
 435               		.stabn 68,0,157,.LM60-ScaleOnce
 436               	.LM60:
 437 0164 8FEF      		ldi r24,lo8(255)
 438 0166 90E0      		ldi r25,hi8(255)
 439               	.L23:
 158:level3.c      ****         }
 159:level3.c      ****     }
 160:level3.c      ****     return period;
 161:level3.c      **** }
 440               		.stabn 68,0,161,.LM61-ScaleOnce
 441               	.LM61:
 442 0168 0895      		ret
 443               		.stabn 68,0,152,.LM62-ScaleOnce
 444               	.LM62:
 445               	.L30:
 446 016a 9695      		lsr r25
 447 016c 8795      		ror r24
 448               	.L29:
 449               		.stabn 68,0,153,.LM63-ScaleOnce
 450               	.LM63:
 451 016e 2F5F      		subi r18,lo8(-(1))
 452 0170 2093 0000 		sts maxCaptureTimeScale,r18
 453               		.stabn 68,0,161,.LM64-ScaleOnce
 454               	.LM64:
 455 0174 0895      		ret
 456               	/* epilogue: frame size=0 */
 457 0176 0895      		ret
 458               	/* epilogue end (size=1) */
 459               	/* function ScaleOnce size 26 (25) */
 460               		.size	ScaleOnce, .-ScaleOnce
 461               	.Lscope4:
 462               		.stabs	"",36,0,0,.Lscope4-ScaleOnce
 463               		.stabs	"ScaleTime:F(4,2)",36,0,167,ScaleTime
 464               		.stabs	"period:P(4,4)",64,0,166,18
 465               	.global	ScaleTime
 466               		.type	ScaleTime, @function
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccWGbaaa.s 			page 12


 467               	ScaleTime:
 162:level3.c      **** 
 163:level3.c      **** 
 164:level3.c      **** // ==================================================================
 165:level3.c      **** 
 166:level3.c      **** uint8_t ScaleTime( uint16_t period ) 
 167:level3.c      **** {
 468               		.stabn 68,0,167,.LM65-ScaleTime
 469               	.LM65:
 470               	/* prologue: frame size=0 */
 471 0178 CF93      		push r28
 472               	/* prologue end (size=1) */
 473 017a 9C01      		movw r18,r24
 168:level3.c      ****     uint8_t i;
 169:level3.c      ****     maxCaptureTimeScale = 3;
 474               		.stabn 68,0,169,.LM66-ScaleTime
 475               	.LM66:
 476               	.LBB5:
 477 017c 83E0      		ldi r24,lo8(3)
 478 017e 8093 0000 		sts maxCaptureTimeScale,r24
 170:level3.c      ****     for ( i = 0 ; i < 4 ; i++ ) 
 479               		.stabn 68,0,170,.LM67-ScaleTime
 480               	.LM67:
 481 0182 C0E0      		ldi r28,lo8(0)
 482               	.L36:
 171:level3.c      ****     {
 172:level3.c      ****         period = ScaleOnce( period );
 483               		.stabn 68,0,172,.LM68-ScaleTime
 484               	.LM68:
 485 0184 C901      		movw r24,r18
 486 0186 DEDF      		rcall ScaleOnce
 487 0188 9C01      		movw r18,r24
 488               		.stabn 68,0,170,.LM69-ScaleTime
 489               	.LM69:
 490 018a CF5F      		subi r28,lo8(-(1))
 491 018c C430      		cpi r28,lo8(4)
 492 018e D0F3      		brlo .L36
 173:level3.c      ****     }
 174:level3.c      ****     return period;
 493               		.stabn 68,0,174,.LM70-ScaleTime
 494               	.LM70:
 495 0190 9927      		clr r25
 175:level3.c      **** }
 496               		.stabn 68,0,175,.LM71-ScaleTime
 497               	.LM71:
 498               	.LBE5:
 499               	/* epilogue: frame size=0 */
 500 0192 CF91      		pop r28
 501 0194 0895      		ret
 502               	/* epilogue end (size=2) */
 503               	/* function ScaleTime size 15 (12) */
 504               		.size	ScaleTime, .-ScaleTime
 505               		.stabs	"i:r(4,2)",64,0,168,28
 506               		.stabn	192,0,0,.LBB5-ScaleTime
 507               		.stabn	224,0,0,.LBE5-ScaleTime
 508               	.Lscope5:
 509               		.stabs	"",36,0,0,.Lscope5-ScaleTime
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccWGbaaa.s 			page 13


 510               		.stabs	"__vector_4:F(0,20)",36,0,183,__vector_4
 511               	.global	__vector_4
 512               		.type	__vector_4, @function
 513               	__vector_4:
 176:level3.c      **** 
 177:level3.c      **** // ==================================================================
 178:level3.c      **** // ==================================================================
 179:level3.c      **** // INTERRUPT ROUTINES
 180:level3.c      **** // ==================================================================
 181:level3.c      **** 
 182:level3.c      **** SIGNAL ( SIG_OVERFLOW2 )
 183:level3.c      **** {
 514               		.stabn 68,0,183,.LM72-__vector_4
 515               	.LM72:
 516               	/* prologue: frame size=0 */
 517 0196 1F92      		push __zero_reg__
 518 0198 0F92      		push __tmp_reg__
 519 019a 0FB6      		in __tmp_reg__,__SREG__
 520 019c 0F92      		push __tmp_reg__
 521 019e 1124      		clr __zero_reg__
 522               	/* prologue end (size=5) */
 184:level3.c      ****   	    
 185:level3.c      ****     TIMSK = 0;                                    //finished, disable all
 523               		.stabn 68,0,185,.LM73-__vector_4
 524               	.LM73:
 525 01a0 19BE      		out 89-0x20,__zero_reg__
 186:level3.c      **** }
 526               		.stabn 68,0,186,.LM74-__vector_4
 527               	.LM74:
 528               	/* epilogue: frame size=0 */
 529 01a2 0F90      		pop __tmp_reg__
 530 01a4 0FBE      		out __SREG__,__tmp_reg__
 531 01a6 0F90      		pop __tmp_reg__
 532 01a8 1F90      		pop __zero_reg__
 533 01aa 1895      		reti
 534               	/* epilogue end (size=5) */
 535               	/* function __vector_4 size 11 (1) */
 536               		.size	__vector_4, .-__vector_4
 537               	.Lscope6:
 538               		.stabs	"",36,0,0,.Lscope6-__vector_4
 539               		.stabs	"__vector_2:F(0,20)",36,0,192,__vector_2
 540               	.global	__vector_2
 541               		.type	__vector_2, @function
 542               	__vector_2:
 187:level3.c      **** 
 188:level3.c      **** // ==================================================================
 189:level3.c      **** // PBSK valid data 
 190:level3.c      **** 
 191:level3.c      **** SIGNAL ( SIG_INTERRUPT1 )
 192:level3.c      **** { 
 543               		.stabn 68,0,192,.LM75-__vector_2
 544               	.LM75:
 545               	/* prologue: frame size=0 */
 546 01ac 1F92      		push __zero_reg__
 547 01ae 0F92      		push __tmp_reg__
 548 01b0 0FB6      		in __tmp_reg__,__SREG__
 549 01b2 0F92      		push __tmp_reg__
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccWGbaaa.s 			page 14


 550 01b4 1124      		clr __zero_reg__
 551 01b6 8F93      		push r24
 552 01b8 9F93      		push r25
 553 01ba EF93      		push r30
 554 01bc FF93      		push r31
 555               	/* prologue end (size=9) */
 193:level3.c      **** 	  sec = 0 ;
 556               		.stabn 68,0,193,.LM76-__vector_2
 557               	.LM76:
 558 01be 90E0      		ldi r25,lo8(0)
 559 01c0 9093 0000 		sts sec,r25
 194:level3.c      ****     temp = ( ( PIND >> 4 ) & 1 ) ^ 1;
 560               		.stabn 68,0,194,.LM77-__vector_2
 561               	.LM77:
 562 01c4 80B3      		in r24,48-0x20
 563 01c6 8295      		swap r24
 564 01c8 8F70      		andi r24,0x0f
 565 01ca 8095      		com r24
 566 01cc 8170      		andi r24,lo8(1)
 567 01ce 8093 0000 		sts temp,r24
 195:level3.c      ****     while ( ( PIND & 0x08 ) == 0x08 )
 568               		.stabn 68,0,195,.LM78-__vector_2
 569               	.LM78:
 570 01d2 839B      		sbis 48-0x20,3
 571 01d4 14C0      		rjmp .L48
 572               	.L44:
 196:level3.c      **** 	  {
 197:level3.c      **** 	      sec++;
 573               		.stabn 68,0,197,.LM79-__vector_2
 574               	.LM79:
 575 01d6 9F5F      		subi r25,lo8(-(1))
 576 01d8 9093 0000 		sts sec,r25
 577 01dc 8399      		sbic 48-0x20,3
 578 01de FBCF      		rjmp .L44
 579               	.L47:
 198:level3.c      **** 	  }
 199:level3.c      **** 	  if ( sec >= 5 )
 580               		.stabn 68,0,199,.LM80-__vector_2
 581               	.LM80:
 582 01e0 9530      		cpi r25,lo8(5)
 583 01e2 80F0      		brlo .L40
 200:level3.c      **** 	  {
 201:level3.c      **** 		    raw_data[ number++ ] = temp ;		 
 584               		.stabn 68,0,201,.LM81-__vector_2
 585               	.LM81:
 586 01e4 8091 0000 		lds r24,number
 587 01e8 E82F      		mov r30,r24
 588 01ea FF27      		clr r31
 589 01ec E050      		subi r30,lo8(-(raw_data))
 590 01ee F040      		sbci r31,hi8(-(raw_data))
 591 01f0 9091 0000 		lds r25,temp
 592 01f4 9083      		st Z,r25
 593 01f6 8F5F      		subi r24,lo8(-(1))
 594 01f8 8093 0000 		sts number,r24
 595 01fc 03C0      		rjmp .L40
 596               	.L48:
 597 01fe 9091 0000 		lds r25,sec
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccWGbaaa.s 			page 15


 598 0202 EECF      		rjmp .L47
 202:level3.c      **** 	  }
 203:level3.c      **** }
 599               		.stabn 68,0,203,.LM82-__vector_2
 600               	.LM82:
 601               	.L40:
 602               	/* epilogue: frame size=0 */
 603 0204 FF91      		pop r31
 604 0206 EF91      		pop r30
 605 0208 9F91      		pop r25
 606 020a 8F91      		pop r24
 607 020c 0F90      		pop __tmp_reg__
 608 020e 0FBE      		out __SREG__,__tmp_reg__
 609 0210 0F90      		pop __tmp_reg__
 610 0212 1F90      		pop __zero_reg__
 611 0214 1895      		reti
 612               	/* epilogue end (size=9) */
 613               	/* function __vector_2 size 53 (35) */
 614               		.size	__vector_2, .-__vector_2
 615               	.Lscope7:
 616               		.stabs	"",36,0,0,.Lscope7-__vector_2
 617               		.stabs	"Read_TypeB_Card:F(4,2)",36,0,206,Read_TypeB_Card
 618               	.global	Read_TypeB_Card
 619               		.type	Read_TypeB_Card, @function
 620               	Read_TypeB_Card:
 204:level3.c      **** 
 205:level3.c      **** uint8_t Read_TypeB_Card( void )
 206:level3.c      **** {
 621               		.stabn 68,0,206,.LM83-Read_TypeB_Card
 622               	.LM83:
 623               	/* prologue: frame size=0 */
 624               	/* prologue end (size=0) */
 207:level3.c      **** 	  uint8_t i;
 208:level3.c      ****  
 209:level3.c      ****     expectedResponseLen = 14 ;    
 625               		.stabn 68,0,209,.LM84-Read_TypeB_Card
 626               	.LM84:
 627               	.LBB6:
 628 0216 8EE0      		ldi r24,lo8(14)
 629 0218 8093 0000 		sts expectedResponseLen,r24
 210:level3.c      **** 	          
 211:level3.c      ****     Send( 5 , 0 );          
 630               		.stabn 68,0,211,.LM85-Read_TypeB_Card
 631               	.LM85:
 632 021c 60E0      		ldi r22,lo8(0)
 633 021e 70E0      		ldi r23,hi8(0)
 634 0220 85E0      		ldi r24,lo8(5)
 635 0222 14DF      		rcall Send
 212:level3.c      ****           
 213:level3.c      ****     maxCaptureTime = ScaleTime( maxTGeneral );     
 636               		.stabn 68,0,213,.LM86-Read_TypeB_Card
 637               	.LM86:
 638 0224 8091 0000 		lds r24,maxTGeneral
 639 0228 9091 0000 		lds r25,(maxTGeneral)+1
 640 022c A5DF      		rcall ScaleTime
 641 022e 8093 0000 		sts maxCaptureTime,r24
 214:level3.c      ****   	          
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccWGbaaa.s 			page 16


⌨️ 快捷键说明

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