?? main.lst
字號(hào):
613 03a0 DF91 pop r29
614 03a2 CF91 pop r28
615 03a4 FF91 pop r31
616 03a6 EF91 pop r30
617 03a8 BF91 pop r27
618 03aa AF91 pop r26
619 03ac 9F91 pop r25
620 03ae 8F91 pop r24
621 03b0 7F91 pop r23
622 03b2 6F91 pop r22
623 03b4 5F91 pop r21
624 03b6 4F91 pop r20
625 03b8 3F91 pop r19
626 03ba 2F91 pop r18
627 03bc 0F90 pop __tmp_reg__
628 03be 0FBE out __SREG__,__tmp_reg__
629 03c0 0F90 pop __tmp_reg__
630 03c2 1F90 pop __zero_reg__
631 03c4 1895 reti
632 /* epilogue end (size=23) */
633 /* function __vector_8 size 343 (296) */
641 .Lscope1:
644 .global main
646 main:
187:main.c ****
188:main.c **** //主程序//////////////////////////////
189:main.c **** int main()
190:main.c **** {
648 .LM60:
649 /* prologue: frame size=1 */
650 03c6 C0E0 ldi r28,lo8(__stack - 1)
651 03c8 D0E0 ldi r29,hi8(__stack - 1)
652 03ca DEBF out __SP_H__,r29
653 03cc CDBF out __SP_L__,r28
654 /* prologue end (size=4) */
191:main.c **** //變量定義
192:main.c **** uint8_t i;
193:main.c **** //初始化和串口波特率設(shè)置
194:main.c **** INITIATION();
656 .LM61:
657 .LBB4:
658 03ce 0E94 0000 call INITIATION
195:main.c **** //PG3供測(cè)試用/////////////
196:main.c **** sbi(DDRG,3);
660 .LM62:
661 03d2 8091 6400 lds r24,100
662 03d6 8860 ori r24,lo8(8)
663 03d8 8093 6400 sts 100,r24
197:main.c **** cbi(PORTG,3);
665 .LM63:
666 03dc 8091 6500 lds r24,101
667 03e0 877F andi r24,lo8(-9)
668 03e2 8093 6500 sts 101,r24
198:main.c **** //開中斷
199:main.c **** sei();
670 .LM64:
671 /* #APP */
672 03e6 7894 sei
200:main.c **** //自動(dòng)測(cè)試標(biāo)志初始化
201:main.c **** global_sample_mode_flag=0xFF;
674 .LM65:
675 /* #NOAPP */
676 03e8 8FEF ldi r24,lo8(-1)
677 03ea 8093 0000 sts global_sample_mode_flag,r24
202:main.c **** //采集控制標(biāo)志初始化
203:main.c **** global_start_sample_flag=0xFF;
679 .LM66:
680 03ee 8FEF ldi r24,lo8(-1)
681 03f0 8093 0000 sts global_start_sample_flag,r24
204:main.c **** //串口接收控制變量初始化
205:main.c **** global_flag_serie=0;
683 .LM67:
684 03f4 1092 0000 sts global_flag_serie,__zero_reg__
206:main.c **** //開串口接收中斷
207:main.c **** UART_RXCINT_OPEN();
686 .LM68:
687 03f8 0E94 0000 call UART_RXCINT_OPEN
208:main.c **** //延時(shí)
209:main.c **** for(i=0;i<0xFF;i++)
689 .LM69:
690 03fc 1982 std Y+1,__zero_reg__
691 .L42:
692 03fe 8981 ldd r24,Y+1
693 0400 8F3F cpi r24,lo8(-1)
694 0402 09F4 brne .L45
695 0404 14C0 rjmp .L51
696 .L45:
210:main.c **** {
211:main.c **** TIMER_BEGIN();
698 .LM70:
699 0406 0E94 0000 call TIMER_BEGIN
212:main.c **** //等待定時(shí)器溢出,AD結(jié)束中斷處理在等待過(guò)程中完成
213:main.c **** while(!(TIFR&(1<<OCF1A))){;}
701 .LM71:
702 .L46:
703 040a 8091 5600 lds r24,86
704 040e 9927 clr r25
705 0410 8071 andi r24,lo8(16)
706 0412 9070 andi r25,hi8(16)
707 0414 0097 sbiw r24,0
708 0416 C9F3 breq .L46
214:main.c **** TIFR|=1<<OCF1A;
710 .LM72:
711 0418 8091 5600 lds r24,86
712 041c 8061 ori r24,lo8(16)
713 041e 8093 5600 sts 86,r24
215:main.c **** //終止定時(shí)器
216:main.c **** TIMER_STOP();
715 .LM73:
716 0422 0E94 0000 call TIMER_STOP
718 .LM74:
719 0426 8981 ldd r24,Y+1
720 0428 8F5F subi r24,lo8(-(1))
721 042a 8983 std Y+1,r24
722 042c E8CF rjmp .L42
723 .L51:
217:main.c **** }
218:main.c **** //數(shù)據(jù)采集流程
219:main.c **** while(1)
220:main.c **** {
221:main.c **** //檢測(cè)動(dòng)作開始標(biāo)志清零
222:main.c **** for(i=0;i<4;i++){global_detect_close[i]=0;}
725 .LM75:
726 042e 1982 std Y+1,__zero_reg__
727 .L52:
728 0430 8981 ldd r24,Y+1
729 0432 8430 cpi r24,lo8(4)
730 0434 08F0 brlo .L55
731 0436 0FC0 rjmp .L53
732 .L55:
733 0438 8981 ldd r24,Y+1
734 043a 282F mov r18,r24
735 043c 3327 clr r19
736 043e C901 movw r24,r18
737 0440 820F add r24,r18
738 0442 931F adc r25,r19
739 0444 FC01 movw r30,r24
740 0446 E050 subi r30,lo8(-(global_detect_close))
741 0448 F040 sbci r31,hi8(-(global_detect_close))
742 044a 1082 st Z,__zero_reg__
743 044c 1182 std Z+1,__zero_reg__
744 044e 8981 ldd r24,Y+1
745 0450 8F5F subi r24,lo8(-(1))
746 0452 8983 std Y+1,r24
747 0454 EDCF rjmp .L52
748 .L53:
223:main.c **** for(i=0;i<4;i++){global_detect_trip[i]=0;}
750 .LM76:
751 0456 1982 std Y+1,__zero_reg__
752 .L56:
753 0458 8981 ldd r24,Y+1
754 045a 8430 cpi r24,lo8(4)
755 045c 08F0 brlo .L59
756 045e 0FC0 rjmp .L57
757 .L59:
758 0460 8981 ldd r24,Y+1
759 0462 282F mov r18,r24
760 0464 3327 clr r19
761 0466 C901 movw r24,r18
762 0468 820F add r24,r18
763 046a 931F adc r25,r19
764 046c FC01 movw r30,r24
765 046e E050 subi r30,lo8(-(global_detect_trip))
766 0470 F040 sbci r31,hi8(-(global_detect_trip))
767 0472 1082 st Z,__zero_reg__
768 0474 1182 std Z+1,__zero_reg__
769 0476 8981 ldd r24,Y+1
770 0478 8F5F subi r24,lo8(-(1))
771 047a 8983 std Y+1,r24
772 047c EDCF rjmp .L56
773 .L57:
224:main.c **** //如果自動(dòng)測(cè)試
225:main.c **** if(global_sample_mode_flag==0x00)
775 .LM77:
776 047e 8091 0000 lds r24,global_sample_mode_flag
777 0482 8823 tst r24
778 0484 E1F4 brne .L60
226:main.c **** {
227:main.c **** //關(guān)串口接收中斷
228:main.c **** UART_RXCINT_CLOSE();
780 .LM78:
781 0486 0E94 0000 call UART_RXCINT_CLOSE
229:main.c **** //開外部中斷7(AD轉(zhuǎn)換結(jié)束中斷)
230:main.c **** EXTERN_INTERRUPT_OPEN(7);
783 .LM79:
784 048a 87E0 ldi r24,lo8(7)
785 048c 0E94 0000 call EXTERN_INTERRUPT_OPEN
231:main.c **** //檢測(cè)采樣
232:main.c **** OPERATION_DETECTION();
787 .LM80:
788 0490 0E94 0000 call OPERATION_DETECTION
233:main.c **** //如果檢測(cè)到有信號(hào)變化,向COUNTER發(fā)送開始采集命令
234:main.c **** sbi(UCSR0B,TXB8);//將TXB8置1
790 .LM81:
791 0494 8091 2A00 lds r24,42
792 0498 8160 ori r24,lo8(1)
793 049a 8093 2A00 sts 42,r24
235:main.c **** UART_DATA_BYTE_SEND(0x10);//發(fā)送數(shù)據(jù)采集命令
795 .LM82:
796 049e 80E1 ldi r24,lo8(16)
797 04a0 0E94 0000 call UART_DATA_BYTE_SEND
236:main.c **** //開始采樣
237:main.c **** SAMPLE();
799 .LM83:
800 04a4 0E94 0000 call SAMPLE
238:main.c **** //關(guān)外部中斷7
239:main.c **** EXTERN_INTERRUPT_CLOSE(7);
802 .LM84:
803 04a8 87E0 ldi r24,lo8(7)
804 04aa 0E94 0000 call EXTERN_INTERRUPT_CLOSE
240:main.c **** //開串口接收中斷,等待數(shù)據(jù)包傳輸命令
241:main.c **** UART_RXCINT_OPEN();
806 .LM85:
807 04ae 0E94 0000 call UART_RXCINT_OPEN
242:main.c **** //向主機(jī)發(fā)送采集結(jié)束命令0x33
243:main.c **** UART_DATA_BYTE_SEND(0x33);
809 .LM86:
810 04b2 83E3 ldi r24,lo8(51)
811 04b4 0E94 0000 call UART_DATA_BYTE_SEND
244:main.c **** //自動(dòng)測(cè)試標(biāo)志復(fù)原
245:main.c **** global_sample_mode_flag=0xFF;
813 .LM87:
814 04b8 8FEF ldi r24,lo8(-1)
815 04ba 8093 0000 sts global_sample_mode_flag,r24
816 .L60:
246:main.c **** }
247:main.c **** //如果接收到開始采集命令
248:main.c **** if(global_start_sample_flag==0x00)
818 .LM88:
819 04be 8091 0000 lds r24,global_start_sample_flag
820 04c2 8823 tst r24
821 04c4 09F0 breq .+2
822 04c6 B3CF rjmp .L51
249:main.c **** {
250:main.c **** //關(guān)串口接收中斷
251:main.c **** UART_RXCINT_CLOSE();
824 .LM89:
825 04c8 0E94 0000 call UART_RXCINT_CLOSE
252:main.c **** //開外部中斷7(AD轉(zhuǎn)換結(jié)束中斷)
253:main.c **** EXTERN_INTERRUPT_OPEN(7);
827 .LM90:
828 04cc 87E0 ldi r24,lo8(7)
829 04ce 0E94 0000 call EXTERN_INTERRUPT_OPEN
254:main.c **** //采樣
255:main.c **** SAMPLE();
831 .LM91:
832 04d2 0E94 0000 call SAMPLE
256:main.c **** //關(guān)外部中斷7
257:main.c **** EXTERN_INTERRUPT_CLOSE(7);
834 .LM92:
835 04d6 87E0 ldi r24,lo8(7)
836 04d8 0E94 0000 call EXTERN_INTERRUPT_CLOSE
258:main.c **** //開串口接收中斷,等待數(shù)據(jù)包傳輸命令
259:main.c **** UART_RXCINT_OPEN();
838 .LM93:
839 04dc 0E94 0000 call UART_RXCINT_OPEN
260:main.c **** //開始采集標(biāo)志復(fù)原
261:main.c **** global_start_sample_flag=0xFF;
841 .LM94:
842 04e0 8FEF ldi r24,lo8(-1)
843 04e2 8093 0000 sts global_start_sample_flag,r24
844 04e6 A3CF rjmp .L51
262:main.c **** }
263:main.c **** }
264:main.c ****
265:main.c **** for(;;){;}
266:main.c **** return 0;
267:main.c **** }
846 .LM95:
847 .LBE4:
848 /* epilogue: frame size=1 */
849 /* epilogue: noreturn */
850 /* epilogue end (size=0) */
851 /* function main size 146 (142) */
856 .Lscope2:
858 .comm global_flag_serie,1,1
859 .comm global_ad_counter,2,1
860 .comm global_start_sample_flag,1,1
861 .comm global_sample_mode_flag,1,1
862 .comm global_operation_detected_flag,1,1
863 .comm global_detect_close,10,1
864 .comm global_detect_trip,10,1
865 .comm global_channel_flag,1,1
866 .comm global_close_counter,2,1
867 .comm global_trip_counter,2,1
868 .comm global_motor_counter,2,1
869 .comm global_voltage_counter,2,1
870 .comm global_ad_finish_flag,1,1
884 .text
886 Letext:
887 /* File "main.c": code 634 = 0x027a ( 536), prologues 52, epilogues 46 */
DEFINED SYMBOLS
*ABS*:00000000 main.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
C:\DOCUME~1\lu\LOCALS~1\Temp/cc0iaaaa.s:76 .text:00000000 __vector_18
*COM*:00000001 global_flag_serie
*COM*:00000001 global_start_sample_flag
*COM*:00000001 global_sample_mode_flag
C:\DOCUME~1\lu\LOCALS~1\Temp/cc0iaaaa.s:280 .text:0000011e __vector_8
*COM*:00000001 global_channel_flag
*COM*:00000002 global_close_counter
*COM*:00000002 global_trip_counter
*COM*:00000002 global_voltage_counter
*COM*:00000002 global_ad_counter
*COM*:0000000a global_detect_close
*COM*:0000000a global_detect_trip
*COM*:00000001 global_operation_detected_flag
*COM*:00000001 global_ad_finish_flag
C:\DOCUME~1\lu\LOCALS~1\Temp/cc0iaaaa.s:646 .text:000003c6 main
*COM*:00000002 global_motor_counter
C:\DOCUME~1\lu\LOCALS~1\Temp/cc0iaaaa.s:886 .text:000004e8 Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
SEND_ONE_PACKAGE
AD7891_READ
SRAM_1M_8_WRITE
__stack
INITIATION
UART_RXCINT_OPEN
TIMER_BEGIN
TIMER_STOP
UART_RXCINT_CLOSE
EXTERN_INTERRUPT_OPEN
OPERATION_DETECTION
UART_DATA_BYTE_SEND
SAMPLE
EXTERN_INTERRUPT_CLOSE
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -