📄 icc_gmj.lst
字号:
(0284) juli=juli-P_speed*time1_jsq;
05FD 90400113 LDS R4,juli+2
05FF 90500114 LDS R5,juli+3
0601 90200111 LDS R2,juli
0603 90300112 LDS R3,juli+1
0605 925A ST R5,-Y
0606 924A ST R4,-Y
0607 923A ST R3,-Y
0608 922A ST R2,-Y
0609 90400117 LDS R4,P_speed+2
060B 90500118 LDS R5,P_speed+3
060D 90200115 LDS R2,P_speed
060F 90300116 LDS R3,P_speed+1
0611 925A ST R5,-Y
0612 924A ST R4,-Y
0613 923A ST R3,-Y
0614 922A ST R2,-Y
0615 EE04 LDI R16,0xE4
0616 E010 LDI R17,0
0617 940E0FDB CALL lpm32
0619 933A ST R19,-Y
061A 932A ST R18,-Y
061B 931A ST R17,-Y
061C 930A ST R16,-Y
061D 0185 MOVW R16,R10
061E 9516 LSR R17
061F 9507 ROR R16
0620 940E10AE CALL int2fp
0622 933A ST R19,-Y
0623 932A ST R18,-Y
0624 931A ST R17,-Y
0625 930A ST R16,-Y
0626 940E1237 CALL empy32fs
0628 0185 MOVW R16,R10
0629 7001 ANDI R16,1
062A 7010 ANDI R17,0
062B 940E10AE CALL int2fp
062D 933A ST R19,-Y
062E 932A ST R18,-Y
062F 931A ST R17,-Y
0630 930A ST R16,-Y
0631 940E1108 CALL add32fs
0633 940E1237 CALL empy32fs
0635 940E1113 CALL sub32f
0637 93100112 STS juli+1,R17
0639 93000111 STS juli,R16
063B 93300114 STS juli+3,R19
063D 93200113 STS juli+2,R18
063F 9624 ADIW R28,4
0640 940E0FB0 CALL pop_gset5
0642 9009 LD R0,Y+
0643 BE0F OUT 0x3F,R0
0644 91F9 LD R31,Y+
0645 91E9 LD R30,Y+
0646 9199 LD R25,Y+
0647 9189 LD R24,Y+
0648 9139 LD R19,Y+
0649 9129 LD R18,Y+
064A 9119 LD R17,Y+
064B 9109 LD R16,Y+
064C 9099 LD R9,Y+
064D 9089 LD R8,Y+
064E 9079 LD R7,Y+
064F 9069 LD R6,Y+
0650 9059 LD R5,Y+
0651 9049 LD R4,Y+
0652 9039 LD R3,Y+
0653 9029 LD R2,Y+
0654 9019 LD R1,Y+
0655 9009 LD R0,Y+
0656 9518 RETI
(0285) }
(0286)
(0287) //TIMER2 initialize - prescale:128
(0288) // WGM: Normal
(0289) // desired value: 500Hz
(0290) // actual value: 500.000Hz (0.0%)
(0291) void timer2_init(void)
(0292) {
(0293) TCCR2 = 0x00; //stop
_timer2_init:
0657 2422 CLR R2
0658 BC25 OUT 0x25,R2
(0294) ASSR = 0x00; //set async mode
0659 BC22 OUT 0x22,R2
(0295) TCNT2 = 0x06; //setup
065A E086 LDI R24,6
065B BD84 OUT 0x24,R24
(0296) OCR2 = 0xFA;
065C EF8A LDI R24,0xFA
065D BD83 OUT 0x23,R24
(0297) TCCR2 = 0x05; //start
065E E085 LDI R24,5
065F BD85 OUT 0x25,R24
0660 9508 RET
_timer2_ovf_isr:
adc0 --> R10
0661 940E0FEF CALL push_lset
0663 940E0FB7 CALL push_gset3
(0298) }
(0299)
(0300) #pragma interrupt_handler timer2_ovf_isr:5
(0301) void timer2_ovf_isr(void)
(0302) {
(0303) unsigned int adc0;
(0304) TCNT2 = 0x06; //reload counter value
0665 E086 LDI R24,6
0666 BD84 OUT 0x24,R24
(0305) adc0=read_adc(); //取测速发电机的电压值
0667 DD24 RCALL _read_adc
0668 0158 MOVW R10,R16
(0306) P_speed=adc0*dw_speed; //求皮带速度
0669 EE04 LDI R16,0xE4
066A E010 LDI R17,0
066B 940E0FDB CALL lpm32
066D 933A ST R19,-Y
066E 932A ST R18,-Y
066F 931A ST R17,-Y
0670 930A ST R16,-Y
0671 0185 MOVW R16,R10
0672 9516 LSR R17
0673 9507 ROR R16
0674 940E10AE CALL int2fp
0676 933A ST R19,-Y
0677 932A ST R18,-Y
0678 931A ST R17,-Y
0679 930A ST R16,-Y
067A 940E1237 CALL empy32fs
067C 0185 MOVW R16,R10
067D 7001 ANDI R16,1
067E 7010 ANDI R17,0
067F 940E10AE CALL int2fp
0681 933A ST R19,-Y
0682 932A ST R18,-Y
0683 931A ST R17,-Y
0684 930A ST R16,-Y
0685 940E1108 CALL add32fs
0687 90400076 LDS R4,dw_speed+2
0689 90500077 LDS R5,dw_speed+3
068B 90200074 LDS R2,dw_speed
068D 90300075 LDS R3,dw_speed+1
068F 925A ST R5,-Y
0690 924A ST R4,-Y
0691 923A ST R3,-Y
0692 922A ST R2,-Y
0693 940E123A CALL empy32f
0695 93100116 STS P_speed+1,R17
0697 93000115 STS P_speed,R16
0699 93300118 STS P_speed+3,R19
069B 93200117 STS P_speed+2,R18
(0307)
(0308) if (guogan==1)
069D 91800073 LDS R24,guogan
069F 3081 CPI R24,1
06A0 F009 BEQ 0x06A2
06A1 C1BD RJMP 0x085F
(0309) {
(0310) ganwei=ganwei+P_speed*4000;
06A2 90400108 LDS R4,ganwei+2
06A4 90500109 LDS R5,ganwei+3
06A6 90200106 LDS R2,ganwei
06A8 90300107 LDS R3,ganwei+1
06AA 925A ST R5,-Y
06AB 924A ST R4,-Y
06AC 923A ST R3,-Y
06AD 922A ST R2,-Y
06AE ED04 LDI R16,0xD4
06AF E010 LDI R17,0
06B0 940E0FDB CALL lpm32
06B2 933A ST R19,-Y
06B3 932A ST R18,-Y
06B4 931A ST R17,-Y
06B5 930A ST R16,-Y
06B6 90400117 LDS R4,P_speed+2
06B8 90500118 LDS R5,P_speed+3
06BA 90200115 LDS R2,P_speed
06BC 90300116 LDS R3,P_speed+1
06BE 925A ST R5,-Y
06BF 924A ST R4,-Y
06C0 923A ST R3,-Y
06C1 922A ST R2,-Y
06C2 940E1237 CALL empy32fs
06C4 940E110B CALL add32f
06C6 93100107 STS ganwei+1,R17
06C8 93000106 STS ganwei,R16
06CA 93300109 STS ganwei+3,R19
06CC 93200108 STS ganwei+2,R18
(0311) if (next_gan==1)
06CE 91800072 LDS R24,next_gan
06D0 3081 CPI R24,1
06D1 F4F1 BNE 0x06F0
(0312) {
(0313) next_ganwei=next_ganwei*4000;
06D2 ED04 LDI R16,0xD4
06D3 E010 LDI R17,0
06D4 940E0FDB CALL lpm32
06D6 933A ST R19,-Y
06D7 932A ST R18,-Y
06D8 931A ST R17,-Y
06D9 930A ST R16,-Y
06DA 90400104 LDS R4,next_ganwei+2
06DC 90500105 LDS R5,next_ganwei+3
06DE 90200102 LDS R2,next_ganwei
06E0 90300103 LDS R3,next_ganwei+1
06E2 925A ST R5,-Y
06E3 924A ST R4,-Y
06E4 923A ST R3,-Y
06E5 922A ST R2,-Y
06E6 940E123A CALL empy32f
06E8 93100103 STS next_ganwei+1,R17
06EA 93000102 STS next_ganwei,R16
06EC 93300105 STS next_ganwei+3,R19
06EE 93200104 STS next_ganwei+2,R18
(0314) }
(0315) if (first_gan==1) //如果是第一次进行切刀,则启动步进电机,并调速至与皮带一致
06F0 91800078 LDS R24,first_gan
06F2 3081 CPI R24,1
06F3 F009 BEQ 0x06F5
06F4 C04A RJMP 0x073F
(0316) {
(0317) if (next_ganwei>-40)
06F5 ED00 LDI R16,0xD0
06F6 E010 LDI R17,0
06F7 940E0FDB CALL lpm32
06F9 933A ST R19,-Y
06FA 932A ST R18,-Y
06FB 931A ST R17,-Y
06FC 930A ST R16,-Y
06FD 90400104 LDS R4,next_ganwei+2
06FF 90500105 LDS R5,next_ganwei+3
0701 90200102 LDS R2,next_ganwei
0703 90300103 LDS R3,next_ganwei+1
0705 925A ST R5,-Y
0706 924A ST R4,-Y
0707 923A ST R3,-Y
0708 922A ST R2,-Y
0709 940E11C6 CALL cmp32f
070B F00C BLT 0x070D
070C C152 RJMP 0x085F
(0318) {
(0319) M_state=1;
070D E081 LDI R24,1
070E 93800060 STS M_state,R24
(0320) juli=60;
0710 EC0C LDI R16,0xCC
0711 E010 LDI R17,0
0712 940E0FDB CALL lpm32
0714 93100112 STS juli+1,R17
0716 93000111 STS juli,R16
0718 93300114 STS juli+3,R19
071A 93200113 STS juli+2,R18
(0321) first_gan=0;
071C 2422 CLR R2
071D 92200078 STS first_gan,R2
(0322) ganwei=next_ganwei;
071F 90400104 LDS R4,next_ganwei+2
0721 90500105 LDS R5,next_ganwei+3
0723 90200102 LDS R2,next_ganwei
0725 90300103 LDS R3,next_ganwei+1
0727 92300107 STS ganwei+1,R3
0729 92200106 STS ganwei,R2
072B 92500109 STS ganwei+3,R5
072D 92400108 STS ganwei+2,R4
(0323) next_gan=0;
072F 2422 CLR R2
0730 92200072 STS next_gan,R2
(0324) next_ganwei=-500;
0732 EC08 LDI R16,0xC8
0733 E010 LDI R17,0
0734 940E0FDB CALL lpm32
0736 93100103 STS next_ganwei+1,R17
0738 93000102 STS next_ganwei,R16
073A 93300105 STS next_ganwei+3,R19
073C 93200104 STS next_ganwei+2,R18
(0325) }
(0326) }
073E C120 RJMP 0x085F
(0327) else
(0328) {
(0329) if (!((M_state==6) || (M_state==7)) && (ganwei>(jidao*longth_guamian+20)) && (ganwei<(ganju-160)))
073F 91800060 LDS R24,M_state
0741 3086 CPI R24,6
0742 F409 BNE 0x0744
0743 C05B RJMP 0x079F
0744 3087 CPI R24,7
0745 F409 BNE 0x0747
0746 C058 RJMP 0x079F
0747 910000F1 LDS R16,jidao
0749 2711 CLR R17
074A 940E10AE CALL int2fp
074C 933A ST R19,-Y
074D 932A ST R18,-Y
074E 931A ST R17,-Y
074F 930A ST R16,-Y
0750 904000F8 LDS R4,longth_guamian+2
0752 905000F9 LDS R5,longth_guamian+3
0754 902000F6 LDS R2,longth_guamian
0756 903000F7 LDS R3,longth_guamian+1
0758 925A ST R5,-Y
0759 924A ST R4,-Y
075A 923A ST R3,-Y
075B 922A ST R2,-Y
075C 940E1237 CALL empy32fs
075E EC04 LDI R16,0xC4
075F E010 LDI R17,0
0760 940E0FDB CALL lpm32
0762 933A ST R19,-Y
0763 932A ST R18,-Y
0764 931A ST R17,-Y
0765 930A ST R16,-Y
0766 940E1108 CALL add32fs
0768 90400108 LDS R4,ganwei+2
076A 90500109 LDS R5,ganwei+3
076C 90200106 LDS R2,ganwei
076E 90300107 LDS R3,ganwei+1
0770 925A ST R5,-Y
0771 924A ST R4,-Y
0772 923A ST R3,-Y
0773 922A ST R2,-Y
0774 940E11C6 CALL cmp32f
0776 F544 BGE 0x079F
0777 90400108 LDS R4,ganwei+2
0779 90500109 LDS R5,ganwei+3
077B 90200106 LDS R2,ganwei
077D 90300107 LDS R3,ganwei+1
077F 925A ST R5,-Y
0780 924A ST R4,-Y
0781 923A ST R3,-Y
0782 922A ST R2,-Y
0783 904000FC LDS R4,ganju+2
0785 905000FD LDS R5,ganju+3
0787 902000FA LDS R2,ganju
0789 903000FB LDS R3,ganju+1
078B 925A ST R5,-Y
078C 924A ST R4,-Y
078D 923A ST R3,-Y
078E 922A ST R2,-Y
078F EC00 LDI R16,0xC0
0790 E010 LDI R17,0
0791 940E0FDB CALL lpm32
0793 933A ST R19,-Y
0794 932A ST R18,-Y
0795 931A ST R17,-Y
0796 930A ST R16,-Y
0797 940E1110 CALL sub32fs
0799 940E11C6 CALL cmp32f
079B F41C BGE 0x079F
(0330) {
(0331) M_state=6;
079C E086 LDI R24,6
079D 93800060 STS M_state,R24
(0332) }
(0333) if (!((M_state==0) || (M_state==2)) && (ganwei>(ganju-160)) && (next_ganwei<-40))
079F 90200060 LDS R2,M_state
07A1 2022 TST R2
07A2 F409 BNE 0x07A4
07A3 C042 RJMP 0x07E6
07A4 2D82 MOV R24,R2
07A5 3082 CPI R24,2
07A6 F1F9 BEQ 0x07E6
07A7 904000FC LDS R4,ganju+2
07A9 905000FD LDS R5,ganju+3
07AB 902000FA LDS R2,ganju
07AD 903000FB LDS R3,ganju+1
07AF 925A ST R5,-Y
07B0 924A ST R4,-Y
07B1 923A ST R3,-Y
07B2 922A ST R2,-Y
07B3 EC00 LDI R16,0xC0
07B4 E010 LDI R17,0
07B5 940E0FDB CALL lpm32
07B7 933A ST R19,-Y
07B8 932A ST R18,-Y
07B9 931A ST R17,-Y
07BA 930A ST R16,-Y
07BB 940E1110 CALL sub32fs
07BD 90400108 LDS R4,ganwei+2
07BF 90500109 LDS R5,ganwei+3
07C1 90200106 LDS R2,ganwei
07C3 90300107 LDS R3,ganwei+1
07C5 925A ST R5,-Y
07C6 924A ST R4,-Y
07C7 923A ST R3,-Y
07C8 922A ST R2,-Y
07C9 940E11C6 CALL cmp32f
07CB F4D4 BGE 0x07E6
07CC 90400104 LDS R4,next_ganwei+2
07CE 90500105 LDS R5,next_ganwei+3
07D0 90200102 LDS R2,next_ganwei
07D2 90300103 LDS R3,next_ganwei+1
07D4 925A ST R5,-Y
07D5 924A ST R4,-Y
07D6 923A ST R3,-Y
07D7 922A ST R2,-Y
07D8 ED00 LDI R16,0xD0
07D9 E010 LDI R17,0
07DA 940E0FDB CALL lpm32
07DC 933A ST R19,-Y
07DD 932A ST R18,-Y
07DE 931A ST R17,-Y
07DF 930A ST R16,-Y
07E0 940E11C6 CALL cmp32f
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -