📄 logger.lst
字号:
137:apps/logger.c **** //now output data:
138:apps/logger.c **** if (type == LOGGER_MIN)
186 n 68,0,138,.LM6-.LFBB1
187 .LM6:
188 0058 E130 cpi r30,lo8(1)
189 005a 01F4 brne .L6
190 005c 632F mov r22,r19
191 005e 00C0 rjmp .L7
192 .L6:
139:apps/logger.c **** output data:
140:apps/logger.c **** if (type == LOGGER_MIN)
193 68,0,140,.LM7-.LFBB1
194 .LM7:
195 0060 E230 cpi r30,lo8(2)
196 0062 01F4 brne .L8
197 0064 642F mov r22,r20
198 0066 00C0 rjmp .L7
199 .L8:
141:apps/logger.c **** output data:
142:apps/logger.c **** if (type == LOGGER_MIN)
143:apps/logger.c **** val = min;
200 68,0,143,.LM8-.LFBB1
201 .LM8:
202 0068 6091 0000 lds r22,logger_data
203 .L7:
144:apps/logger.c **** if (type == LOGGER_MIN)
145:apps/logger.c **** val = min;
204 abn 68,0,145,.LM9-.LFBB1
205 .LM9:
206 006c 162F mov r17,r22
207 006e 1054 subi r17,lo8(-(-64))
146:apps/logger.c **** if (type == LOGGER_MIN)
208 abn 68,0,146,.LM10-.LFBB1
209 .LM10:
210 0070 17FD sbrc r17,7
211 0072 00C0 rjmp .L9
147:apps/logger.c **** output data:
148:apps/logger.c **** if (type == LOGGER_MIN)
212 abn 68,0,148,.LM11-.LFBB1
213 .LM11:
214 0074 612F mov r22,r17
215 0076 6595 asr r22
216 0078 CE01 movw r24,r28
217 007a 0E94 0000 call string_uint8_to_buffer
149:apps/logger.c **** output data:
150:apps/logger.c **** if (type == LOGGER_MIN)
151:apps/logger.c **** val = min;
218 n 68,0,151,.LM12-.LFBB1
219 .LM12:
220 007e 80E2 ldi r24,lo8(32)
221 0080 00C0 rjmp .L17
222 .L9:
152:apps/logger.c **** if (type == LOGGER_MIN)
153:apps/logger.c **** val = min;
154:apps/logger.c **** else if (type == LOGGER_MAX)
155:apps/logger.c **** val = max;
223 bn 68,0,155,.LM13-.LFBB1
224 .LM13:
225 0082 612F mov r22,r17
226 0084 7727 clr r23
227 0086 67FD sbrc r22,7
228 0088 7095 com r23
229 008a 7095 com r23
230 008c 6195 neg r22
231 008e 7F4F sbci r23,lo8(-1)
232 0090 7595 asr r23
233 0092 6795 ror r22
234 0094 CE01 movw r24,r28
235 0096 0E94 0000 call string_uint8_to_buffer
156:apps/logger.c **** f (type == LOGGER_MAX)
157:apps/logger.c **** val = max;
158:apps/logger.c **** else
236 158,.LM14-.LFBB1
237 .LM14:
238 009a 8DE2 ldi r24,lo8(45)
239 .L17:
240 009c 8883 st Y,r24
159:apps/logger.c **** == LOGGER_MAX)
160:apps/logger.c **** val = max;
161:apps/logger.c **** else
162:apps/logger.c **** val = logger_data; //eeprom_read_byte(&logger_temp_today[(clock[CLOCK_HOUR]*60+clock[CLOCK_MIN])/
241 bn 68,0,162,.LM15-.LFBB1
242 .LM15:
243 009e 8EE2 ldi r24,lo8(46)
244 00a0 8B83 std Y+3,r24
163:apps/logger.c **** K_HOUR]*60+clock[CLOCK_MIN])/6]);
245 abn 68,0,163,.LM16-.LFBB1
246 .LM16:
247 00a2 10FD sbrc r17,0
248 00a4 00C0 rjmp .L11
164:apps/logger.c **** K_HOUR]*60+clock[CLOCK_MIN])/6]);
249 abn 68,0,164,.LM17-.LFBB1
250 .LM17:
251 00a6 80E3 ldi r24,lo8(48)
252 00a8 00C0 rjmp .L18
253 .L11:
165:apps/logger.c **** K_HOUR]*60+clock[CLOCK_MIN])/6]);
166:apps/logger.c ****
254 bn 68,0,166,.LM18-.LFBB1
255 .LM18:
256 00aa 85E3 ldi r24,lo8(53)
257 .L18:
258 00ac 8C83 std Y+4,r24
259 /* epilogue start */
167:apps/logger.c **** HOUR]*60+clock[CLOCK_MIN])/6]);
168:apps/logger.c ****
169:apps/logger.c **** signed char t = val-(32<<1);
170:apps/logger.c **** if (t>=0){
171:apps/logger.c **** //copy string to buf:
172:apps/logger.c **** string_uint8_to_buffer(&buffer[bufpos], t>>1);
173:apps/logger.c ****
174:apps/logger.c **** //overwrite left '0' with sign:
175:apps/logger.c **** buffer[bufpos] = ' ';
176:apps/logger.c ****
177:apps/logger.c **** bufpos+=3;
260 n 68,0,177,.LM19-.LFBB1
261 .LM19:
262 00ae DF91 pop r29
263 00b0 CF91 pop r28
264 00b2 1F91 pop r17
265 00b4 0895 ret
277 .Lscope1:
279 .global logger_do
281 logger_do:
283 .LM20:
284 .LFBB2:
285 00b6 DF93 push r29
286 00b8 CF93 push r28
287 00ba 0F92 push __tmp_reg__
288 00bc CDB7 in r28,__SP_L__
289 00be DEB7 in r29,__SP_H__
290 /* prologue: function */
291 /* frame size = 1 */
293 .LM21:
294 00c0 8091 0000 lds r24,logger_count
295 00c4 8150 subi r24,lo8(-(-1))
296 00c6 8093 0000 sts logger_count,r24
298 .LM22:
299 00ca 8823 tst r24
300 00cc 01F0 breq .+2
301 00ce 00C0 rjmp .L24
303 .LM23:
304 00d0 1982 std Y+1,__zero_reg__
306 .LM24:
307 00d2 87E0 ldi r24,lo8(7)
308 00d4 8093 0000 sts logger_count,r24
310 .LM25:
311 00d8 CE01 movw r24,r28
312 00da 0196 adiw r24,1
313 00dc 0E94 0000 call lm75_nonblocking_temp_read
314 00e0 8130 cpi r24,lo8(1)
315 00e2 01F4 brne .L24
316 .LBB11:
318 .LM26:
319 00e4 8091 0000 lds r24,clock
320 00e8 2CE3 ldi r18,lo8(60)
321 00ea 829F mul r24,r18
322 00ec C001 movw r24,r0
323 00ee 1124 clr r1
324 00f0 2091 0000 lds r18,clock+1
325 00f4 820F add r24,r18
326 00f6 911D adc r25,__zero_reg__
327 00f8 66E0 ldi r22,lo8(6)
328 00fa 70E0 ldi r23,hi8(6)
329 00fc 0E94 0000 call __divmodhi4
330 0100 9B01 movw r18,r22
332 .LM27:
333 0102 85E0 ldi r24,hi8(1389)
334 0104 6D36 cpi r22,lo8(1389)
335 0106 7807 cpc r23,r24
336 0108 00F4 brsh .L21
338 .LM28:
339 010a 8091 0000 lds r24,logger_lastsave
340 010e 9091 0000 lds r25,(logger_lastsave)+1
341 0112 6817 cp r22,r24
342 0114 7907 cpc r23,r25
343 0116 01F0 breq .L22
345 .LM29:
346 0118 7093 0000 sts (logger_lastsave)+1,r23
347 011c 6093 0000 sts logger_lastsave,r22
349 .LM30:
350 0120 8981 ldd r24,Y+1
351 .L23:
352 .LBB12:
353 .LBB13:
355 .Ltext3:
209:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** (
210:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** "/* START EEPROM READ CRITICAL SECTION */ \n\t"
211:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** "sbi %1, %2 \n\t"
212:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** "in %0, %3 \n\t"
213:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** "/* END EEPROM READ CRITICAL SECTION */ \n\t"
214:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** : "=r" (__result)
215:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** : "i" (_SFR_IO_ADDR(EECR)),
216:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** "i" (EERE),
217:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** "i" (_SFR_IO_ADDR(EEDR))
218:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** );
219:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** return __result;
220:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** }
221:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
222:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
223:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** Read one 16-bit word (little endian) from EEPROM address \a __p.
224:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** */
225:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** __ATTR_PURE__ static __inline__ uint16_t eeprom_read_word (const uint16_t *__p)
226:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** {
227:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** #if (! (defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__)) )
228:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** return __eerd_word (__p, eeprom_read_byte);
229:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** #else
230:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** /* If ATmega256x device, do not call function. */
231:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** union
232:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** {
233:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** uint16_t word;
234:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** struct
235:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** {
236:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** uint8_t lo;
237:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** uint8_t hi;
238:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** } byte;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -