📄 main.lst
字号:
343 .LM28:
344 00bc 80E0 ldi r24,lo8(ALARM_ENABLE)
345 00be 90E0 ldi r25,hi8(ALARM_ENABLE)
346 00c0 00D0 rcall eeprom_read_byte
347 00c2 01C0 rjmp .L17
348 .L12:
197:main.c **** else
198:main.c **** alarm_enable = 0x01;
349 .stabn 68,0,198,.LM29-avr_ini
350 .LM29:
351 00c4 81E0 ldi r24,lo8(1)
352 .L17:
353 00c6 8093 0000 sts alarm_enable,r24
199:main.c ****
200:main.c **** Beep( 2 );
354 .stabn 68,0,200,.LM30-avr_ini
355 .LM30:
356 00ca 82E0 ldi r24,lo8(2)
357 00cc F0D1 rcall Beep
201:main.c ****
202:main.c **** Set_GREEN_LED( );
358 .stabn 68,0,202,.LM31-avr_ini
359 .LM31:
360 00ce 9698 cbi 50-0x20,6
203:main.c **** Delayms( 300 );
361 .stabn 68,0,203,.LM32-avr_ini
362 .LM32:
363 00d0 8CE2 ldi r24,lo8(300)
364 00d2 91E0 ldi r25,hi8(300)
365 00d4 BAD1 rcall Delayms
204:main.c **** Set_RED_LED( );
366 .stabn 68,0,204,.LM33-avr_ini
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccARbaaa.s page 11
367 .LM33:
368 00d6 969A sbi 50-0x20,6
205:main.c ****
206:main.c **** sei( ); // General Interrupt Enable
369 .stabn 68,0,206,.LM34-avr_ini
370 .LM34:
371 /* #APP */
372 00d8 7894 sei
207:main.c **** }
373 .stabn 68,0,207,.LM35-avr_ini
374 .LM35:
375 /* #NOAPP */
376 /* epilogue: frame size=0 */
377 00da 1F91 pop r17
378 00dc 0895 ret
379 /* epilogue end (size=2) */
380 /* function avr_ini size 118 (115) */
381 .size avr_ini, .-avr_ini
382 .Lscope0:
383 .stabs "",36,0,0,.Lscope0-avr_ini
384 .stabs "store_bit:F(0,20)",36,0,218,store_bit
385 .stabs "b:P(4,2)",64,0,217,24
386 .stabs "v:P(4,2)",64,0,217,22
387 .global store_bit
388 .type store_bit, @function
389 store_bit:
208:main.c ****
209:main.c ****
210:main.c **** // ==================================================================
211:main.c **** // R E C E I V E R C O D E
212:main.c **** // ==================================================================
213:main.c ****
214:main.c **** // ---------------------------------------------------------------
215:main.c **** // store bit into capture buffer bytes
216:main.c ****
217:main.c **** void store_bit( uint8_t b , uint8_t v )
218:main.c **** {
390 .stabn 68,0,218,.LM36-store_bit
391 .LM36:
392 /* prologue: frame size=0 */
393 /* prologue end (size=0) */
394 00de 282F mov r18,r24
219:main.c **** captured_byte = ( captured_byte << 1 ) | b;
395 .stabn 68,0,219,.LM37-store_bit
396 .LM37:
397 00e0 862D mov r24,r6
398 00e2 9927 clr r25
399 00e4 880F lsl r24
400 00e6 991F rol r25
401 00e8 282B or r18,r24
402 00ea 622E mov r6,r18
220:main.c **** captured_valid = ( captured_valid << 1 ) | v;
403 .stabn 68,0,220,.LM38-store_bit
404 .LM38:
405 00ec 872D mov r24,r7
406 00ee 9927 clr r25
407 00f0 880F lsl r24
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccARbaaa.s page 12
408 00f2 991F rol r25
409 00f4 682B or r22,r24
410 00f6 762E mov r7,r22
221:main.c ****
222:main.c **** if ( captured_bit_count == 7 )
411 .stabn 68,0,222,.LM39-store_bit
412 .LM39:
413 00f8 87E0 ldi r24,lo8(7)
414 00fa 9816 cp r9,r24
415 00fc 79F4 brne .L19
223:main.c **** {
224:main.c **** captured_bit_count = 0;
416 .stabn 68,0,224,.LM40-store_bit
417 .LM40:
418 00fe 9924 clr r9
225:main.c ****
226:main.c **** if ( capture_cnt < CAPTURE_SIZE )
419 .stabn 68,0,226,.LM41-store_bit
420 .LM41:
421 0100 87FC sbrc r8,7
422 0102 0AC0 rjmp .L20
227:main.c **** {
228:main.c **** capture.capture_data[ capture_cnt ] = captured_byte;
423 .stabn 68,0,228,.LM42-store_bit
424 .LM42:
425 0104 E82D mov r30,r8
426 0106 FF27 clr r31
427 0108 E050 subi r30,lo8(-(capture))
428 010a F040 sbci r31,hi8(-(capture))
429 010c 2083 st Z,r18
229:main.c **** capture.capture_valid[ capture_cnt++ ] = captured_valid;
430 .stabn 68,0,229,.LM43-store_bit
431 .LM43:
432 010e E058 subi r30,lo8(-(128))
433 0110 FF4F sbci r31,hi8(-(128))
434 0112 6083 st Z,r22
435 0114 8394 inc r8
230:main.c **** }
231:main.c **** else
232:main.c **** {
233:main.c **** TIMSK = 0; //finished, disable all
234:main.c **** }
235:main.c **** }
236:main.c **** else
237:main.c **** {
238:main.c **** captured_bit_count++;
239:main.c **** }
240:main.c **** }
436 .stabn 68,0,240,.LM44-store_bit
437 .LM44:
438 0116 0895 ret
439 .L20:
440 .stabn 68,0,233,.LM45-store_bit
441 .LM45:
442 0118 19BE out 89-0x20,__zero_reg__
443 .stabn 68,0,240,.LM46-store_bit
444 .LM46:
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccARbaaa.s page 13
445 011a 0895 ret
446 .L19:
447 .stabn 68,0,238,.LM47-store_bit
448 .LM47:
449 011c 9394 inc r9
450 .stabn 68,0,240,.LM48-store_bit
451 .LM48:
452 011e 0895 ret
453 /* epilogue: frame size=0 */
454 0120 0895 ret
455 /* epilogue end (size=1) */
456 /* function store_bit size 34 (33) */
457 .size store_bit, .-store_bit
458 .Lscope1:
459 .stabs "",36,0,0,.Lscope1-store_bit
460 .stabs "__vector_5:F(0,20)",36,0,247,__vector_5
461 .global __vector_5
462 .type __vector_5, @function
463 __vector_5:
241:main.c ****
242:main.c ****
243:main.c **** // ==================================================================
244:main.c **** // void one_subcarrier_capture(void)
245:main.c ****
246:main.c **** SIGNAL ( SIG_INPUT_CAPTURE1 )
247:main.c **** {
464 .stabn 68,0,247,.LM49-__vector_5
465 .LM49:
466 /* prologue: frame size=0 */
467 0122 1F92 push __zero_reg__
468 0124 0F92 push __tmp_reg__
469 0126 0FB6 in __tmp_reg__,__SREG__
470 0128 0F92 push __tmp_reg__
471 012a 1124 clr __zero_reg__
472 012c EF92 push r14
473 012e FF92 push r15
474 0130 1F93 push r17
475 0132 2F93 push r18
476 0134 3F93 push r19
477 0136 4F93 push r20
478 0138 5F93 push r21
479 013a 6F93 push r22
480 013c 7F93 push r23
481 013e 8F93 push r24
482 0140 9F93 push r25
483 0142 AF93 push r26
484 0144 BF93 push r27
485 0146 CF93 push r28
486 0148 DF93 push r29
487 014a EF93 push r30
488 014c FF93 push r31
489 /* prologue end (size=22) */
248:main.c **** uint8_t z;
249:main.c **** uint16_t capt , y;
250:main.c **** uint16_t icr;
251:main.c **** icr = ICR1;
490 .stabn 68,0,251,.LM50-__vector_5
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccARbaaa.s page 14
491 .LM50:
492 .LBB2:
493 014e E6B4 in r14,70-0x20
494 0150 F7B4 in r15,(70)+1-0x20
252:main.c **** capt = icr - last_capture;
495 .stabn 68,0,252,.LM51-__vector_5
496 .LM51:
497 0152 8091 0000 lds r24,last_capture
498 0156 9091 0000 lds r25,(last_capture)+1
499 015a E701 movw r28,r14
500 015c C81B sub r28,r24
501 015e D90B sbc r29,r25
253:main.c ****
254:main.c **** if ( capt > halfDataRate ) //quite good pause? //halfDataRate = 288 or 4* 288;
502 .stabn 68,0,254,.LM52-__vector_5
503 .LM52:
504 0160 4091 0000 lds r20,halfDataRate
505 0164 5091 0000 lds r21,(halfDataRate)+1
506 0168 4C17 cp r20,r28
507 016a 5D07 cpc r21,r29
508 016c 08F0 brlo .+2
509 016e 92C0 rjmp .L24
255:main.c **** {
256:main.c **** z = TCNT0;
510 .stabn 68,0,256,.LM53-__vector_5
511 .LM53:
512 0170 22B7 in r18,82-0x20
257:main.c **** TCNT0 = 0;
513 .stabn 68,0,257,.LM54-__vector_5
514 .LM54:
515 0172 12BE out 82-0x20,__zero_reg__
258:main.c **** y = icr - old_capture; //y
259:main.c ****
260:main.c **** if ( debug_mode != 1 ) //data capture
516 .stabn 68,0,260,.LM55-__vector_5
517 .LM55:
518 0174 8091 0000 lds r24,debug_mode
519 0178 8130 cpi r24,lo8(1)
520 017a 09F4 brne .+2
521 017c 87C0 rjmp .L43
261:main.c **** {
262:main.c **** capt += previous_delay;
522 .stabn 68,0,262,.LM56-__vector_5
523 .LM56:
524 017e 8091 0000 lds r24,previous_delay
525 0182 9091 0000 lds r25,(previous_delay)+1
526 0186 C80F add r28,r24
527 0188 D91F adc r29,r25
263:main.c **** previous_delay = 0;
528 .stabn 68,0,263,.LM57-__vector_5
529 .LM57:
530 018a 1092 0000 sts (previous_delay)+1,__zero_reg__
531 018e 1092 0000 sts previous_delay,__zero_reg__
264:main.c **** if ( z < ( uint8_t )( pulsesPerBit - TOLERANCE ) ) //kludge because of noise
532 .stabn 68,0,264,.LM58-__vector_5
533 .LM58:
534 0192 3091 0000 lds r19,pulsesPerBit
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccARbaaa.s page 15
535 0196 832F mov r24,r19
536 0198 8350 subi r24,lo8(-(-3))
537 019a 2817 cp r18,r24
538 019c 50F4 brsh .L26
265:main.c **** {
266:main.c **** previous_delay = capt;
539 .stabn 68,0,266,.LM59-__vector_5
540 .LM59:
541 019e D093 0000 sts (previous_delay)+1,r29
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -