📄 ds18x20.lst
字号:
1 .file "ds18x20.c"
2 .arch atmega32
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
17 .Ltext0:
18 .section .progmem.data,"a",@progbits
21 c.30:
22 0000 2E00 .string "."
25 c.31:
26 0002 3000 .string "0"
29 c.32:
30 0004 B043 00 .string "\260C"
31 .text
32 .global DS18X20_uart_put_temp
34 DS18X20_uart_put_temp:
35 .LFB5:
36 .LM1:
37 /* prologue: frame size=17 */
38 0000 EF92 push r14
39 0002 FF92 push r15
40 0004 0F93 push r16
41 0006 1F93 push r17
42 0008 CF93 push r28
43 000a DF93 push r29
44 000c CDB7 in r28,__SP_L__
45 000e DEB7 in r29,__SP_H__
46 0010 6197 sbiw r28,17
47 0012 0FB6 in __tmp_reg__,__SREG__
48 0014 F894 cli
49 0016 DEBF out __SP_H__,r29
50 0018 0FBE out __SREG__,__tmp_reg__
51 001a CDBF out __SP_L__,r28
52 /* prologue end (size=14) */
53 001c 162F mov r17,r22
54 001e 042F mov r16,r20
55 .LM2:
56 0020 8823 tst r24
57 0022 11F0 breq .L2
58 .LM3:
59 0024 8DE2 ldi r24,lo8(45)
60 0026 01C0 rjmp .L3
61 .L2:
62 0028 8BE2 ldi r24,lo8(43)
63 .L3:
64 002a 0E94 0000 call uart_putc
65 .LM4:
66 002e 812F mov r24,r17
67 0030 9927 clr r25
68 0032 0E94 0000 call uart_puti
69 .LM5:
70 0036 80E0 ldi r24,lo8(c.30)
71 0038 90E0 ldi r25,hi8(c.30)
72 003a 0E94 0000 call uart_puts_p
73 .LM6:
74 003e 202F mov r18,r16
75 0040 3327 clr r19
76 0042 4AE0 ldi r20,lo8(10)
77 0044 50E0 ldi r21,hi8(10)
78 0046 BE01 movw r22,r28
79 0048 6F5F subi r22,lo8(-(1))
80 004a 7F4F sbci r23,hi8(-(1))
81 004c 81E7 ldi r24,lo8(625)
82 004e 92E0 ldi r25,hi8(625)
83 0050 289F mul r18,r24
84 0052 F001 movw r30,r0
85 0054 299F mul r18,r25
86 0056 F00D add r31,r0
87 0058 389F mul r19,r24
88 005a F00D add r31,r0
89 005c 1124 clr r1
90 005e CF01 movw r24,r30
91 0060 0E94 0000 call itoa
92 .LM7:
93 0064 8E01 movw r16,r28
94 0066 0F5F subi r16,lo8(-(1))
95 0068 1F4F sbci r17,hi8(-(1))
96 006a F801 movw r30,r16
97 006c 0190 ld __tmp_reg__,Z+
98 006e 0020 tst __tmp_reg__
99 0070 E9F7 brne .-6
100 0072 3597 sbiw r30,5
101 0074 EE24 clr r14
102 0076 FF24 clr r15
103 0078 E017 cp r30,r16
104 007a F107 cpc r31,r17
105 007c A9F0 breq .L9
106 .L7:
107 007e 80E0 ldi r24,lo8(c.31)
108 0080 90E0 ldi r25,hi8(c.31)
109 0082 0E94 0000 call uart_puts_p
110 0086 0894 sec
111 0088 E11C adc r14,__zero_reg__
112 008a F11C adc r15,__zero_reg__
113 008c F801 movw r30,r16
114 008e 0190 ld __tmp_reg__,Z+
115 0090 0020 tst __tmp_reg__
116 0092 E9F7 brne .-6
117 0094 3197 sbiw r30,1
118 0096 E01B sub r30,r16
119 0098 F10B sbc r31,r17
120 009a 84E0 ldi r24,lo8(4)
121 009c 90E0 ldi r25,hi8(4)
122 009e 8E1B sub r24,r30
123 00a0 9F0B sbc r25,r31
124 00a2 E816 cp r14,r24
125 00a4 F906 cpc r15,r25
126 00a6 58F3 brlo .L7
127 .L9:
128 .LM8:
129 00a8 CE01 movw r24,r28
130 00aa 0196 adiw r24,1
131 00ac 0E94 0000 call uart_puts
132 .LM9:
133 00b0 80E0 ldi r24,lo8(c.32)
134 00b2 90E0 ldi r25,hi8(c.32)
135 00b4 0E94 0000 call uart_puts_p
136 /* epilogue: frame size=17 */
137 00b8 6196 adiw r28,17
138 00ba 0FB6 in __tmp_reg__,__SREG__
139 00bc F894 cli
140 00be DEBF out __SP_H__,r29
141 00c0 0FBE out __SREG__,__tmp_reg__
142 00c2 CDBF out __SP_L__,r28
143 00c4 DF91 pop r29
144 00c6 CF91 pop r28
145 00c8 1F91 pop r17
146 00ca 0F91 pop r16
147 00cc FF90 pop r15
148 00ce EF90 pop r14
149 00d0 0895 ret
150 /* epilogue end (size=13) */
151 /* function DS18X20_uart_put_temp size 105 (78) */
152 .LFE5:
154 .section .progmem.data
157 c.21:
158 0007 4643 3A00 .string "FC:"
161 c.22:
162 000b 4352 433A .string "CRC:"
162 00
165 c.23:
166 0010 534E 3A20 .string "SN: "
166 00
169 c.24:
170 0015 2000 .string " "
173 c.25:
174 0017 2831 3853 .string "(18S)"
174 2900
177 c.26:
178 001d 2831 3842 .string "(18B)"
178 2900
181 c.27:
182 0023 2820 3F20 .string "( ? )"
182 2900
185 c.28:
186 0029 2043 5243 .string " CRC FAIL "
186 2046 4149
186 4C20 00
189 c.29:
190 0034 2043 5243 .string " CRC O.K. "
190 204F 2E4B
190 2E20 00
191 .text
192 .global DS18X20_show_id_uart
194 DS18X20_show_id_uart:
195 .LFB6:
196 .LM10:
197 /* prologue: frame size=0 */
198 00d2 CF92 push r12
199 00d4 DF92 push r13
200 00d6 EF92 push r14
201 00d8 FF92 push r15
202 00da 0F93 push r16
203 00dc 1F93 push r17
204 00de CF93 push r28
205 00e0 DF93 push r29
206 /* prologue end (size=8) */
207 00e2 6C01 movw r12,r24
208 00e4 7B01 movw r14,r22
209 .LM11:
210 00e6 C0E0 ldi r28,lo8(0)
211 00e8 D0E0 ldi r29,hi8(0)
212 00ea C617 cp r28,r22
213 00ec D707 cpc r29,r23
214 00ee B0F5 brsh .L27
215 00f0 8C01 movw r16,r24
216 .L23:
217 .LM12:
218 00f2 2097 sbiw r28,0
219 00f4 19F4 brne .L14
220 00f6 80E0 ldi r24,lo8(c.21)
221 00f8 90E0 ldi r25,hi8(c.21)
222 00fa 07C0 rjmp .L28
223 .L14:
224 .LM13:
225 00fc C701 movw r24,r14
226 00fe 0197 sbiw r24,1
227 0100 C817 cp r28,r24
228 0102 D907 cpc r29,r25
229 0104 21F4 brne .L15
230 0106 80E0 ldi r24,lo8(c.22)
231 0108 90E0 ldi r25,hi8(c.22)
232 .L28:
233 010a 0E94 0000 call uart_puts_p
234 .L15:
235 .LM14:
236 010e C130 cpi r28,1
237 0110 D105 cpc r29,__zero_reg__
238 0112 21F4 brne .L17
239 0114 80E0 ldi r24,lo8(c.23)
240 0116 90E0 ldi r25,hi8(c.23)
241 0118 0E94 0000 call uart_puts_p
242 .L17:
243 .LM15:
244 011c F801 movw r30,r16
245 011e 8081 ld r24,Z
246 0120 0E94 0000 call uart_puthex_byte
247 .LM16:
248 0124 80E0 ldi r24,lo8(c.24)
249 0126 90E0 ldi r25,hi8(c.24)
250 0128 0E94 0000 call uart_puts_p
251 .LM17:
252 012c 2097 sbiw r28,0
253 012e 81F4 brne .L13
254 .LM18:
255 0130 F601 movw r30,r12
256 0132 8081 ld r24,Z
257 0134 8031 cpi r24,lo8(16)
258 0136 19F4 brne .L19
259 0138 80E0 ldi r24,lo8(c.25)
260 013a 90E0 ldi r25,hi8(c.25)
261 013c 07C0 rjmp .L29
262 .L19:
263 .LM19:
264 013e 8832 cpi r24,lo8(40)
265 0140 19F4 brne .L21
266 0142 80E0 ldi r24,lo8(c.26)
267 0144 90E0 ldi r25,hi8(c.26)
268 0146 02C0 rjmp .L29
269 .L21:
270 .LM20:
271 0148 80E0 ldi r24,lo8(c.27)
272 014a 90E0 ldi r25,hi8(c.27)
273 .L29:
274 014c 0E94 0000 call uart_puts_p
275 .L13:
276 .LM21:
277 0150 2196 adiw r28,1
278 0152 0F5F subi r16,lo8(-(1))
279 0154 1F4F sbci r17,hi8(-(1))
280 0156 CE15 cp r28,r14
281 0158 DF05 cpc r29,r15
282 015a 58F2 brlo .L23
283 .L27:
284 .LM22:
285 015c 68E0 ldi r22,lo8(8)
286 015e 70E0 ldi r23,hi8(8)
287 0160 C601 movw r24,r12
288 0162 0E94 0000 call crc8
289 0166 8823 tst r24
290 0168 19F0 breq .L24
291 .LM23:
292 016a 80E0 ldi r24,lo8(c.28)
293 016c 90E0 ldi r25,hi8(c.28)
294 016e 02C0 rjmp .L30
295 .L24:
296 .LM24:
297 0170 80E0 ldi r24,lo8(c.29)
298 0172 90E0 ldi r25,hi8(c.29)
299 .L30:
300 0174 0E94 0000 call uart_puts_p
301 /* epilogue: frame size=0 */
302 0178 DF91 pop r29
303 017a CF91 pop r28
304 017c 1F91 pop r17
305 017e 0F91 pop r16
306 0180 FF90 pop r15
307 0182 EF90 pop r14
308 0184 DF90 pop r13
309 0186 CF90 pop r12
310 0188 0895 ret
311 /* epilogue end (size=9) */
312 /* function DS18X20_show_id_uart size 92 (75) */
313 .LFE6:
315 .section .progmem.data
318 c.18:
319 003f 5350 3A00 .string "SP:"
322 c.19:
323 0043 4352 433A .string "CRC:"
323 00
326 c.20:
327 0048 2000 .string " "
328 .text
329 .global show_sp_uart
331 show_sp_uart:
332 .LFB7:
333 .LM25:
334 /* prologue: frame size=0 */
335 018a EF92 push r14
336 018c FF92 push r15
337 018e 0F93 push r16
338 0190 1F93 push r17
339 0192 CF93 push r28
340 0194 DF93 push r29
341 /* prologue end (size=6) */
342 0196 7C01 movw r14,r24
343 0198 EB01 movw r28,r22
344 .LM26:
345 019a 80E0 ldi r24,lo8(c.18)
346 019c 90E0 ldi r25,hi8(c.18)
347 019e 0E94 0000 call uart_puts_p
348 .LM27:
349 01a2 00E0 ldi r16,lo8(0)
350 01a4 10E0 ldi r17,hi8(0)
351 01a6 0C17 cp r16,r28
352 01a8 1D07 cpc r17,r29
353 01aa B8F4 brsh .L38
354 .L36:
355 .LM28:
356 01ac CE01 movw r24,r28
357 01ae 0197 sbiw r24,1
358 01b0 0817 cp r16,r24
359 01b2 1907 cpc r17,r25
360 01b4 21F4 brne .L35
361 01b6 80E0 ldi r24,lo8(c.19)
362 01b8 90E0 ldi r25,hi8(c.19)
363 01ba 0E94 0000 call uart_puts_p
364 .L35:
365 .LM29:
366 01be F701 movw r30,r14
367 01c0 8191 ld r24,Z+
368 01c2 7F01 movw r14,r30
369 01c4 0E94 0000 call uart_puthex_byte
370 .LM30:
371 01c8 80E0 ldi r24,lo8(c.20)
372 01ca 90E0 ldi r25,hi8(c.20)
373 01cc 0E94 0000 call uart_puts_p
374 .LM31:
375 01d0 0F5F subi r16,lo8(-(1))
376 01d2 1F4F sbci r17,hi8(-(1))
377 01d4 0C17 cp r16,r28
378 01d6 1D07 cpc r17,r29
379 01d8 48F3 brlo .L36
380 .L38:
381 /* epilogue: frame size=0 */
382 01da DF91 pop r29
383 01dc CF91 pop r28
384 01de 1F91 pop r17
385 01e0 0F91 pop r16
386 01e2 FF90 pop r15
387 01e4 EF90 pop r14
388 01e6 0895 ret
389 /* epilogue end (size=7) */
390 /* function show_sp_uart size 47 (34) */
391 .LFE7:
393 .global DS18X20_meas_to_cel
395 DS18X20_meas_to_cel:
396 .LFB9:
397 .LM32:
398 /* prologue: frame size=0 */
399 01e8 0F93 push r16
400 01ea 1F93 push r17
401 01ec CF93 push r28
402 /* prologue end (size=3) */
403 01ee C82F mov r28,r24
404 01f0 FB01 movw r30,r22
405 01f2 DA01 movw r26,r20
406 01f4 A901 movw r20,r18
407 .LM33:
408 01f6 8081 ld r24,Z
409 01f8 282F mov r18,r24
410 01fa 3327 clr r19
411 .LM34:
412 01fc 8181 ldd r24,Z+1
413 01fe 9927 clr r25
414 0200 982F mov r25,r24
415 0202 8827 clr r24
416 0204 282B or r18,r24
417 0206 392B or r19,r25
418 .LM35:
419 0208 C031 cpi r28,lo8(16)
420 020a 59F4 brne .L40
421 .LM36:
422 020c 2E7F andi r18,lo8(-2)
423 .LM37:
424 020e 63E0 ldi r22,3
425 0210 220F 1: lsl r18
426 0212 331F rol r19
427 0214 6A95 dec r22
428 0216 E1F7 brne 1b
429 .LM38:
430 0218 8681 ldd r24,Z+6
431 021a 281B sub r18,r24
432 021c 3109 sbc r19,__zero_reg__
433 021e 245F subi r18,lo8(-(12))
434 0220 3F4F sbci r19,hi8(-(12))
435 .L40:
436 .LM39:
437 0222 37FF sbrs r19,7
438 0224 06C0 rjmp .L41
439 .LM40:
440 0226 81E0 ldi r24,lo8(1)
441 0228 8C93 st X,r24
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -