📄 main.lst
字号:
1 .file "main.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.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 .LFB6:
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 .LFE6:
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 .LFB7:
159 .LM16:
160 /* prologue: frame size=17 */
161 0090 EF92 push r14
162 0092 FF92 push r15
163 0094 0F93 push r16
164 0096 1F93 push r17
165 0098 CF93 push r28
166 009a DF93 push r29
167 009c CDB7 in r28,__SP_L__
168 009e DEB7 in r29,__SP_H__
169 00a0 6197 sbiw r28,17
170 00a2 0FB6 in __tmp_reg__,__SREG__
171 00a4 F894 cli
172 00a6 DEBF out __SP_H__,r29
173 00a8 0FBE out __SREG__,__tmp_reg__
174 00aa CDBF out __SP_L__,r28
175 /* prologue end (size=14) */
176 00ac 182F mov r17,r24
177 00ae E62E mov r14,r22
178 00b0 F42E mov r15,r20
179 .LM17:
180 00b2 8823 tst r24
181 00b4 11F0 breq .L16
182 .LM18:
183 00b6 8DE2 ldi r24,lo8(45)
184 00b8 01C0 rjmp .L17
185 .L16:
186 00ba 8BE2 ldi r24,lo8(43)
187 .L17:
188 00bc 0E94 0000 call uart_putc
189 .LM19:
190 00c0 8E2D mov r24,r14
191 00c2 9927 clr r25
192 00c4 0E94 0000 call uart_puti
193 .LM20:
194 00c8 80E0 ldi r24,lo8(c.41)
195 00ca 90E0 ldi r25,hi8(c.41)
196 00cc 0E94 0000 call uart_puts_p
197 .LM21:
198 00d0 2F2D mov r18,r15
199 00d2 3327 clr r19
200 00d4 4AE0 ldi r20,lo8(10)
201 00d6 50E0 ldi r21,hi8(10)
202 00d8 BE01 movw r22,r28
203 00da 6F5F subi r22,lo8(-(1))
204 00dc 7F4F sbci r23,hi8(-(1))
205 00de 81E7 ldi r24,lo8(625)
206 00e0 92E0 ldi r25,hi8(625)
207 00e2 289F mul r18,r24
208 00e4 F001 movw r30,r0
209 00e6 299F mul r18,r25
210 00e8 F00D add r31,r0
211 00ea 389F mul r19,r24
212 00ec F00D add r31,r0
213 00ee 1124 clr r1
214 00f0 CF01 movw r24,r30
215 00f2 0E94 0000 call itoa
216 .LM22:
217 00f6 DE01 movw r26,r28
218 00f8 1196 adiw r26,1
219 00fa FD01 movw r30,r26
220 00fc 0190 ld __tmp_reg__,Z+
221 00fe 0020 tst __tmp_reg__
222 0100 E9F7 brne .-6
223 0102 3197 sbiw r30,1
224 0104 EA1B sub r30,r26
225 0106 FB0B sbc r31,r27
226 0108 84E0 ldi r24,lo8(4)
227 010a 8E1B sub r24,r30
228 .LM23:
229 010c 39F0 breq .L25
230 010e 082F mov r16,r24
231 .L21:
232 0110 80E0 ldi r24,lo8(c.42)
233 0112 90E0 ldi r25,hi8(c.42)
234 0114 0E94 0000 call uart_puts_p
235 0118 0150 subi r16,lo8(-(-1))
236 011a D1F7 brne .L21
237 .L25:
238 .LM24:
239 011c CE01 movw r24,r28
240 011e 0196 adiw r24,1
241 0120 0E94 0000 call uart_puts
242 .LM25:
243 0124 80E0 ldi r24,lo8(c.43)
244 0126 90E0 ldi r25,hi8(c.43)
245 0128 0E94 0000 call uart_puts_p
246 .LM26:
247 012c 1123 tst r17
248 012e 11F0 breq .L22
249 0130 8DE2 ldi r24,lo8(45)
250 0132 01C0 rjmp .L23
251 .L22:
252 0134 8BE2 ldi r24,lo8(43)
253 .L23:
254 0136 0E94 0000 call uart_putc
255 .LM27:
256 013a 4F2D mov r20,r15
257 013c 6E2D mov r22,r14
258 013e 812F mov r24,r17
259 0140 0E94 0000 call DS18X20_temp_to_decicel
260 0144 8C01 movw r16,r24
261 .LM28:
262 0146 6AE0 ldi r22,lo8(10)
263 0148 70E0 ldi r23,hi8(10)
264 014a 0E94 0000 call __udivmodhi4
265 014e CB01 movw r24,r22
266 0150 0E94 0000 call uart_puti
267 .LM29:
268 0154 80E0 ldi r24,lo8(c.44)
269 0156 90E0 ldi r25,hi8(c.44)
270 0158 0E94 0000 call uart_puts_p
271 .LM30:
272 015c C801 movw r24,r16
273 015e 6AE0 ldi r22,lo8(10)
274 0160 70E0 ldi r23,hi8(10)
275 0162 0E94 0000 call __udivmodhi4
276 0166 805D subi r24,lo8(-(48))
277 0168 0E94 0000 call uart_putc
278 .LM31:
279 016c 80E0 ldi r24,lo8(c.45)
280 016e 90E0 ldi r25,hi8(c.45)
281 0170 0E94 0000 call uart_puts_p
282 /* epilogue: frame size=17 */
283 0174 6196 adiw r28,17
284 0176 0FB6 in __tmp_reg__,__SREG__
285 0178 F894 cli
286 017a DEBF out __SP_H__,r29
287 017c 0FBE out __SREG__,__tmp_reg__
288 017e CDBF out __SP_L__,r28
289 0180 DF91 pop r29
290 0182 CF91 pop r28
291 0184 1F91 pop r17
292 0186 0F91 pop r16
293 0188 FF90 pop r15
294 018a EF90 pop r14
295 018c 0895 ret
296 /* epilogue end (size=13) */
297 /* function uart_put_temp size 129 (102) */
298 .LFE7:
300 .section .progmem.data
303 c.0:
304 0046 0D44 5331 .string "\rDS18X20 1-Wire-Reader Demo by Martin Thomas\r"
304 3858 3230
304 2031 2D57
304 6972 652D
304 5265 6164
307 c.1:
308 0074 2D2D 2D2D .string "-------------------------------------------"
308 2D2D 2D2D
308 2D2D 2D2D
308 2D2D 2D2D
308 2D2D 2D2D
311 c.2:
312 00a0 2044 5331 .string " DS18X20 Sensor(s) available:\r"
312 3858 3230
312 2053 656E
312 736F 7228
312 7329 2061
315 c.3:
316 00bf 2320 696E .string "# in Bus :"
316 2042 7573
316 203A 00
319 c.4:
320 00ca 203A 2000 .string " : "
323 c.5:
324 00ce 0D00 .string "\r"
327 c.6:
328 00d0 5365 6E73 .string "Sensor# "
328 6F72 2320
328 00
331 c.7:
332 00d9 2069 7320 .string " is a "
332 6120 00
335 c.8:
336 00e0 4453 3138 .string "DS18S20/DS1820"
336 5332 302F
336 4453 3138
336 3230 00
339 c.9:
340 00ef 4453 3138 .string "DS18B20"
340 4232 3000
343 c.10:
344 00f7 2077 6869 .string " which is "
344 6368 2069
344 7320 00
347 c.11:
348 0102 7061 7261 .string "parasite"
348 7369 7465
348 00
351 c.12:
352 010b 6578 7465 .string "externally"
352 726E 616C
352 6C79 00
355 c.13:
356 0116 2070 6F77 .string " powered\r"
356 6572 6564
356 0D00
359 c.29:
360 0120 0D44 5331 .string "\rDS18x20 EEPROM support test for fist sensor\r"
360 3878 3230
360 2045 4550
360 524F 4D20
360 7375 7070
363 c.30:
364 014e 5448 2F54 .string "TH/TL from EEPROM sensor 1 : "
364 4C20 6672
364 6F6D 2045
364 4550 524F
364 4D20 7365
367 c.31:
368 016c 202F 2000 .string " / "
371 c.32:
372 0170 0D00 .string "\r"
375 c.33:
376 0172 5448 2B31 .string "TH+1 and TL+1 written to scratchpad\r"
376 2061 6E64
376 2054 4C2B
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -