📄 level4.lst
字号:
287:level4.c **** Send_Weigan1();
880 .stabn 68,0,287,.LM118-Send_Weigan36
881 .LM118:
882 0376 73D0 rcall Send_Weigan1
883 0378 06C0 rjmp .L91
884 .L111:
288:level4.c **** else
289:level4.c **** Send_Weigan0();
885 .stabn 68,0,289,.LM119-Send_Weigan36
886 .LM119:
887 037a 7CD0 rcall Send_Weigan0
888 037c 04C0 rjmp .L91
889 .L108:
890 .stabn 68,0,282,.LM120-Send_Weigan36
891 .LM120:
892 037e 7AD0 rcall Send_Weigan0
893 0380 F3CF rjmp .L106
894 .L102:
895 .stabn 68,0,275,.LM121-Send_Weigan36
896 .LM121:
897 0382 78D0 rcall Send_Weigan0
898 0384 D7CF rjmp .L103
290:level4.c **** }
899 .stabn 68,0,290,.LM122-Send_Weigan36
900 .LM122:
901 .L91:
902 .LBE5:
903 /* epilogue: frame size=0 */
904 0386 CF91 pop r28
905 0388 1F91 pop r17
906 038a 0F91 pop r16
907 038c FF90 pop r15
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccVbaaa.s page 22
908 038e EF90 pop r14
909 0390 DF90 pop r13
910 0392 0895 ret
911 /* epilogue end (size=7) */
912 /* function Send_Weigan36 size 125 (112) */
913 .size Send_Weigan36, .-Send_Weigan36
914 .stabs "i:r(4,2)",64,0,249,28
915 .stabs "weigan36_odd_data:r(4,2)",64,0,249,15
916 .stabs "parity_bit:r(4,2)",64,0,249,13
917 .stabs "bit_cnt:r(4,2)",64,0,249,18
918 .stabn 192,0,0,.LBB5-Send_Weigan36
919 .stabn 224,0,0,.LBE5-Send_Weigan36
920 .Lscope4:
921 .stabs "",36,0,0,.Lscope4-Send_Weigan36
922 .stabs "Send_Weigan44:F(0,20)",36,0,299,Send_Weigan44
923 .stabs "data:P(1,1)",64,0,298,16
924 .global Send_Weigan44
925 .type Send_Weigan44, @function
926 Send_Weigan44:
291:level4.c ****
292:level4.c **** // ********************************************************************************************
293:level4.c **** // Description : Send weigan44 model and encode according to weigan44 protocol.
294:level4.c **** // Return value: None.
295:level4.c **** // parameter : * data -- the point of the data to be encoded.
296:level4.c **** // ********************************************************************************************
297:level4.c ****
298:level4.c **** void Send_Weigan44( uint8_t * data )
299:level4.c **** {
927 .stabn 68,0,299,.LM123-Send_Weigan44
928 .LM123:
929 /* prologue: frame size=0 */
930 0394 DF92 push r13
931 0396 EF92 push r14
932 0398 FF92 push r15
933 039a 0F93 push r16
934 039c 1F93 push r17
935 039e CF93 push r28
936 /* prologue end (size=6) */
937 03a0 8C01 movw r16,r24
300:level4.c **** uint8_t i , bit_cnt , weigan44_low_byte = 0;
938 .stabn 68,0,300,.LM124-Send_Weigan44
939 .LM124:
940 .LBB6:
941 03a2 C0E0 ldi r28,lo8(0)
301:level4.c **** for ( i = 0 ; i < 40 ; i += 4 )
942 .stabn 68,0,301,.LM125-Send_Weigan44
943 .LM125:
944 03a4 DC2E mov r13,r28
945 03a6 44E0 ldi r20,lo8(4)
946 03a8 50E0 ldi r21,hi8(4)
947 .L124:
302:level4.c **** {
303:level4.c **** bit_cnt = i % 8;
948 .stabn 68,0,303,.LM126-Send_Weigan44
949 .LM126:
950 03aa 2C2F mov r18,r28
951 03ac 2770 andi r18,lo8(7)
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccVbaaa.s page 23
304:level4.c **** weigan44_low_byte ^= ( data[ i / 8 ] >> ( 4 - bit_cnt ) ) & 0x0F ;
952 .stabn 68,0,304,.LM127-Send_Weigan44
953 .LM127:
954 03ae 8C2F mov r24,r28
955 03b0 8695 lsr r24
956 03b2 8695 lsr r24
957 03b4 8695 lsr r24
958 03b6 F801 movw r30,r16
959 03b8 E80F add r30,r24
960 03ba F11D adc r31,__zero_reg__
961 03bc 8081 ld r24,Z
962 03be 9927 clr r25
963 03c0 BA01 movw r22,r20
964 03c2 621B sub r22,r18
965 03c4 7109 sbc r23,__zero_reg__
966 03c6 02C0 rjmp 2f
967 03c8 9595 1: asr r25
968 03ca 8795 ror r24
969 03cc 6A95 2: dec r22
970 03ce E2F7 brpl 1b
971 03d0 8F70 andi r24,lo8(15)
972 03d2 D826 eor r13,r24
973 .stabn 68,0,301,.LM128-Send_Weigan44
974 .LM128:
975 03d4 CC5F subi r28,lo8(-(4))
976 03d6 C832 cpi r28,lo8(40)
977 03d8 40F3 brlo .L124
305:level4.c **** }
306:level4.c **** wdt_reset( );
978 .stabn 68,0,306,.LM129-Send_Weigan44
979 .LM129:
980 /* #APP */
981 03da A895 wdr
307:level4.c **** #ifdef WDT
308:level4.c **** WatchDog_Feed( );
982 .stabn 68,0,308,.LM130-Send_Weigan44
983 .LM130:
984 /* #NOAPP */
985 03dc 00D0 rcall WatchDog_Feed
309:level4.c **** #endif
310:level4.c **** for( i = 0 ; i < 40 ; i++ ) //Send CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC;
986 .stabn 68,0,310,.LM131-Send_Weigan44
987 .LM131:
988 03de C0E0 ldi r28,lo8(0)
989 03e0 77E0 ldi r23,lo8(7)
990 03e2 E72E mov r14,r23
991 03e4 F12C mov r15,__zero_reg__
992 .L131:
311:level4.c **** {
312:level4.c **** bit_cnt = i % 8;
993 .stabn 68,0,312,.LM132-Send_Weigan44
994 .LM132:
995 03e6 2C2F mov r18,r28
996 03e8 2770 andi r18,lo8(7)
313:level4.c **** if ( ( data[ i / 8 ] >> ( 7 - bit_cnt ) ) & 0x01 )
997 .stabn 68,0,313,.LM133-Send_Weigan44
998 .LM133:
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccVbaaa.s page 24
999 03ea 8C2F mov r24,r28
1000 03ec 8695 lsr r24
1001 03ee 8695 lsr r24
1002 03f0 8695 lsr r24
1003 03f2 F801 movw r30,r16
1004 03f4 E80F add r30,r24
1005 03f6 F11D adc r31,__zero_reg__
1006 03f8 8081 ld r24,Z
1007 03fa 9927 clr r25
1008 03fc A701 movw r20,r14
1009 03fe 421B sub r20,r18
1010 0400 5109 sbc r21,__zero_reg__
1011 0402 02C0 rjmp 2f
1012 0404 9595 1: asr r25
1013 0406 8795 ror r24
1014 0408 4A95 2: dec r20
1015 040a E2F7 brpl 1b
1016 040c 80FF sbrs r24,0
1017 040e 1BC0 rjmp .L129
314:level4.c **** Send_Weigan1();
1018 .stabn 68,0,314,.LM134-Send_Weigan44
1019 .LM134:
1020 0410 26D0 rcall Send_Weigan1
1021 .stabn 68,0,310,.LM135-Send_Weigan44
1022 .LM135:
1023 .L127:
1024 0412 CF5F subi r28,lo8(-(1))
1025 0414 C832 cpi r28,lo8(40)
1026 0416 38F3 brlo .L131
315:level4.c **** else
316:level4.c **** Send_Weigan0();
317:level4.c **** }
318:level4.c **** for( i = 4 ; i < 8 ; i++ ) //Send XXXX ;
1027 .stabn 68,0,318,.LM136-Send_Weigan44
1028 .LM136:
1029 0418 C4E0 ldi r28,lo8(4)
1030 041a 0D2D mov r16,r13
1031 041c 1127 clr r17
1032 041e 67E0 ldi r22,lo8(7)
1033 0420 E62E mov r14,r22
1034 0422 F12C mov r15,__zero_reg__
1035 .L138:
319:level4.c **** {
320:level4.c **** bit_cnt = i % 8;
1036 .stabn 68,0,320,.LM137-Send_Weigan44
1037 .LM137:
1038 0424 2C2F mov r18,r28
1039 0426 2770 andi r18,lo8(7)
321:level4.c **** if( ( weigan44_low_byte >> ( 7 - bit_cnt ) ) & 0x01 )
1040 .stabn 68,0,321,.LM138-Send_Weigan44
1041 .LM138:
1042 0428 C701 movw r24,r14
1043 042a 821B sub r24,r18
1044 042c 9109 sbc r25,__zero_reg__
1045 042e B801 movw r22,r16
1046 0430 02C0 rjmp 2f
1047 0432 7595 1: asr r23
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccVbaaa.s page 25
1048 0434 6795 ror r22
1049 0436 8A95 2: dec r24
1050 0438 E2F7 brpl 1b
1051 043a 60FF sbrs r22,0
1052 043c 02C0 rjmp .L136
322:level4.c **** Send_Weigan1();
1053 .stabn 68,0,322,.LM139-Send_Weigan44
1054 .LM139:
1055 043e 0FD0 rcall Send_Weigan1
1056 0440 04C0 rjmp .L134
1057 .L136:
323:level4.c **** else
324:level4.c **** Send_Weigan0();
1058 .stabn 68,0,324,.LM140-Send_Weigan44
1059 .LM140:
1060 0442 18D0 rcall Send_Weigan0
1061 0444 02C0 rjmp .L134
1062 .L129:
1063 .stabn 68,0,316,.LM141-Send_Weigan44
1064 .LM141:
1065 0446 16D0 rcall Send_Weigan0
1066 0448 E4CF rjmp .L127
1067 .stabn 68,0,318,.LM142-Send_Weigan44
1068 .LM142:
1069 .L134:
1070 044a CF5F subi r28,lo8(-(1))
1071 044c C830 cpi r28,lo8(8)
1072 044e 50F3 brlo .L138
325:level4.c **** }
326:level4.c **** }
1073 .stabn 68,0,326,.LM143-Send_Weigan44
1074 .LM143:
1075 .LBE6:
1076 /* epilogue: frame size=0 */
1077 0450 CF91 pop r28
1078 0452 1F91 pop r17
1079 0454 0F91 pop r16
1080 0456 FF90 pop r15
1081 0458 EF90 pop r14
1082 045a DF90 pop r13
1083 045c 0895 ret
1084 /* epilogue end (size=7) */
1085 /* function Send_Weigan44 size 105 (92) */
1086 .size Send_Weigan44, .-Send_Weigan44
1087 .stabs "i:r(4,2)",64,0,300,28
1088 .stabs "bit_cnt:r(4,2)",64,0,300,18
1089 .stabs "weigan44_low_byte:r(4,2)",64,0,300,13
1090 .stabn 192,0,0,.LBB6-Send_Weigan44
1091 .stabn 224,0,0,.LBE6-Send_Weigan44
1092 .Lscope5:
1093 .stabs "",36,0,0,.Lscope5-Send_Weigan44
1094 .stabs "Send_Weigan1:F(0,20)",36,0,332,Send_Weigan1
1095 .global Send_Weigan1
1096 .type Send_Weigan1, @function
1097 Send_Weigan1:
327:level4.c ****
328:level4.c ****
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccVbaaa.s page 26
329:level4.c ****
330:level4.c ****
331:level4.c **** void Send_Weigan1( void )
332:level4.c **** {
1098 .stabn 68,0,332,.LM144-Send_Weigan1
1099 .LM144:
1100 /* prologue: frame size=0 */
1101 /* prologue end (size=0) */
333:level4.c **** sbi( PORTB , WEIGAN_1 );
1102 .stabn 68,0,333,.LM145-Send_Weigan1
1103 .LM145:
1104 045e C29A sbi 56-0x20,2
334:level4.c **** Delayus( 100 );
1105 .stabn 68,0,334,.LM146-Send_Weigan1
1106 .LM146:
1107 0460 84E6 ldi r24,lo8(100)
1108 0462 90E0 ldi r25,hi8(100)
1109 0464 00D0 rcall Delayus
335:level4.c **** cbi( PORTB , WEIGAN_1 );
1110 .stabn 68,0,335,.LM147-Send_Weigan1
1111 .LM147:
1112 0466 C298 cbi 56-0x20,2
336:level4.c **** Delayus( 1500 );
1113 .stabn 68,0,336,.LM148-Send_Weigan1
1114 .LM148:
1115 0468 8CED ldi r24,lo8(1500)
1116 046a 95E0 ldi r25,hi8(1500)
1117 046c 00D0 rcall Delayus
337:lev
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -