📄 main.lst
字号:
1 .file "main.c"
2 .arch atmega16
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.46:
22 0000 0D53 6361 .string "\rScanning Bus for DS18X20\r"
22 6E6E 696E
22 6720 4275
22 7320 666F
22 7220 4453
25 c.47:
26 001b 4E6F 2053 .string "No Sensor found\r"
26 656E 736F
26 7220 666F
26 756E 640D
26 00
29 c.48:
30 002c 4275 7320 .string "Bus Error\r"
30 4572 726F
30 720D 00
31 .text
32 .global search_sensors
34 search_sensors:
35 .LFB11:
36 .LM1:
37 /* prologue: frame size=9 */
38 0000 1F93 push r17
39 0002 CF93 push r28
40 0004 DF93 push r29
41 0006 CDB7 in r28,__SP_L__
42 0008 DEB7 in r29,__SP_H__
43 000a 2997 sbiw r28,9
44 000c 0FB6 in __tmp_reg__,__SREG__
45 000e F894 cli
46 0010 DEBF out __SP_H__,r29
47 0012 0FBE out __SREG__,__tmp_reg__
48 0014 CDBF out __SP_L__,r28
49 /* prologue end (size=11) */
50 .LM2:
51 0016 80E0 ldi r24,lo8(c.46)
52 0018 90E0 ldi r25,hi8(c.46)
53 001a 0E94 0000 call uart_puts_p
54 .LM3:
55 001e 10E0 ldi r17,lo8(0)
56 .LM4:
57 0020 8FEF ldi r24,lo8(-1)
58 0022 8987 std Y+9,r24
59 .L10:
60 .LM5:
61 0024 BE01 movw r22,r28
62 0026 6F5F subi r22,lo8(-(1))
63 0028 7F4F sbci r23,hi8(-(1))
64 002a CE01 movw r24,r28
65 002c 0996 adiw r24,9
66 002e 0E94 0000 call DS18X20_find_sensor
67 .LM6:
68 0032 2985 ldd r18,Y+9
69 0034 2F3F cpi r18,lo8(-1)
70 0036 19F4 brne .L4
71 .LM7:
72 0038 80E0 ldi r24,lo8(c.47)
73 003a 90E0 ldi r25,hi8(c.47)
74 003c 04C0 rjmp .L14
75 .L4:
76 .LM8:
77 003e 2E3F cpi r18,lo8(-2)
78 0040 29F4 brne .L5
79 .LM9:
80 0042 80E0 ldi r24,lo8(c.48)
81 0044 90E0 ldi r25,hi8(c.48)
82 .L14:
83 0046 0E94 0000 call uart_puts_p
84 .LM10:
85 004a 16C0 rjmp .L3
86 .L5:
87 004c E12F mov r30,r17
88 004e FF27 clr r31
89 0050 83E0 ldi r24,3
90 0052 EE0F 1: lsl r30
91 0054 FF1F rol r31
92 0056 8A95 dec r24
93 0058 E1F7 brne 1b
94 005a E050 subi r30,lo8(-(gSensorIDs))
95 005c F040 sbci r31,hi8(-(gSensorIDs))
96 005e DE01 movw r26,r28
97 0060 1196 adiw r26,1
98 0062 97E0 ldi r25,lo8(7)
99 .L9:
100 .LM11:
101 0064 8D91 ld r24,X+
102 0066 8193 st Z+,r24
103 .LM12:
104 0068 9150 subi r25,lo8(-(-1))
105 006a 97FF sbrs r25,7
106 006c FBCF rjmp .L9
107 .LM13:
108 006e 1F5F subi r17,lo8(-(1))
109 .LM14:
110 0070 2223 tst r18
111 0072 11F0 breq .L3
112 0074 1530 cpi r17,lo8(5)
113 0076 B0F2 brlo .L10
114 .L3:
115 .LM15:
116 0078 812F mov r24,r17
117 007a 9927 clr r25
118 /* epilogue: frame size=9 */
119 007c 2996 adiw r28,9
120 007e 0FB6 in __tmp_reg__,__SREG__
121 0080 F894 cli
122 0082 DEBF out __SP_H__,r29
123 0084 0FBE out __SREG__,__tmp_reg__
124 0086 CDBF out __SP_L__,r28
125 0088 DF91 pop r29
126 008a CF91 pop r28
127 008c 1F91 pop r17
128 008e 0895 ret
129 /* epilogue end (size=10) */
130 /* function search_sensors size 72 (51) */
131 .LFE11:
133 .section .progmem.data
136 c.41:
137 0037 2E00 .string "."
140 c.42:
141 0039 3000 .string "0"
144 c.43:
145 003b B043 205B .string "\260C ["
145 00
148 c.44:
149 0040 2E00 .string "."
152 c.45:
153 0042 B043 5D00 .string "\260C]"
154 .text
155 .global uart_put_temp
157 uart_put_temp:
158 .LFB12:
159 .LM16:
160 /* prologue: frame size=17 */
161 0090 DF92 push r13
162 0092 EF92 push r14
163 0094 FF92 push r15
164 0096 0F93 push r16
165 0098 1F93 push r17
166 009a CF93 push r28
167 009c DF93 push r29
168 009e CDB7 in r28,__SP_L__
169 00a0 DEB7 in r29,__SP_H__
170 00a2 6197 sbiw r28,17
171 00a4 0FB6 in __tmp_reg__,__SREG__
172 00a6 F894 cli
173 00a8 DEBF out __SP_H__,r29
174 00aa 0FBE out __SREG__,__tmp_reg__
175 00ac CDBF out __SP_L__,r28
176 /* prologue end (size=15) */
177 00ae F82E mov r15,r24
178 00b0 D62E mov r13,r22
179 00b2 E42E mov r14,r20
180 .LM17:
181 00b4 8823 tst r24
182 00b6 11F0 breq .L16
183 .LM18:
184 00b8 8DE2 ldi r24,lo8(45)
185 00ba 01C0 rjmp .L17
186 .L16:
187 00bc 8BE2 ldi r24,lo8(43)
188 .L17:
189 00be 0E94 0000 call uart_putc
190 .LM19:
191 00c2 8D2D mov r24,r13
192 00c4 9927 clr r25
193 00c6 0E94 0000 call uart_puti
194 .LM20:
195 00ca 80E0 ldi r24,lo8(c.41)
196 00cc 90E0 ldi r25,hi8(c.41)
197 00ce 0E94 0000 call uart_puts_p
198 .LM21:
199 00d2 2E2D mov r18,r14
200 00d4 3327 clr r19
201 00d6 4AE0 ldi r20,lo8(10)
202 00d8 50E0 ldi r21,hi8(10)
203 00da BE01 movw r22,r28
204 00dc 6F5F subi r22,lo8(-(1))
205 00de 7F4F sbci r23,hi8(-(1))
206 00e0 81E7 ldi r24,lo8(625)
207 00e2 92E0 ldi r25,hi8(625)
208 00e4 289F mul r18,r24
209 00e6 F001 movw r30,r0
210 00e8 299F mul r18,r25
211 00ea F00D add r31,r0
212 00ec 389F mul r19,r24
213 00ee F00D add r31,r0
214 00f0 1124 clr r1
215 00f2 CF01 movw r24,r30
216 00f4 0E94 0000 call itoa
217 .LM22:
218 00f8 DE01 movw r26,r28
219 00fa 1196 adiw r26,1
220 00fc FD01 movw r30,r26
221 00fe 0190 ld __tmp_reg__,Z+
222 0100 0020 tst __tmp_reg__
223 0102 E9F7 brne .-6
224 0104 3197 sbiw r30,1
225 0106 EA1B sub r30,r26
226 0108 FB0B sbc r31,r27
227 010a 14E0 ldi r17,lo8(4)
228 010c 1E1B sub r17,r30
229 .LM23:
230 010e 00E0 ldi r16,lo8(0)
231 .L26:
232 0110 0117 cp r16,r17
233 0112 30F4 brsh .L25
234 0114 80E0 ldi r24,lo8(c.42)
235 0116 90E0 ldi r25,hi8(c.42)
236 0118 0E94 0000 call uart_puts_p
237 011c 0F5F subi r16,lo8(-(1))
238 011e F8CF rjmp .L26
239 .L25:
240 .LM24:
241 0120 CE01 movw r24,r28
242 0122 0196 adiw r24,1
243 0124 0E94 0000 call uart_puts
244 .LM25:
245 0128 80E0 ldi r24,lo8(c.43)
246 012a 90E0 ldi r25,hi8(c.43)
247 012c 0E94 0000 call uart_puts_p
248 .LM26:
249 0130 FF20 tst r15
250 0132 11F0 breq .L22
251 0134 8DE2 ldi r24,lo8(45)
252 0136 01C0 rjmp .L23
253 .L22:
254 0138 8BE2 ldi r24,lo8(43)
255 .L23:
256 013a 0E94 0000 call uart_putc
257 .LM27:
258 013e 4E2D mov r20,r14
259 0140 6D2D mov r22,r13
260 0142 8F2D mov r24,r15
261 0144 0E94 0000 call DS18X20_temp_to_decicel
262 0148 8C01 movw r16,r24
263 .LM28:
264 014a 6AE0 ldi r22,lo8(10)
265 014c 70E0 ldi r23,hi8(10)
266 014e 0E94 0000 call __udivmodhi4
267 0152 CB01 movw r24,r22
268 0154 0E94 0000 call uart_puti
269 .LM29:
270 0158 80E0 ldi r24,lo8(c.44)
271 015a 90E0 ldi r25,hi8(c.44)
272 015c 0E94 0000 call uart_puts_p
273 .LM30:
274 0160 C801 movw r24,r16
275 0162 6AE0 ldi r22,lo8(10)
276 0164 70E0 ldi r23,hi8(10)
277 0166 0E94 0000 call __udivmodhi4
278 016a 805D subi r24,lo8(-(48))
279 016c 0E94 0000 call uart_putc
280 .LM31:
281 0170 80E0 ldi r24,lo8(c.45)
282 0172 90E0 ldi r25,hi8(c.45)
283 0174 0E94 0000 call uart_puts_p
284 /* epilogue: frame size=17 */
285 0178 6196 adiw r28,17
286 017a 0FB6 in __tmp_reg__,__SREG__
287 017c F894 cli
288 017e DEBF out __SP_H__,r29
289 0180 0FBE out __SREG__,__tmp_reg__
290 0182 CDBF out __SP_L__,r28
291 0184 DF91 pop r29
292 0186 CF91 pop r28
293 0188 1F91 pop r17
294 018a 0F91 pop r16
295 018c FF90 pop r15
296 018e EF90 pop r14
297 0190 DF90 pop r13
298 0192 0895 ret
299 /* epilogue end (size=14) */
300 /* function uart_put_temp size 130 (101) */
301 .LFE12:
303 .section .progmem.data
306 c.0:
307 0046 0D44 5331 .string "\rDS18X20 1-Wire-Reader Demo by Martin Thomas\r"
307 3858 3230
307 2031 2D57
307 6972 652D
307 5265 6164
310 c.1:
311 0074 2D2D 2D2D .string "-------------------------------------------"
311 2D2D 2D2D
311 2D2D 2D2D
311 2D2D 2D2D
311 2D2D 2D2D
314 c.2:
315 00a0 2044 5331 .string " DS18X20 Sensor(s) available:\r"
315 3858 3230
315 2053 656E
315 736F 7228
315 7329 2061
318 c.3:
319 00bf 2320 696E .string "# in Bus :"
319 2042 7573
319 203A 00
322 c.4:
323 00ca 203A 2000 .string " : "
326 c.5:
327 00ce 0D00 .string "\r"
330 c.6:
331 00d0 5365 6E73 .string "Sensor# "
331 6F72 2320
331 00
334 c.7:
335 00d9 2069 7320 .string " is a "
335 6120 00
338 c.8:
339 00e0 4453 3138 .string "DS18S20/DS1820"
339 5332 302F
339 4453 3138
339 3230 00
342 c.9:
343 00ef 4453 3138 .string "DS18B20"
343 4232 3000
346 c.10:
347 00f7 2077 6869 .string " which is "
347 6368 2069
347 7320 00
350 c.11:
351 0102 7061 7261 .string "parasite"
351 7369 7465
351 00
354 c.12:
355 010b 6578 7465 .string "externally"
355 726E 616C
355 6C79 00
358 c.13:
359 0116 2070 6F77 .string " powered\r"
359 6572 6564
359 0D00
362 c.29:
363 0120 0D44 5331 .string "\rDS18x20 EEPROM support test for fist sensor\r"
363 3878 3230
363 2045 4550
363 524F 4D20
363 7375 7070
366 c.30:
367 014e 5448 2F54 .string "TH/TL from EEPROM sensor 1 : "
367 4C20 6672
367 6F6D 2045
367 4550 524F
367 4D20 7365
370 c.31:
371 016c 202F 2000 .string " / "
374 c.32:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -