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

📄 level2.lst

📁 此程序为利用mage8 AVR 和EM4094实现读取ISO15693类型卡的C程序、读卡稳定、这个项目我们做了好久、非常不错的程序、很适合做这方面产品的朋友们参考
💻 LST
📖 第 1 页 / 共 5 页
字号:
  81:level2.c      ****                 else
  82:level2.c      ****                     fwd_bit_phase = 6;
 206               		.stabn 68,0,82,.LM14-__vector_8
 207               	.LM14:
 208 00ba 86E0      		ldi r24,lo8(6)
 209 00bc 43C0      		rjmp .L22
 210               	.L10:
  83:level2.c      ****                 break;
  84:level2.c      **** 
  85:level2.c      ****             case 6:
  86:level2.c      ****                 cbi( PORTC , MOD_PIN );
 211               		.stabn 68,0,86,.LM15-__vector_8
 212               	.LM15:
 213 00be A998      		cbi 53-0x20,1
  87:level2.c      **** 
  88:level2.c      ****                 TCNT1 = fwd_delays[ 5 - ( ( *fwd_write_ptr++ ) * 2 ) ]; 
 214               		.stabn 68,0,88,.LM16-__vector_8
 215               	.LM16:
 216 00c0 A091 0000 		lds r26,fwd_write_ptr
 217 00c4 B091 0000 		lds r27,(fwd_write_ptr)+1
 218 00c8 8D91      		ld r24,X+
 219 00ca 9927      		clr r25
 220 00cc 880F      		lsl r24
 221 00ce 991F      		rol r25
 222 00d0 880F      		lsl r24
 223 00d2 991F      		rol r25
 224 00d4 E0E0      		ldi r30,lo8(fwd_delays+10)
 225 00d6 F0E0      		ldi r31,hi8(fwd_delays+10)
 226 00d8 E81B      		sub r30,r24
 227 00da F90B      		sbc r31,r25
 228 00dc 8081      		ld r24,Z
 229 00de 9181      		ldd r25,Z+1
 230 00e0 9DBD      		out (76)+1-0x20,r25
 231 00e2 8CBD      		out 76-0x20,r24
 232 00e4 B093 0000 		sts (fwd_write_ptr)+1,r27
 233 00e8 A093 0000 		sts fwd_write_ptr,r26
 234               	.L24:
  89:level2.c      ****                 fwd_bit_phase = 4;
 235               		.stabn 68,0,89,.LM17-__vector_8
 236               	.LM17:
 237 00ec 84E0      		ldi r24,lo8(4)
 238 00ee 2AC0      		rjmp .L22
 239               	.L11:
  90:level2.c      ****                 break;
  91:level2.c      **** 
  92:level2.c      ****             case 12:                             //standalone EOF
  93:level2.c      ****                 sbi( PORTC , MOD_PIN );
 240               		.stabn 68,0,93,.LM18-__vector_8
 241               	.LM18:
 242 00f0 A99A      		sbi 53-0x20,1
  94:level2.c      **** 
  95:level2.c      ****                 TCNT1 = fwd_delays[ 0 ];
 243               		.stabn 68,0,95,.LM19-__vector_8
 244               	.LM19:
 245 00f2 8091 0000 		lds r24,fwd_delays
 246 00f6 9091 0000 		lds r25,(fwd_delays)+1
 247 00fa 9DBD      		out (76)+1-0x20,r25
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccU5baaa.s 			page 7


 248 00fc 8CBD      		out 76-0x20,r24
  96:level2.c      ****                 fwd_bit_phase = 13;
 249               		.stabn 68,0,96,.LM20-__vector_8
 250               	.LM20:
 251 00fe 8DE0      		ldi r24,lo8(13)
 252 0100 21C0      		rjmp .L22
 253               	.L12:
  97:level2.c      ****                 break;
  98:level2.c      **** 
  99:level2.c      ****             case 13:
 100:level2.c      ****                 cbi( PORTC , MOD_PIN );
 254               		.stabn 68,0,100,.LM21-__vector_8
 255               	.LM21:
 256 0102 A998      		cbi 53-0x20,1
 101:level2.c      ****                 TCNT1 = -755;
 257               		.stabn 68,0,101,.LM22-__vector_8
 258               	.LM22:
 259 0104 8DE0      		ldi r24,lo8(-755)
 260 0106 9DEF      		ldi r25,hi8(-755)
 261               	.L23:
 262 0108 9DBD      		out (76)+1-0x20,r25
 263 010a 8CBD      		out 76-0x20,r24
 102:level2.c      ****                 fwd_bit_phase = 5;                 //generate 2nd standalone EOF pulse
 264               		.stabn 68,0,102,.LM23-__vector_8
 265               	.LM23:
 266 010c 85E0      		ldi r24,lo8(5)
 267 010e 1AC0      		rjmp .L22
 268               	.L13:
 103:level2.c      ****                 break;
 104:level2.c      **** 
 105:level2.c      ****             default :
 106:level2.c      ****                 if ( fwd_bit_phase < 9 ) 
 269               		.stabn 68,0,106,.LM24-__vector_8
 270               	.LM24:
 271 0110 8091 0000 		lds r24,fwd_bit_phase
 272 0114 8930      		cpi r24,lo8(9)
 273 0116 C8F4      		brsh .L14
 107:level2.c      ****                 {
 108:level2.c      ****                      TCNT1 = fwd_flow[ fwd_bit_phase ];
 274               		.stabn 68,0,108,.LM25-__vector_8
 275               	.LM25:
 276 0118 8091 0000 		lds r24,fwd_bit_phase
 277 011c E82F      		mov r30,r24
 278 011e FF27      		clr r31
 279 0120 EE0F      		add r30,r30
 280 0122 FF1F      		adc r31,r31
 281 0124 E050      		subi r30,lo8(-(fwd_flow))
 282 0126 F040      		sbci r31,hi8(-(fwd_flow))
 283 0128 8081      		ld r24,Z
 284 012a 9181      		ldd r25,Z+1
 285 012c 9DBD      		out (76)+1-0x20,r25
 286 012e 8CBD      		out 76-0x20,r24
 109:level2.c      ****                      if ( fwd_bit_phase & 1 ) 
 287               		.stabn 68,0,109,.LM26-__vector_8
 288               	.LM26:
 289 0130 8091 0000 		lds r24,fwd_bit_phase
 290 0134 80FF      		sbrs r24,0
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccU5baaa.s 			page 8


 291 0136 02C0      		rjmp .L15
 110:level2.c      ****                          cbi( PORTC , MOD_PIN );
 292               		.stabn 68,0,110,.LM27-__vector_8
 293               	.LM27:
 294 0138 A998      		cbi 53-0x20,1
 295 013a 01C0      		rjmp .L16
 296               	.L15:
 111:level2.c      ****                      else
 112:level2.c      ****                          sbi( PORTC , MOD_PIN );
 297               		.stabn 68,0,112,.LM28-__vector_8
 298               	.LM28:
 299 013c A99A      		sbi 53-0x20,1
 300               	.L16:
 113:level2.c      ****                      fwd_bit_phase++;
 301               		.stabn 68,0,113,.LM29-__vector_8
 302               	.LM29:
 303 013e 8091 0000 		lds r24,fwd_bit_phase
 304 0142 8F5F      		subi r24,lo8(-(1))
 305               	.L22:
 306 0144 8093 0000 		sts fwd_bit_phase,r24
 307 0148 0AC0      		rjmp .L1
 308               	.L14:
 114:level2.c      ****                 } 
 115:level2.c      ****                 else 
 116:level2.c      ****                 {
 117:level2.c      ****                     TCCR1B = 0;                             //no clock T1
 309               		.stabn 68,0,117,.LM30-__vector_8
 310               	.LM30:
 311 014a 1EBC      		out 78-0x20,__zero_reg__
 118:level2.c      ****                     cbi( PORTC , MOD_PIN );
 312               		.stabn 68,0,118,.LM31-__vector_8
 313               	.LM31:
 314 014c A998      		cbi 53-0x20,1
 119:level2.c      ****         						cbi( TIMSK , TOIE1 );                    //stop 
 315               		.stabn 68,0,119,.LM32-__vector_8
 316               	.LM32:
 317 014e 01C0      		rjmp .L21
 318               	.L2:
 120:level2.c      ****         						cbi( TIFR , TOV1 );                       //clear pending int
 121:level2.c      ****                 }
 122:level2.c      ****                 break;
 123:level2.c      ****         }
 124:level2.c      ****   
 125:level2.c      ****     } 
 126:level2.c      ****     else 
 127:level2.c      ****     {                                   //invalid modulation type
 128:level2.c      ****         TCCR1B = 0;                               //no clock T1
 319               		.stabn 68,0,128,.LM33-__vector_8
 320               	.LM33:
 321 0150 1EBC      		out 78-0x20,__zero_reg__
 322               	.L21:
 129:level2.c      ****         cbi( TIMSK , TOIE1 );                       //else stop
 323               		.stabn 68,0,129,.LM34-__vector_8
 324               	.LM34:
 325 0152 89B7      		in r24,89-0x20
 326 0154 8B7F      		andi r24,lo8(-5)
 327 0156 89BF      		out 89-0x20,r24
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccU5baaa.s 			page 9


 130:level2.c      ****         cbi( TIFR , TOV1 );                         //clear pending int
 328               		.stabn 68,0,130,.LM35-__vector_8
 329               	.LM35:
 330 0158 88B7      		in r24,88-0x20
 331 015a 8B7F      		andi r24,lo8(-5)
 332 015c 88BF      		out 88-0x20,r24
 131:level2.c      ****     }
 132:level2.c      **** }
 333               		.stabn 68,0,132,.LM36-__vector_8
 334               	.LM36:
 335               	.L1:
 336               	/* epilogue: frame size=0 */
 337 015e FF91      		pop r31
 338 0160 EF91      		pop r30
 339 0162 BF91      		pop r27
 340 0164 AF91      		pop r26
 341 0166 9F91      		pop r25
 342 0168 8F91      		pop r24
 343 016a 0F90      		pop __tmp_reg__
 344 016c 0FBE      		out __SREG__,__tmp_reg__
 345 016e 0F90      		pop __tmp_reg__
 346 0170 1F90      		pop __zero_reg__
 347 0172 1895      		reti
 348               	/* epilogue end (size=11) */
 349               	/* function __vector_8 size 188 (166) */
 350               		.size	__vector_8, .-__vector_8
 351               	.Lscope0:
 352               		.stabs	"",36,0,0,.Lscope0-__vector_8
 353               		.stabs	"SendForward:F(0,20)",36,0,141,SendForward
 354               		.stabs	"fwd_bit_count:P(4,2)",64,0,140,18
 355               	.global	SendForward
 356               		.type	SendForward, @function
 357               	SendForward:
 133:level2.c      **** 
 134:level2.c      **** 
 135:level2.c      **** // ==================================================================
 136:level2.c      **** // Forward Link setup function
 137:level2.c      **** // Requires: forwarLink_data filled with valid bits (1 bit per byte)
 138:level2.c      **** //           fwd_bit_count set with number of bits to be sent
 139:level2.c      **** 
 140:level2.c      **** void SendForward( uint8_t fwd_bit_count ) 
 141:level2.c      **** {
 358               		.stabn 68,0,141,.LM37-SendForward
 359               	.LM37:
 360               	/* prologue: frame size=0 */
 361               	/* prologue end (size=0) */
 362 0174 282F      		mov r18,r24
 142:level2.c      ****     fwd_write_ptr = data_buffer;
 363               		.stabn 68,0,142,.LM38-SendForward
 364               	.LM38:
 365               	.LBB2:
 366 0176 80E0      		ldi r24,lo8(data_buffer)
 367 0178 90E0      		ldi r25,hi8(data_buffer)
 368 017a 9093 0000 		sts (fwd_write_ptr)+1,r25
 369 017e 8093 0000 		sts fwd_write_ptr,r24
 143:level2.c      ****     fwd_bit_sz = fwd_bit_count;
 370               		.stabn 68,0,143,.LM39-SendForward
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccU5baaa.s 			page 10


 371               	.LM39:
 372 0182 2093 0000 		sts fwd_bit_sz,r18
 144:level2.c      ****     fwd_bit_phase = 0;
 373               		.stabn 68,0,144,.LM40-SendForward
 374               	.LM40:
 375 0186 1092 0000 		sts fwd_bit_phase,__zero_reg__
 145:level2.c      **** 
 146:level2.c      ****     int i;
 147:level2.c      ****     for ( i = 0 ; i < 9 ; i++ )
 376               		.stabn 68,0,147,.LM41-SendForward
 377               	.LM41:
 378 018a 8091 0000 		lds r24,fwd_delays
 379 018e 9091 0000 		lds r25,(fwd_delays)+1
 380 0192 E0E0      		ldi r30,lo8(fwd_flow)
 381 0194 F0E0      		ldi r31,hi8(fwd_flow)
 382 0196 9F01      		movw r18,r30
 383 0198 205F      		subi r18,lo8(-(16))
 384 019a 3F4F      		sbci r19,hi8(-(16))
 385               	.L30:
 148:level2.c      ****         fwd_flow[ i ] = fwd_delays[ 0 ];
 386               		.stabn 68,0,148,.LM42-SendForward
 387               	.LM42:
 388 019c 8193      		st Z+,r24
 389 019e 9193      		st Z+,r25
 390               		.stabn 68,0,147,.LM43-SendForward
 391               	.LM43:
 392 01a0 2E17      		cp r18,r30
 393 01a2 3F07      		cpc r19,r31
 394 01a4 DCF7      		brge .L30
 149:level2.c      ****     fwd_flow[ 1 ] = fwd_delays[ 3 ];
 395               		.stabn 68,0,149,.LM44-SendForward
 396               	.LM44:
 397 01a6 8091 0000 		lds r24,fwd_delays+6
 398 01aa 9091 0000 		lds r25,(fwd_delays+6)+1
 399 01ae 9093 0000 		sts (fwd_flow+2)+1,r25
 400 01b2 8093 0000 		sts fwd_flow+2,r24
 150:level2.c      ****     fwd_flow[ 3 ] = fwd_delays[ 1 ];
 401               		.stabn 68,0,150,.LM45-SendForward
 402               	.LM45:
 403 01b6 8091 0000 		lds r24,fwd_delays+2
 404 01ba 9091 0000 		lds r25,(fwd_delays+2)+1
 405 01be 9093 0000 		sts (fwd_flow+6)+1,r25
 406 01c2 8093 0000 		sts fwd_flow+6,r24
 151:level2.c      **** 
 152:level2.c      ****     TCNT1 = -256;                            //minimum startup pulse length
 407               		.stabn 68,0,152,.LM46-SendForward
 408               	.LM46:
 409 01c6 80E0      		ldi r24,lo8(-256)
 410 01c8 9FEF      		ldi r25,hi8(-256)
 411 01ca 9DBD      		out (76)+1-0x20,r25
 412 01cc 8CBD      		out 76-0x20,r24
 153:level2.c      ****     cbi( PORTC , MOD_PIN );                   //notmod pulse
 413               		.stabn 68,0,153,.LM47-SendForward
 414               	.LM47:
 415 01ce A998      		cbi 53-0x20,1
 154:level2.c      ****     sbi( TIMSK , TOIE1 );
 416               		.stabn 68,0,154,.LM48-SendForward
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccU5baaa.s 			page 11


 417               	.LM48:
 418 01d0 89B7      		in r24,89-0x20
 419 01d2 8460      		ori r24,lo8(4)

⌨️ 快捷键说明

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