📄 level4.lst
字号:
560 .size Send_Weigan26, .-Send_Weigan26
561 .stabs "i:r(4,2)",64,0,248,28
562 .stabs "weigan26_even_data:r(4,2)",64,0,248,14
563 .stabs "parity_bit:r(4,2)",64,0,248,15
564 .stabs "bit_cnt:r(4,2)",64,0,248,20
565 .stabn 192,0,0,.LBB3-Send_Weigan26
566 .stabn 224,0,0,.LBE3-Send_Weigan26
567 .Lscope4:
568 .stabs "",36,0,0,.Lscope4-Send_Weigan26
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccyKbaaa.s page 16
569 .stabs "Send_Weigan34:F(0,20)",36,0,296,Send_Weigan34
570 .stabs "data:P(1,1)",64,0,295,16
571 .global Send_Weigan34
572 .type Send_Weigan34, @function
573 Send_Weigan34:
288:level4.c ****
289:level4.c **** // ********************************************************************************************
290:level4.c **** // Description : Send weigan34 model and encode according to weigan34 protocol.
291:level4.c **** // Return value: None.
292:level4.c **** // parameter : * data -- the point of the data to be encoded.
293:level4.c **** // ********************************************************************************************
294:level4.c ****
295:level4.c **** void Send_Weigan34( uint8_t * data )
296:level4.c **** {
574 .stabn 68,0,296,.LM77-Send_Weigan34
575 .LM77:
576 /* prologue: frame size=0 */
577 01f2 EF92 push r14
578 01f4 FF92 push r15
579 01f6 0F93 push r16
580 01f8 1F93 push r17
581 01fa CF93 push r28
582 /* prologue end (size=5) */
583 01fc 8C01 movw r16,r24
297:level4.c **** uint8_t i , weigan34_even_data , weigan34_odd_data , parity_bit , bit_cnt;
298:level4.c **** parity_bit = 0; //If use even parity check , this bit must be 0;
584 .stabn 68,0,298,.LM78-Send_Weigan34
585 .LM78:
586 .LBB4:
587 01fe FF24 clr r15
299:level4.c **** for ( i = 0 ; i < 16 ; i++ )
588 .stabn 68,0,299,.LM79-Send_Weigan34
589 .LM79:
590 0200 CF2D mov r28,r15
591 .L74:
300:level4.c **** {
301:level4.c **** bit_cnt = i % 8 ;
592 .stabn 68,0,301,.LM80-Send_Weigan34
593 .LM80:
594 0202 4C2F mov r20,r28
595 0204 4770 andi r20,lo8(7)
302:level4.c **** parity_bit ^= ( data[ i / 8 ] >> ( 7 - bit_cnt ) ) & 0x01;
596 .stabn 68,0,302,.LM81-Send_Weigan34
597 .LM81:
598 0206 8C2F mov r24,r28
599 0208 8695 lsr r24
600 020a 8695 lsr r24
601 020c 8695 lsr r24
602 020e F801 movw r30,r16
603 0210 E80F add r30,r24
604 0212 F11D adc r31,__zero_reg__
605 0214 8081 ld r24,Z
606 0216 282F mov r18,r24
607 0218 3327 clr r19
608 021a 87E0 ldi r24,lo8(7)
609 021c 90E0 ldi r25,hi8(7)
610 021e 841B sub r24,r20
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccyKbaaa.s page 17
611 0220 9109 sbc r25,__zero_reg__
612 0222 02C0 rjmp 2f
613 0224 3595 1: asr r19
614 0226 2795 ror r18
615 0228 8A95 2: dec r24
616 022a E2F7 brpl 1b
617 022c 822F mov r24,r18
618 022e 8170 andi r24,lo8(1)
619 0230 F826 eor r15,r24
620 .stabn 68,0,299,.LM82-Send_Weigan34
621 .LM82:
622 0232 CF5F subi r28,lo8(-(1))
623 0234 C031 cpi r28,lo8(16)
624 0236 28F3 brlo .L74
625 0238 C0E1 ldi r28,lo8(16)
303:level4.c **** }
304:level4.c **** weigan34_even_data = parity_bit ;
626 .stabn 68,0,304,.LM83-Send_Weigan34
627 .LM83:
628 023a EF2C mov r14,r15
305:level4.c **** wdt_reset( );
629 .stabn 68,0,305,.LM84-Send_Weigan34
630 .LM84:
631 /* #APP */
632 023c A895 wdr
306:level4.c **** #ifdef WDT
307:level4.c **** WatchDog_Feed( );
633 .stabn 68,0,307,.LM85-Send_Weigan34
634 .LM85:
635 /* #NOAPP */
636 023e 00D0 rcall WatchDog_Feed
308:level4.c **** #endif
309:level4.c **** parity_bit = 1; //If use odd parity check , this bit must be 1 ;
637 .stabn 68,0,309,.LM86-Send_Weigan34
638 .LM86:
639 0240 91E0 ldi r25,lo8(1)
640 0242 F92E mov r15,r25
641 .L79:
310:level4.c **** for ( i = 16 ; i < 32 ; i++ )
311:level4.c **** {
312:level4.c **** bit_cnt = i % 8;
642 .stabn 68,0,312,.LM87-Send_Weigan34
643 .LM87:
644 0244 4C2F mov r20,r28
645 0246 4770 andi r20,lo8(7)
313:level4.c **** parity_bit ^= ( data[ i / 8 ] >> ( 7 - bit_cnt ) ) & 0x01;
646 .stabn 68,0,313,.LM88-Send_Weigan34
647 .LM88:
648 0248 8C2F mov r24,r28
649 024a 8695 lsr r24
650 024c 8695 lsr r24
651 024e 8695 lsr r24
652 0250 F801 movw r30,r16
653 0252 E80F add r30,r24
654 0254 F11D adc r31,__zero_reg__
655 0256 8081 ld r24,Z
656 0258 282F mov r18,r24
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccyKbaaa.s page 18
657 025a 3327 clr r19
658 025c 87E0 ldi r24,lo8(7)
659 025e 90E0 ldi r25,hi8(7)
660 0260 841B sub r24,r20
661 0262 9109 sbc r25,__zero_reg__
662 0264 02C0 rjmp 2f
663 0266 3595 1: asr r19
664 0268 2795 ror r18
665 026a 8A95 2: dec r24
666 026c E2F7 brpl 1b
667 026e 822F mov r24,r18
668 0270 8170 andi r24,lo8(1)
669 0272 F826 eor r15,r24
670 .stabn 68,0,310,.LM89-Send_Weigan34
671 .LM89:
672 0274 CF5F subi r28,lo8(-(1))
673 0276 C032 cpi r28,lo8(32)
674 0278 28F3 brlo .L79
314:level4.c **** }
315:level4.c **** weigan34_odd_data = parity_bit;
316:level4.c **** wdt_reset( );
675 .stabn 68,0,316,.LM90-Send_Weigan34
676 .LM90:
677 /* #APP */
678 027a A895 wdr
317:level4.c **** #ifdef WDT
318:level4.c **** WatchDog_Feed( );
679 .stabn 68,0,318,.LM91-Send_Weigan34
680 .LM91:
681 /* #NOAPP */
682 027c 00D0 rcall WatchDog_Feed
319:level4.c **** #endif
320:level4.c **** if ( weigan34_even_data ) //Send E bit;
683 .stabn 68,0,320,.LM92-Send_Weigan34
684 .LM92:
685 027e EE20 tst r14
686 0280 11F0 breq .L80
321:level4.c **** Send_Weigan1();
687 .stabn 68,0,321,.LM93-Send_Weigan34
688 .LM93:
689 0282 EDD0 rcall Send_Weigan1
690 0284 01C0 rjmp .L81
691 .L80:
322:level4.c **** else
323:level4.c **** Send_Weigan0();
692 .stabn 68,0,323,.LM94-Send_Weigan34
693 .LM94:
694 0286 F6D0 rcall Send_Weigan0
695 .L81:
324:level4.c **** for ( i = 0 ; i < 32 ; i++ ) //Send CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC;
696 .stabn 68,0,324,.LM95-Send_Weigan34
697 .LM95:
698 0288 C0E0 ldi r28,lo8(0)
699 .L88:
325:level4.c **** {
326:level4.c **** bit_cnt = i % 8 ;
700 .stabn 68,0,326,.LM96-Send_Weigan34
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccyKbaaa.s page 19
701 .LM96:
702 028a 4C2F mov r20,r28
703 028c 4770 andi r20,lo8(7)
327:level4.c **** if ( ( data[ i / 8 ] >> ( 7 - bit_cnt ) ) & 0x01 ) //MSBit is send first;
704 .stabn 68,0,327,.LM97-Send_Weigan34
705 .LM97:
706 028e 8C2F mov r24,r28
707 0290 8695 lsr r24
708 0292 8695 lsr r24
709 0294 8695 lsr r24
710 0296 F801 movw r30,r16
711 0298 E80F add r30,r24
712 029a F11D adc r31,__zero_reg__
713 029c 8081 ld r24,Z
714 029e 282F mov r18,r24
715 02a0 3327 clr r19
716 02a2 87E0 ldi r24,lo8(7)
717 02a4 90E0 ldi r25,hi8(7)
718 02a6 841B sub r24,r20
719 02a8 9109 sbc r25,__zero_reg__
720 02aa 02C0 rjmp 2f
721 02ac 3595 1: asr r19
722 02ae 2795 ror r18
723 02b0 8A95 2: dec r24
724 02b2 E2F7 brpl 1b
725 02b4 20FF sbrs r18,0
726 02b6 02C0 rjmp .L86
328:level4.c **** Send_Weigan1();
727 .stabn 68,0,328,.LM98-Send_Weigan34
728 .LM98:
729 02b8 D2D0 rcall Send_Weigan1
730 02ba 01C0 rjmp .L84
731 .L86:
329:level4.c **** else
330:level4.c **** Send_Weigan0();
732 .stabn 68,0,330,.LM99-Send_Weigan34
733 .LM99:
734 02bc DBD0 rcall Send_Weigan0
735 .stabn 68,0,324,.LM100-Send_Weigan34
736 .LM100:
737 .L84:
738 02be CF5F subi r28,lo8(-(1))
739 02c0 C032 cpi r28,lo8(32)
740 02c2 18F3 brlo .L88
331:level4.c **** }
332:level4.c **** if ( weigan34_odd_data ) //Send O bit;
741 .stabn 68,0,332,.LM101-Send_Weigan34
742 .LM101:
743 02c4 FF20 tst r15
744 02c6 11F0 breq .L89
333:level4.c **** Send_Weigan1();
745 .stabn 68,0,333,.LM102-Send_Weigan34
746 .LM102:
747 02c8 CAD0 rcall Send_Weigan1
748 02ca 01C0 rjmp .L69
749 .L89:
334:level4.c **** else
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccyKbaaa.s page 20
335:level4.c **** Send_Weigan0();
750 .stabn 68,0,335,.LM103-Send_Weigan34
751 .LM103:
752 02cc D3D0 rcall Send_Weigan0
336:level4.c **** }
753 .stabn 68,0,336,.LM104-Send_Weigan34
754 .LM104:
755 .L69:
756 .LBE4:
757 /* epilogue: frame size=0 */
758 02ce CF91 pop r28
759 02d0 1F91 pop r17
760 02d2 0F91 pop r16
761 02d4 FF90 pop r15
762 02d6 EF90 pop r14
763 02d8 0895 ret
764 /* epilogue end (size=6) */
765 /* function Send_Weigan34 size 121 (110) */
766 .size Send_Weigan34, .-Send_Weigan34
767 .stabs "i:r(4,2)",64,0,297,28
768 .stabs "weigan34_even_data:r(4,2)",64,0,297,14
769 .stabs "parity_bit:r(4,2)",64,0,297,15
770 .stabs "bit_cnt:r(4,2)",64,0,297,20
771 .stabn 192,0,0,.LBB4-Send_Weigan34
772 .stabn 224,0,0,.LBE4-Send_Weigan34
773 .Lscope5:
774 .stabs "",36,0,0,.Lscope5-Send_Weigan34
775 .stabs "Send_Weigan36:F(0,20)",36,0,345,Send_Weigan36
776 .stabs "data:P(1,1)",64,0,344,16
777 .global Send_Weigan36
778 .type Send_Weigan36, @function
779 Send_Weigan36:
337:level4.c ****
338:level4.c **** // ********************************************************************************************
339:level4.c **** // Description : Send weigan36 model and encode according to weigan36 protocol.
340:level4.c **** // Return value: None.
341:level4.c **** // parameter : * data -- the point of the data to be encoded.
342:level4.c **** // ********************************************************************************************
343:level4.c ****
344:level4.c **** void Send_Weigan36( uint8_t * data )
345:level4.c **** {
780 .stabn 68,0,345,.LM105-Send_Weigan36
781 .LM105:
782 /* prologue: frame size=0 */
783 02da EF92 push r14
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -