📄 ds18x20.lst
字号:
866 0452 0894 sec
867 0454 E11C adc r14,__zero_reg__
868 0456 F11C adc r15,__zero_reg__
869 0458 88E0 ldi r24,lo8(8)
870 045a E0E0 ldi r30,lo8(.LC1)
871 045c F0E0 ldi r31,hi8(.LC1)
872 045e D701 movw r26,r14
873 0460 0190 ld __tmp_reg__,Z+
874 0462 0D92 st X+,__tmp_reg__
875 0464 8A95 dec r24
876 0466 E1F7 brne .-8
877 .LM100:
878 0468 242F mov r18,r20
879 046a 3327 clr r19
880 046c 81E7 ldi r24,lo8(625)
881 046e 92E0 ldi r25,hi8(625)
882 0470 289F mul r18,r24
883 0472 B001 movw r22,r0
884 0474 299F mul r18,r25
885 0476 700D add r23,r0
886 0478 389F mul r19,r24
887 047a 700D add r23,r0
888 047c 1124 clr r1
889 047e CB01 movw r24,r22
890 0480 68EE ldi r22,lo8(1000)
891 0482 73E0 ldi r23,hi8(1000)
892 0484 0E94 0000 call __divmodhi4
893 .LM101:
894 0488 8AE0 ldi r24,lo8(10)
895 048a 189F mul r17,r24
896 048c C001 movw r24,r0
897 048e 1124 clr r1
898 0490 680F add r22,r24
899 0492 791F adc r23,r25
900 .LM102:
901 0494 0023 tst r16
902 0496 59F4 brne .L80
903 .LM103:
904 0498 902F mov r25,r16
905 049a F701 movw r30,r14
906 .L85:
907 .LM104:
908 049c 8191 ld r24,Z+
909 049e 4817 cp r20,r24
910 04a0 19F4 brne .L83
911 .LM105:
912 04a2 6F5F subi r22,lo8(-(1))
913 04a4 7F4F sbci r23,hi8(-(1))
914 .LM106:
915 04a6 03C0 rjmp .L80
916 .L83:
917 .LM107:
918 04a8 9F5F subi r25,lo8(-(1))
919 04aa 9830 cpi r25,lo8(8)
920 04ac B8F3 brlo .L85
921 .L80:
922 .LM108:
923 04ae CB01 movw r24,r22
924 /* epilogue: frame size=8 */
925 04b0 2896 adiw r28,8
926 04b2 0FB6 in __tmp_reg__,__SREG__
927 04b4 F894 cli
928 04b6 DEBF out __SP_H__,r29
929 04b8 0FBE out __SREG__,__tmp_reg__
930 04ba CDBF out __SP_L__,r28
931 04bc DF91 pop r29
932 04be CF91 pop r28
933 04c0 1F91 pop r17
934 04c2 0F91 pop r16
935 04c4 FF90 pop r15
936 04c6 EF90 pop r14
937 04c8 0895 ret
938 /* epilogue end (size=13) */
939 /* function DS18X20_temp_to_decicel size 77 (50) */
940 .LFE10:
942 .global DS18X20_temp_cmp
944 DS18X20_temp_cmp:
945 .LFB11:
946 .LM109:
947 /* prologue: frame size=0 */
948 /* prologue end (size=0) */
949 .LM110:
950 04ca 8823 tst r24
951 04cc 19F0 breq .L88
952 .LM111:
953 04ce 7095 com r23
954 04d0 6195 neg r22
955 04d2 7F4F sbci r23,lo8(-1)
956 .L88:
957 .LM112:
958 04d4 4423 tst r20
959 04d6 19F0 breq .L89
960 04d8 3095 com r19
961 04da 2195 neg r18
962 04dc 3F4F sbci r19,lo8(-1)
963 .L89:
964 .LM113:
965 04de 6217 cp r22,r18
966 04e0 7307 cpc r23,r19
967 04e2 1CF4 brge .L90
968 04e4 8FEF ldi r24,lo8(-1)
969 04e6 9FEF ldi r25,hi8(-1)
970 04e8 0895 ret
971 .L90:
972 .LM114:
973 04ea 2617 cp r18,r22
974 04ec 3707 cpc r19,r23
975 04ee 1CF4 brge .L91
976 04f0 81E0 ldi r24,lo8(1)
977 04f2 90E0 ldi r25,hi8(1)
978 04f4 0895 ret
979 .L91:
980 .LM115:
981 04f6 80E0 ldi r24,lo8(0)
982 04f8 90E0 ldi r25,hi8(0)
983 .LM116:
984 04fa 0895 ret
985 /* epilogue: frame size=0 */
986 /* epilogue: noreturn */
987 /* epilogue end (size=0) */
988 /* function DS18X20_temp_cmp size 25 (25) */
989 .LFE11:
991 .global DS18X20_find_sensor
993 DS18X20_find_sensor:
994 .LFB12:
995 .LM117:
996 /* prologue: frame size=0 */
997 04fc 0F93 push r16
998 04fe 1F93 push r17
999 0500 CF93 push r28
1000 0502 DF93 push r29
1001 /* prologue end (size=4) */
1002 0504 8C01 movw r16,r24
1003 0506 EB01 movw r28,r22
1004 .L93:
1005 .LM118:
1006 0508 BE01 movw r22,r28
1007 050a F801 movw r30,r16
1008 050c 8081 ld r24,Z
1009 050e 0E94 0000 call ow_rom_search
1010 0512 982F mov r25,r24
1011 0514 F801 movw r30,r16
1012 0516 8083 st Z,r24
1013 .LM119:
1014 0518 8E5F subi r24,lo8(-(2))
1015 051a 8230 cpi r24,lo8(2)
1016 051c 38F0 brlo .L92
1017 051e 9923 tst r25
1018 0520 29F0 breq .L92
1019 .LM120:
1020 0522 8881 ld r24,Y
1021 0524 8832 cpi r24,lo8(40)
1022 0526 11F0 breq .L92
1023 0528 8031 cpi r24,lo8(16)
1024 052a 71F7 brne .L93
1025 .L92:
1026 /* epilogue: frame size=0 */
1027 052c DF91 pop r29
1028 052e CF91 pop r28
1029 0530 1F91 pop r17
1030 0532 0F91 pop r16
1031 0534 0895 ret
1032 /* epilogue end (size=5) */
1033 /* function DS18X20_find_sensor size 29 (20) */
1034 .LFE12:
1036 .global DS18X20_get_power_status
1038 DS18X20_get_power_status:
1039 .LFB13:
1040 .LM121:
1041 /* prologue: frame size=0 */
1042 0536 0F93 push r16
1043 0538 1F93 push r17
1044 /* prologue end (size=2) */
1045 053a 8C01 movw r16,r24
1046 .LM122:
1047 053c 0E94 0000 call ow_reset
1048 .LM123:
1049 0540 B801 movw r22,r16
1050 0542 84EB ldi r24,lo8(-76)
1051 0544 0E94 0000 call ow_command
1052 .LM124:
1053 0548 81E0 ldi r24,lo8(1)
1054 054a 0E94 0000 call ow_bit_io
1055 054e 182F mov r17,r24
1056 .LM125:
1057 0550 0E94 0000 call ow_reset
1058 .LM126:
1059 0554 80E0 ldi r24,lo8(0)
1060 0556 90E0 ldi r25,hi8(0)
1061 0558 1123 tst r17
1062 055a 11F0 breq .L100
1063 .LM127:
1064 055c 81E0 ldi r24,lo8(1)
1065 055e 90E0 ldi r25,hi8(1)
1066 .L100:
1067 /* epilogue: frame size=0 */
1068 0560 1F91 pop r17
1069 0562 0F91 pop r16
1070 0564 0895 ret
1071 /* epilogue end (size=3) */
1072 /* function DS18X20_get_power_status size 24 (19) */
1073 .LFE13:
1075 .section .progmem.data
1078 c.4:
1079 00af 4453 3138 .string "DS18X20_start_meas: Short Circuit !\r"
1079 5832 305F
1079 7374 6172
1079 745F 6D65
1079 6173 3A20
1080 .text
1081 .global DS18X20_start_meas
1083 DS18X20_start_meas:
1084 .LFB14:
1085 .LM128:
1086 /* prologue: frame size=0 */
1087 0566 1F93 push r17
1088 0568 CF93 push r28
1089 056a DF93 push r29
1090 /* prologue end (size=3) */
1091 056c 182F mov r17,r24
1092 056e EB01 movw r28,r22
1093 .LM129:
1094 0570 0E94 0000 call ow_reset
1095 .LM130:
1096 0574 0E94 0000 call ow_input_pin_state
1097 0578 8823 tst r24
1098 057a 59F0 breq .L102
1099 .LM131:
1100 057c BE01 movw r22,r28
1101 057e 84E4 ldi r24,lo8(68)
1102 0580 0E94 0000 call ow_command
1103 .LM132:
1104 0584 1130 cpi r17,lo8(1)
1105 0586 11F0 breq .L103
1106 .LM133:
1107 0588 0E94 0000 call ow_parasite_enable
1108 .L103:
1109 .LM134:
1110 058c 80E0 ldi r24,lo8(0)
1111 058e 90E0 ldi r25,hi8(0)
1112 0590 06C0 rjmp .L101
1113 .L102:
1114 .LM135:
1115 0592 80E0 ldi r24,lo8(c.4)
1116 0594 90E0 ldi r25,hi8(c.4)
1117 0596 0E94 0000 call uart_puts_p
1118 .LM136:
1119 059a 82E0 ldi r24,lo8(2)
1120 059c 90E0 ldi r25,hi8(2)
1121 .L101:
1122 /* epilogue: frame size=0 */
1123 059e DF91 pop r29
1124 05a0 CF91 pop r28
1125 05a2 1F91 pop r17
1126 05a4 0895 ret
1127 /* epilogue end (size=4) */
1128 /* function DS18X20_start_meas size 32 (25) */
1129 .LFE14:
1131 .global DS18X20_read_meas
1133 DS18X20_read_meas:
1134 .LFB15:
1135 .LM137:
1136 /* prologue: frame size=9 */
1137 05a6 2F92 push r2
1138 05a8 3F92 push r3
1139 05aa 4F92 push r4
1140 05ac 5F92 push r5
1141 05ae 6F92 push r6
1142 05b0 7F92 push r7
1143 05b2 8F92 push r8
1144 05b4 9F92 push r9
1145 05b6 BF92 push r11
1146 05b8 CF92 push r12
1147 05ba DF92 push r13
1148 05bc EF92 push r14
1149 05be FF92 push r15
1150 05c0 0F93 push r16
1151 05c2 1F93 push r17
1152 05c4 CF93 push r28
1153 05c6 DF93 push r29
1154 05c8 CDB7 in r28,__SP_L__
1155 05ca DEB7 in r29,__SP_H__
1156 05cc 2997 sbiw r28,9
1157 05ce 0FB6 in __tmp_reg__,__SREG__
1158 05d0 F894 cli
1159 05d2 DEBF out __SP_H__,r29
1160 05d4 0FBE out __SREG__,__tmp_reg__
1161 05d6 CDBF out __SP_L__,r28
1162 /* prologue end (size=25) */
1163 05d8 4C01 movw r8,r24
1164 05da 1B01 movw r2,r22
1165 05dc 2A01 movw r4,r20
1166 05de 3901 movw r6,r18
1167 .LM138:
1168 05e0 0E94 0000 call ow_reset
1169 .LM139:
1170 05e4 B401 movw r22,r8
1171 05e6 8EEB ldi r24,lo8(-66)
1172 05e8 0E94 0000 call ow_command
1173 05ec EE24 clr r14
1174 05ee FF24 clr r15
1175 05f0 18E0 ldi r17,lo8(8)
1176 05f2 B12E mov r11,r17
1177 .L109:
1178 .LM140:
1179 05f4 6E01 movw r12,r28
1180 05f6 0894 sec
1181 05f8 C11C adc r12,__zero_reg__
1182 05fa D11C adc r13,__zero_reg__
1183 05fc 8701 movw r16,r14
1184 05fe 0C0D add r16,r12
1185 0600 1D1D adc r17,r13
1186 0602 0E94 0000 call ow_byte_rd
1187 0606 F801 movw r30,r16
1188 0608 8083 st Z,r24
1189 060a BA94 dec r11
1190 060c 0894 sec
1191 060e E11C adc r14,__zero_reg__
1192 0610 F11C adc r15,__zero_reg__
1193 0612 B7FE sbrs r11,7
1194 0614 EFCF rjmp .L109
1195 .LM141:
1196 0616 69E0 ldi r22,lo8(9)
1197 0618 70E0 ldi r23,hi8(9)
1198 061a C601 movw r24,r12
1199 061c 0E94 0000 call crc8
1200 0620 8823 tst r24
1201 0622 19F0 breq .L110
1202 .LM142:
1203 0624 83E0 ldi r24,lo8(3)
1204 0626 90E0 ldi r25,hi8(3)
1205 0628 0AC0 rjmp .L105
1206 .L110:
1207 .LM143:
1208 062a 8301 movw r16,r6
1209 062c 9201 movw r18,r4
1210 062e A101 movw r20,r2
1211 0630 B601 movw r22,r12
1212 0632 F401 movw r30,r8
1213 0634 8081 ld r24,Z
1214 0636 0E94 0000 call DS18X20_meas_to_cel
1215 .LM144:
1216 063a 80E0 ldi r24,lo8(0)
1217 063c 90E0 ldi r25,hi8(0)
1218 .L105:
1219 /* epilogue: frame size=9 */
1220 063e 2996 adiw r28,9
1221 0640 0FB6 in __tmp_reg__,__SREG__
1222 0642 F894 cli
1223 0644 DEBF out __SP_H__,r29
1224 0646 0FBE out __SREG__,__tmp_reg__
1225 0648 CDBF out __SP_L__,r28
1226 064a DF91 pop r29
1227 064c CF91 pop r28
1228 064e 1F91 pop r17
1229 0650 0F91 pop r16
1230 0652 FF90 pop r15
1231 0654 EF90 pop r14
1232 0656 DF90 pop r13
1233 0658 CF90 pop r12
1234 065a BF90 pop r11
1235 065c 9F90 pop r9
1236 065e 8F90 pop r8
1237 0660 7F90 pop r7
1238 0662 6F90 pop r6
1239 0664 5F90 pop r5
1240 0666 4F90 pop r4
1241 0668 3F90 pop r3
1242 066a 2F90 pop r2
1243 066c 0895 ret
1244 /* epilogue end (size=24) */
1245 /* function DS18X20_read_meas size 100 (51) */
1246 .LFE15:
1248 .global DS18X20_read_meas_single
1250 DS18X20_read_meas_single:
1251 .LFB16:
1252 .LM145:
1253 /* prologue: frame size=9 */
1254 066e 4F92 push r4
1255 0670 5F92 push r5
1256 0672 6F92 push r6
1257 0674 7F92 push r7
1258 0676 8F92 push r8
1259 0678 9F92 push r9
1260 067a AF92 push r10
1261 067c BF92 push r11
1262 067e CF92 push r12
1263 0680 DF92 push r13
1264 0682 EF92 push r14
1265 0684 FF92 push r15
1266 0686 0F93 push r16
1267 0688 1F93 push r17
1268 068a CF93 push r28
1269 068c DF93 push r29
1270 068e CDB7 in r28,__SP_L__
1271 0690 DEB7 in r29,__SP_H__
1272 0692 2997 sbiw r28,9
1273 0694 0FB6 in __tmp_reg__,__SREG__
1274 0696 F894 cli
1275 0698 DEBF out __SP_H__,r29
1276 069a 0FBE out __SREG__,__tmp_reg__
1277 069c CDBF out __SP_L__,r28
1278 /* prologue end (size=24) */
1279 069e A82E mov r10,r24
1280 06a0 2B01 movw r4,r22
1281 06a2 3A01 movw r6,r20
1282 06a4 4901 movw r8,r18
1283 .LM146:
1284 06a6 60E0 ldi r22,lo8(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -