📄 main.lst
字号:
746 02ca CF93 push r28
747 /* prologue end (size=2) */
748 02cc 182F mov r17,r24
335:main.c **** uint8_t last_cnt;
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccARbaaa.s page 20
336:main.c **** TCCR0 = 0; //disable Counter0
749 .stabn 68,0,336,.LM84-Capture
750 .LM84:
751 .LBB3:
752 02ce 13BE out 83-0x20,__zero_reg__
337:main.c **** TCCR1B = 0; //disable Counter1
753 .stabn 68,0,337,.LM85-Capture
754 .LM85:
755 02d0 1EBC out 78-0x20,__zero_reg__
338:main.c ****
339:main.c **** pulsesPerBit2 = 2 * pulsesPerBit;
756 .stabn 68,0,339,.LM86-Capture
757 .LM86:
758 02d2 2091 0000 lds r18,pulsesPerBit
759 02d6 822F mov r24,r18
760 02d8 9927 clr r25
761 02da 880F add r24,r24
762 02dc 991F adc r25,r25
763 02de 8093 0000 sts pulsesPerBit2,r24
340:main.c **** pulsesPerBit3 = 3 * pulsesPerBit;
764 .stabn 68,0,340,.LM87-Capture
765 .LM87:
766 02e2 C3E0 ldi r28,lo8(3)
767 02e4 2C9F mul r18,r28
768 02e6 C001 movw r24,r0
769 02e8 1124 clr r1
770 02ea 8093 0000 sts pulsesPerBit3,r24
341:main.c ****
342:main.c **** if ( !bufferClean )
771 .stabn 68,0,342,.LM88-Capture
772 .LM88:
773 02ee 8091 0000 lds r24,bufferClean
774 02f2 8823 tst r24
775 02f4 09F4 brne .L49
343:main.c **** ClearCaptureBuffers( );
776 .stabn 68,0,343,.LM89-Capture
777 .LM89:
778 02f6 00D0 rcall ClearCaptureBuffers
779 .L49:
344:main.c **** bufferClean = 0;
780 .stabn 68,0,344,.LM90-Capture
781 .LM90:
782 02f8 1092 0000 sts bufferClean,__zero_reg__
345:main.c **** previous_delay = 0;
783 .stabn 68,0,345,.LM91-Capture
784 .LM91:
785 02fc 1092 0000 sts (previous_delay)+1,__zero_reg__
786 0300 1092 0000 sts previous_delay,__zero_reg__
346:main.c **** captured_bit_count = 0; //reset some values
787 .stabn 68,0,346,.LM92-Capture
788 .LM92:
789 0304 9924 clr r9
347:main.c **** capture_cnt = 0;
790 .stabn 68,0,347,.LM93-Capture
791 .LM93:
792 0306 892C mov r8,r9
348:main.c **** bit_pos = 1;
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccARbaaa.s page 21
793 .stabn 68,0,348,.LM94-Capture
794 .LM94:
795 0308 81E0 ldi r24,lo8(1)
796 030a 8093 0000 sts bit_pos,r24
349:main.c **** sof = 0;
797 .stabn 68,0,349,.LM95-Capture
798 .LM95:
799 030e 9092 0000 sts sof,r9
350:main.c **** last_valid = 0;
800 .stabn 68,0,350,.LM96-Capture
801 .LM96:
802 0312 9092 0000 sts last_valid,r9
351:main.c **** last_capture = TCNT1;
803 .stabn 68,0,351,.LM97-Capture
804 .LM97:
805 0316 8CB5 in r24,76-0x20
806 0318 9DB5 in r25,(76)+1-0x20
807 031a 9093 0000 sts (last_capture)+1,r25
808 031e 8093 0000 sts last_capture,r24
352:main.c **** old_capture = TCNT1;
809 .stabn 68,0,352,.LM98-Capture
810 .LM98:
811 0322 8CB5 in r24,76-0x20
812 0324 9DB5 in r25,(76)+1-0x20
813 0326 9093 0000 sts (old_capture)+1,r25
814 032a 8093 0000 sts old_capture,r24
353:main.c ****
354:main.c **** currentMaxTimeHi = ~maxCaptureTimeHi; //set hi byte of maximum capture timer2 timeout
815 .stabn 68,0,354,.LM99-Capture
816 .LM99:
817 032e 8091 0000 lds r24,maxCaptureTimeHi
818 0332 A82E mov r10,r24
819 0334 A094 com r10
355:main.c **** TCNT2 = ~maxCaptureTimeLow; //set low byte timer2 timeout
820 .stabn 68,0,355,.LM100-Capture
821 .LM100:
822 0336 8091 0000 lds r24,maxCaptureTimeLow
823 033a 8095 com r24
824 033c 84BD out 68-0x20,r24
356:main.c **** TCNT0 = 0; //clear timer0
825 .stabn 68,0,356,.LM101-Capture
826 .LM101:
827 033e 92BE out 82-0x20,r9
357:main.c **** TIFR = TIFR | ( 1 << ICF1 ) | ( 1 << TOV1 ) | ( 1 << OCF2 ) | ( 1 << TOV2 ); //clear pendi
828 .stabn 68,0,357,.LM102-Capture
829 .LM102:
830 0340 88B7 in r24,88-0x20
831 0342 846E ori r24,lo8(-28)
832 0344 88BF out 88-0x20,r24
358:main.c ****
359:main.c **** sbi( TIMSK , TOIE2 ); //enable timer2 overflow for both
833 .stabn 68,0,359,.LM103-Capture
834 .LM103:
835 0346 89B7 in r24,89-0x20
836 0348 8064 ori r24,lo8(64)
837 034a 89BF out 89-0x20,r24
360:main.c ****
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccARbaaa.s page 22
361:main.c **** if ( style != 5 )
838 .stabn 68,0,361,.LM104-Capture
839 .LM104:
840 034c 1530 cpi r17,lo8(5)
841 034e 69F0 breq .L50
362:main.c **** {
363:main.c **** if ( ( decode_number & 1 ) == 0 )
842 .stabn 68,0,363,.LM105-Capture
843 .LM105:
844 0350 8091 0000 lds r24,decode_number
845 0354 80FD sbrc r24,0
846 0356 03C0 rjmp .L51
364:main.c **** {
365:main.c **** sbi( TIMSK , TICIE1 ); //enable timer1 capture for ASK only
847 .stabn 68,0,365,.LM106-Capture
848 .LM106:
849 0358 89B7 in r24,89-0x20
850 035a 8062 ori r24,lo8(32)
851 035c 89BF out 89-0x20,r24
852 .L51:
366:main.c **** }
367:main.c **** TCCR0 = ( 1 << CS02 ) | ( 1 << CS01 ); //external clock source, falling edge,T0
853 .stabn 68,0,367,.LM107-Capture
854 .LM107:
855 035e 86E0 ldi r24,lo8(6)
856 0360 83BF out 83-0x20,r24
368:main.c **** TCCR1B = ( 1 << ICNC1 ) | ( 1 << CS10 ); //noise canceler, clk_io clock, falling e
857 .stabn 68,0,368,.LM108-Capture
858 .LM108:
859 0362 81E8 ldi r24,lo8(-127)
860 0364 8EBD out 78-0x20,r24
369:main.c **** TCCR2 = ( 1 << CS21 ) | ( 1 << CS20 ); //run! at clk/32
861 .stabn 68,0,369,.LM109-Capture
862 .LM109:
863 0366 C5BD out 69-0x20,r28
864 0368 04C0 rjmp .L52
865 .L50:
370:main.c **** }
371:main.c **** else
372:main.c **** {
373:main.c **** TCCR1B = ( 1 << ICNC1 ) | ( 1 << ICES1 ) | ( 1 << CS11 ); //noise canceler, clk/8 clock, s
866 .stabn 68,0,373,.LM110-Capture
867 .LM110:
868 036a 82EC ldi r24,lo8(-62)
869 036c 8EBD out 78-0x20,r24
374:main.c **** TCCR2 = ( 1 << CS22 ); //run! at clk/64
870 .stabn 68,0,374,.LM111-Capture
871 .LM111:
872 036e 84E0 ldi r24,lo8(4)
873 0370 85BD out 69-0x20,r24
874 .L52:
375:main.c **** }
376:main.c **** if ( style == 5 )
875 .stabn 68,0,376,.LM112-Capture
876 .LM112:
877 0372 1530 cpi r17,lo8(5)
878 0374 39F0 breq .L54
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccARbaaa.s page 23
377:main.c **** {
378:main.c **** // EM4006_polling( );
379:main.c **** }
380:main.c **** else if( ( decode_number & 1 ) == 0 )
879 .stabn 68,0,380,.LM113-Capture
880 .LM113:
881 0376 8091 0000 lds r24,decode_number
882 037a 80FD sbrc r24,0
883 037c 03C0 rjmp .L54
381:main.c **** {
382:main.c **** while ( TIMSK & ( 1 << TOIE2 ) ) //wait until done for ASK
884 .stabn 68,0,382,.LM114-Capture
885 .LM114:
886 .L56:
887 037e 09B6 in __tmp_reg__,89-0x20
888 0380 06FC sbrc __tmp_reg__,6
889 0382 FDCF rjmp .L56
890 .L54:
383:main.c **** {}
384:main.c **** }
385:main.c **** else
386:main.c **** {
387:main.c **** // dual_subcarrier_polling(); //do polling until done for FSK
388:main.c **** }
389:main.c ****
390:main.c **** TCCR0 = 0; //stop all
891 .stabn 68,0,390,.LM115-Capture
892 .LM115:
893 0384 13BE out 83-0x20,__zero_reg__
391:main.c **** TCCR1B = 0;
894 .stabn 68,0,391,.LM116-Capture
895 .LM116:
896 0386 1EBC out 78-0x20,__zero_reg__
392:main.c **** TCCR2 = 0;
897 .stabn 68,0,392,.LM117-Capture
898 .LM117:
899 0388 15BC out 69-0x20,__zero_reg__
393:main.c **** TIMSK = TIMSK & ( 0xFF ^ ( ( 1 << TICIE1 ) | ( 1 << TOIE2 ) ) ); //disable timer1 capture, time
900 .stabn 68,0,393,.LM118-Capture
901 .LM118:
902 038a 89B7 in r24,89-0x20
903 038c 8F79 andi r24,lo8(-97)
904 038e 89BF out 89-0x20,r24
394:main.c **** TIFR = TIFR | ( 1 << ICF1 ) | ( 1 << TOV1 ) | ( 1 << OCF2 ) | ( 1 << TOV2 ); //clear pendi
905 .stabn 68,0,394,.LM119-Capture
906 .LM119:
907 0390 88B7 in r24,88-0x20
908 0392 846E ori r24,lo8(-28)
909 0394 88BF out 88-0x20,r24
395:main.c ****
396:main.c **** last_cnt = TCNT0;
910 .stabn 68,0,396,.LM120-Capture
911 .LM120:
912 0396 C2B7 in r28,82-0x20
397:main.c **** if ( debug_mode != 1 )
913 .stabn 68,0,397,.LM121-Capture
914 .LM121:
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccARbaaa.s page 24
915 0398 8091 0000 lds r24,debug_mode
916 039c 8130 cpi r24,lo8(1)
917 039e 39F0 breq .L65
398:main.c **** {
399:main.c **** while ( captured_bit_count != 0 ) //flush captured bits
918 .stabn 68,0,399,.LM122-Capture
919 .LM122:
920 03a0 9920 tst r9
921 03a2 29F0 breq .L65
922 .L64:
400:main.c **** store_bit( 0 , 1 );
923 .stabn 68,0,400,.LM123-Capture
924 .LM123:
925 03a4 61E0 ldi r22,lo8(1)
926 03a6 80E0 ldi r24,lo8(0)
927 03a8 9ADE rcall store_bit
928 03aa 9920 tst r9
929 03ac D9F7 brne .L64
930 .L65:
401:main.c **** }
402:main.c **** else
403:main.c **** {
404:main.c **** }
405:main.c ****
406:main.c **** if ( ( style != 5 ) && ( decode_number & 1 ) == 0 ) //ASK EOF resolution
931 .stabn 68,0,406,.LM124-Capture
932 .LM124:
933 03ae 1530 cpi r17,lo8(5)
934 03b0 E9F0 breq .L48
935 03b2 8091 0000 lds r24,decode_number
936 03b6 80FD sbrc r24,0
937 03b8 19C0 rjmp .L48
407:main.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -