?? ad.lst
字號:
304 00a6 911D adc r25,__zero_reg__
72:AD.c **** result_array[i]=temp;//AD轉換結果
306 .LM30:
307 00a8 E02F mov r30,r16
308 00aa FF27 clr r31
309 00ac EE0F add r30,r30
310 00ae FF1F adc r31,r31
311 00b0 7E01 movw r14,r28
312 00b2 0894 sec
313 00b4 E11C adc r14,__zero_reg__
314 00b6 F11C adc r15,__zero_reg__
315 00b8 EE0D add r30,r14
316 00ba FF1D adc r31,r15
317 00bc 8083 st Z,r24
318 00be 9183 std Z+1,r25
73:AD.c **** ADCSRA=ADCSRA &(~(1<<ADEN));
320 .LM31:
321 00c0 3798 cbi 38-0x20,7
74:AD.c **** delay_us(100);
323 .LM32:
324 00c2 84E6 ldi r24,lo8(100)
325 00c4 90E0 ldi r25,hi8(100)
326 00c6 0E94 0000 call delay_us
328 .LM33:
329 00ca 0F5F subi r16,lo8(-(1))
330 00cc 0A30 cpi r16,lo8(10)
331 00ce F8F2 brlo .L34
332 00d0 40E0 ldi r20,lo8(0)
75:AD.c **** }
76:AD.c **** index1=0;//最大數對應序號
77:AD.c **** index2=0;//最小數對應序號
334 .LM34:
335 00d2 542F mov r21,r20
78:AD.c **** for(i=0;i<10;i++)
337 .LM35:
338 00d4 042F mov r16,r20
339 00d6 D701 movw r26,r14
340 .L41:
79:AD.c **** {
80:AD.c **** if(result_array[i]>result_array[index1])
342 .LM36:
343 00d8 E42F mov r30,r20
344 00da FF27 clr r31
345 00dc EE0F add r30,r30
346 00de FF1F adc r31,r31
347 00e0 EE0D add r30,r14
348 00e2 FF1D adc r31,r15
349 00e4 2D91 ld r18,X+
350 00e6 3D91 ld r19,X+
351 00e8 8081 ld r24,Z
352 00ea 9181 ldd r25,Z+1
353 00ec 8217 cp r24,r18
354 00ee 9307 cpc r25,r19
355 00f0 08F4 brsh .L39
81:AD.c **** {
82:AD.c **** index1=i;
357 .LM37:
358 00f2 402F mov r20,r16
359 .L39:
83:AD.c **** }
84:AD.c ****
85:AD.c **** if(result_array[i]<result_array[index2])
361 .LM38:
362 00f4 E52F mov r30,r21
363 00f6 FF27 clr r31
364 00f8 EE0F add r30,r30
365 00fa FF1F adc r31,r31
366 00fc EE0D add r30,r14
367 00fe FF1D adc r31,r15
368 0100 8081 ld r24,Z
369 0102 9181 ldd r25,Z+1
370 0104 2817 cp r18,r24
371 0106 3907 cpc r19,r25
372 0108 08F4 brsh .L37
86:AD.c **** {
87:AD.c **** index2=i;
374 .LM39:
375 010a 502F mov r21,r16
377 .LM40:
378 .L37:
379 010c 0F5F subi r16,lo8(-(1))
380 010e 0A30 cpi r16,lo8(10)
381 0110 18F3 brlo .L41
88:AD.c **** }
89:AD.c **** }
90:AD.c **** sum=0;
383 .LM41:
384 0112 20E0 ldi r18,lo8(0)
385 0114 30E0 ldi r19,hi8(0)
91:AD.c **** for(i=0;i<10;i++)
387 .LM42:
388 0116 00E0 ldi r16,lo8(0)
389 0118 F701 movw r30,r14
390 .L48:
92:AD.c **** {
93:AD.c **** if((i==index1)||(i==index2))
392 .LM43:
393 011a 0417 cp r16,r20
394 011c 31F0 breq .L44
395 011e 0517 cp r16,r21
396 0120 21F0 breq .L44
94:AD.c **** continue;
95:AD.c **** sum=sum+result_array[i];
398 .LM44:
399 0122 8081 ld r24,Z
400 0124 9181 ldd r25,Z+1
401 0126 280F add r18,r24
402 0128 391F adc r19,r25
404 .LM45:
405 .L44:
406 012a 0F5F subi r16,lo8(-(1))
407 012c 3296 adiw r30,2
408 012e 0A30 cpi r16,lo8(10)
409 0130 A0F3 brlo .L48
96:AD.c **** }
97:AD.c **** if(index1==index2)
411 .LM46:
412 0132 4517 cp r20,r21
413 0134 C1F4 brne .L49
98:AD.c **** ad0_average=sum/9;
415 .LM47:
416 0136 C901 movw r24,r18
417 0138 69E0 ldi r22,lo8(9)
418 013a 70E0 ldi r23,hi8(9)
419 013c 0E94 0000 call __udivmodhi4
420 0140 8B01 movw r16,r22
421 0142 CB01 movw r24,r22
422 0144 AA27 clr r26
423 0146 97FD sbrc r25,7
424 0148 A095 com r26
425 014a BA2F mov r27,r26
426 014c BC01 movw r22,r24
427 014e CD01 movw r24,r26
428 0150 0E94 0000 call __floatsisf
429 0154 17FF sbrs r17,7
430 0156 15C0 rjmp .L51
431 0158 20E0 ldi r18,lo8(0x47800000)
432 015a 30E0 ldi r19,hi8(0x47800000)
433 015c 40E8 ldi r20,hlo8(0x47800000)
434 015e 57E4 ldi r21,hhi8(0x47800000)
435 0160 0E94 0000 call __addsf3
436 0164 0EC0 rjmp .L51
437 .L49:
99:AD.c **** else
100:AD.c **** ad0_average=sum/8;
439 .LM48:
440 0166 83E0 ldi r24,3
441 0168 3695 1: lsr r19
442 016a 2795 ror r18
443 016c 8A95 dec r24
444 016e E1F7 brne 1b
445 0170 C901 movw r24,r18
446 0172 AA27 clr r26
447 0174 97FD sbrc r25,7
448 0176 A095 com r26
449 0178 BA2F mov r27,r26
450 017a BC01 movw r22,r24
451 017c CD01 movw r24,r26
452 017e 0E94 0000 call __floatsisf
453 .L51:
101:AD.c **** ad0_result=ad0_average;
455 .LM49:
456 0182 0E94 0000 call __fixunssfsi
457 0186 DC01 movw r26,r24
458 0188 CB01 movw r24,r22
459 018a 9093 0000 sts (ad0_result)+1,r25
460 018e 8093 0000 sts ad0_result,r24
102:AD.c **** }
462 .LM50:
463 .LBE4:
464 /* epilogue: frame size=20 */
465 0192 6496 adiw r28,20
466 0194 0FB6 in __tmp_reg__,__SREG__
467 0196 F894 cli
468 0198 DEBF out __SP_H__,r29
469 019a 0FBE out __SREG__,__tmp_reg__
470 019c CDBF out __SP_L__,r28
471 019e DF91 pop r29
472 01a0 CF91 pop r28
473 01a2 1F91 pop r17
474 01a4 0F91 pop r16
475 01a6 FF90 pop r15
476 01a8 EF90 pop r14
477 01aa 0895 ret
478 /* epilogue end (size=13) */
479 /* function AD0_RESULT_FILTER size 159 (132) */
491 .Lscope4:
494 .global main
496 main:
103:AD.c **** //主程序
104:AD.c **** int main(void)
105:AD.c **** { for(;;)
498 .LM51:
499 /* prologue: frame size=0 */
500 01ac C0E0 ldi r28,lo8(__stack - 0)
501 01ae D0E0 ldi r29,hi8(__stack - 0)
502 01b0 DEBF out __SP_H__,r29
503 01b2 CDBF out __SP_L__,r28
504 /* prologue end (size=4) */
505 .L60:
106:AD.c **** {AD0_RESULT_FILTER();//讀壓力傳感器并濾波,碼值存入全局變量ad0_result
507 .LM52:
508 01b4 0E94 0000 call AD0_RESULT_FILTER
510 .LM53:
511 01b8 FDCF rjmp .L60
107:AD.c **** }
108:AD.c **** }...
513 .LM54:
514 /* epilogue: frame size=0 */
515 /* epilogue: noreturn */
516 /* epilogue end (size=0) */
517 /* function main size 7 (3) */
519 .Lscope5:
521 .comm ad0_result,2,1
523 .text
525 Letext:
526 /* File "AD.c": code 222 = 0x00de ( 172), prologues 26, epilogues 24 */
DEFINED SYMBOLS
*ABS*:00000000 AD.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
C:\DOCUME~1\HUANGJ~1\LOCALS~1\Temp/cc6Taaaa.s:92 .text:00000000 delay_us
C:\DOCUME~1\HUANGJ~1\LOCALS~1\Temp/cc6Taaaa.s:121 .text:0000000a delay_ms
C:\DOCUME~1\HUANGJ~1\LOCALS~1\Temp/cc6Taaaa.s:173 .text:00000038 delay_s
C:\DOCUME~1\HUANGJ~1\LOCALS~1\Temp/cc6Taaaa.s:224 .text:00000066 AD0_SETTING_AND_START
C:\DOCUME~1\HUANGJ~1\LOCALS~1\Temp/cc6Taaaa.s:248 .text:0000006e AD0_RESULT_FILTER
*COM*:00000002 ad0_result
C:\DOCUME~1\HUANGJ~1\LOCALS~1\Temp/cc6Taaaa.s:496 .text:000001ac main
C:\DOCUME~1\HUANGJ~1\LOCALS~1\Temp/cc6Taaaa.s:525 .text:000001ba Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__udivmodhi4
__floatsisf
__addsf3
__fixunssfsi
__stack
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -