📄 icc_gmj.lst
字号:
044D F409 BNE 0x044F
044E C116 RJMP 0x0565
044F 3086 CPI R24,6
0450 E0E0 LDI R30,0
0451 079E CPC R25,R30
0452 F409 BNE 0x0454
0453 C171 RJMP 0x05C5
0454 3087 CPI R24,7
0455 E0E0 LDI R30,0
0456 079E CPC R25,R30
0457 F409 BNE 0x0459
0458 C186 RJMP 0x05DF
0459 3088 CPI R24,0x8
045A E0E0 LDI R30,0
045B 079E CPC R25,R30
045C F409 BNE 0x045E
045D C18B RJMP 0x05E9
045E C19E RJMP 0x05FD
(0229) {
(0230) case 1: //启动状态
(0231) {
(0232) qidong_num++;
045F 91800065 LDS R24,qidong_num
0461 5F8F SUBI R24,0xFF
0462 93800065 STS qidong_num,R24
(0233) tmp_t1=64536;
0464 E188 LDI R24,0x18
0465 EF9C LDI R25,0xFC
0466 93900064 STS tmp_t1+1,R25
0468 93800063 STS tmp_t1,R24
(0234) if (qidong_num>160)
046A EA80 LDI R24,0xA0
046B 90200065 LDS R2,qidong_num
046D 1582 CP R24,R2
046E F008 BCS 0x0470
046F C18D RJMP 0x05FD
(0235) {
(0236) M_state=3; //结束启动状态,转入加速状态
0470 E083 LDI R24,3
0471 93800060 STS M_state,R24
(0237) }
(0238) } break;
0473 C189 RJMP 0x05FD
(0239) case 2: //减速至停转
(0240) {
(0241) if (time1_jsq<1000) time1_jsq++;
0474 01C5 MOVW R24,R10
0475 3E88 CPI R24,0xE8
0476 E0E3 LDI R30,3
0477 079E CPC R25,R30
0478 F410 BCC 0x047B
0479 9601 ADIW R24,1
047A 015C MOVW R10,R24
(0242) tmp_t1=65535-time1_jsq+1;
047B EF8F LDI R24,0xFF
047C EF9F LDI R25,0xFF
047D 198A SUB R24,R10
047E 099B SBC R25,R11
047F 9601 ADIW R24,1
0480 93900064 STS tmp_t1+1,R25
0482 93800063 STS tmp_t1,R24
(0243) if (dec_speed_bz==1)
0484 91800066 LDS R24,dec_speed_bz
0486 3081 CPI R24,1
0487 F509 BNE 0x04A9
(0244) {
(0245) dec_speed_bz=0;
0488 2422 CLR R2
0489 92200066 STS dec_speed_bz,R2
(0246) if (step_num>(M_ZHUANBI*3/4)) dec_speed_num=2*M_ZHUANBI-step_num; else dec_speed_num=M_ZHUANBI-step_num;
048B EB88 LDI R24,0xB8
048C E09B LDI R25,0xB
048D 90200061 LDS R2,step_num
048F 90300062 LDS R3,step_num+1
0491 1582 CP R24,R2
0492 0593 CPC R25,R3
0493 F448 BCC 0x049D
0494 E480 LDI R24,0x40
0495 E19F LDI R25,0x1F
0496 1982 SUB R24,R2
0497 0993 SBC R25,R3
0498 93900068 STS dec_speed_num+1,R25
049A 93800067 STS dec_speed_num,R24
049C C00C RJMP 0x04A9
049D 90200061 LDS R2,step_num
049F 90300062 LDS R3,step_num+1
04A1 EA80 LDI R24,0xA0
04A2 E09F LDI R25,0xF
04A3 1982 SUB R24,R2
04A4 0993 SBC R25,R3
04A5 93900068 STS dec_speed_num+1,R25
04A7 93800067 STS dec_speed_num,R24
(0247) }
(0248) dec_speed_num--;
04A9 91800067 LDS R24,dec_speed_num
04AB 91900068 LDS R25,dec_speed_num+1
04AD 9701 SBIW R24,1
04AE 93900068 STS dec_speed_num+1,R25
04B0 93800067 STS dec_speed_num,R24
(0249) if (dec_speed_num==0) M_state=0;
04B2 3080 CPI R24,0
04B3 0789 CPC R24,R25
04B4 F009 BEQ 0x04B6
04B5 C147 RJMP 0x05FD
04B6 2422 CLR R2
04B7 92200060 STS M_state,R2
(0250) } break;
04B9 C143 RJMP 0x05FD
(0251) case 3: //加速至随动
(0252) case 4: //减速至随动
(0253) {
(0254) avg_speed=(unsigned int)((juli/(1000-step_num))/P_speed+0.5);
04BA 90200061 LDS R2,step_num
04BC 90300062 LDS R3,step_num+1
04BE EE88 LDI R24,0xE8
04BF E093 LDI R25,3
04C0 1982 SUB R24,R2
04C1 0993 SBC R25,R3
04C2 011C MOVW R2,R24
04C3 90600113 LDS R6,juli+2
04C5 90700114 LDS R7,juli+3
04C7 90400111 LDS R4,juli
04C9 90500112 LDS R5,juli+1
04CB 927A ST R7,-Y
04CC 926A ST R6,-Y
04CD 925A ST R5,-Y
04CE 924A ST R4,-Y
04CF EE04 LDI R16,0xE4
04D0 E010 LDI R17,0
04D1 940E0FDB CALL lpm32
04D3 933A ST R19,-Y
04D4 932A ST R18,-Y
04D5 931A ST R17,-Y
04D6 930A ST R16,-Y
04D7 0181 MOVW R16,R2
04D8 9516 LSR R17
04D9 9507 ROR R16
04DA 940E10AE CALL int2fp
04DC 933A ST R19,-Y
04DD 932A ST R18,-Y
04DE 931A ST R17,-Y
04DF 930A ST R16,-Y
04E0 940E1237 CALL empy32fs
04E2 0181 MOVW R16,R2
04E3 7001 ANDI R16,1
04E4 7010 ANDI R17,0
04E5 940E10AE CALL int2fp
04E7 933A ST R19,-Y
04E8 932A ST R18,-Y
04E9 931A ST R17,-Y
04EA 930A ST R16,-Y
04EB 940E1108 CALL add32fs
04ED 940E1169 CALL div32fs
04EF 90400117 LDS R4,P_speed+2
04F1 90500118 LDS R5,P_speed+3
04F3 90200115 LDS R2,P_speed
04F5 90300116 LDS R3,P_speed+1
04F7 925A ST R5,-Y
04F8 924A ST R4,-Y
04F9 923A ST R3,-Y
04FA 922A ST R2,-Y
04FB 940E1169 CALL div32fs
04FD EE00 LDI R16,0xE0
04FE E010 LDI R17,0
04FF 940E0FDB CALL lpm32
0501 933A ST R19,-Y
0502 932A ST R18,-Y
0503 931A ST R17,-Y
0504 930A ST R16,-Y
0505 940E110B CALL add32f
0507 01FE MOVW R30,R28
0508 8300 STD Z+0,R16
0509 8311 STD Z+1,R17
050A 8322 STD Z+2,R18
050B 8333 STD Z+3,R19
050C 01FE MOVW R30,R28
050D 8020 LDD R2,Z+0
050E 8031 LDD R3,Z+1
050F 8042 LDD R4,Z+2
0510 8053 LDD R5,Z+3
0511 925A ST R5,-Y
0512 924A ST R4,-Y
0513 923A ST R3,-Y
0514 922A ST R2,-Y
0515 ED0C LDI R16,0xDC
0516 E010 LDI R17,0
0517 940E0FDB CALL lpm32
0519 933A ST R19,-Y
051A 932A ST R18,-Y
051B 931A ST R17,-Y
051C 930A ST R16,-Y
051D 940E11C6 CALL cmp32f
051F F0D4 BLT 0x053A
0520 01FE MOVW R30,R28
0521 8020 LDD R2,Z+0
0522 8031 LDD R3,Z+1
0523 8042 LDD R4,Z+2
0524 8053 LDD R5,Z+3
0525 925A ST R5,-Y
0526 924A ST R4,-Y
0527 923A ST R3,-Y
0528 922A ST R2,-Y
0529 ED0C LDI R16,0xDC
052A E010 LDI R17,0
052B 940E0FDB CALL lpm32
052D 933A ST R19,-Y
052E 932A ST R18,-Y
052F 931A ST R17,-Y
0530 930A ST R16,-Y
0531 940E1113 CALL sub32f
0533 940E1066 CALL fp2int
0535 01C8 MOVW R24,R16
0536 5080 SUBI R24,0
0537 4890 SBCI R25,0x80
0538 017C MOVW R14,R24
0539 C008 RJMP 0x0542
053A 01FE MOVW R30,R28
053B 8100 LDD R16,Z+0
053C 8111 LDD R17,Z+1
053D 8122 LDD R18,Z+2
053E 8133 LDD R19,Z+3
053F 940E1066 CALL fp2int
0541 0178 MOVW R14,R16
0542 0167 MOVW R12,R14
(0255)
(0256) if (avg_speed>time1_jsq) time1_jsq++;
0543 14AE CP R10,R14
0544 04BF CPC R11,R15
0545 F418 BCC 0x0549
0546 01C5 MOVW R24,R10
0547 9601 ADIW R24,1
0548 015C MOVW R10,R24
(0257) if (avg_speed<time1_jsq) time1_jsq--;
0549 14CA CP R12,R10
054A 04DB CPC R13,R11
054B F418 BCC 0x054F
054C 01C5 MOVW R24,R10
054D 9701 SBIW R24,1
054E 015C MOVW R10,R24
(0258) tmp_t1=65535-time1_jsq+1;
054F EF8F LDI R24,0xFF
0550 EF9F LDI R25,0xFF
0551 198A SUB R24,R10
0552 099B SBC R25,R11
0553 9601 ADIW R24,1
0554 93900064 STS tmp_t1+1,R25
0556 93800063 STS tmp_t1,R24
(0259) if (step_num==999) M_state=5;
0558 91800061 LDS R24,step_num
055A 91900062 LDS R25,step_num+1
055C 3E87 CPI R24,0xE7
055D E0E3 LDI R30,3
055E 079E CPC R25,R30
055F F009 BEQ 0x0561
0560 C09C RJMP 0x05FD
0561 E085 LDI R24,5
0562 93800060 STS M_state,R24
(0260) } break;
0564 C098 RJMP 0x05FD
(0261) case 5: //随动
(0262) {
(0263) time1_jsq=(unsigned int)(DW_juli/P_speed);
0565 9040011B LDS R4,DW_juli+2
0567 9050011C LDS R5,DW_juli+3
0569 90200119 LDS R2,DW_juli
056B 9030011A LDS R3,DW_juli+1
056D 925A ST R5,-Y
056E 924A ST R4,-Y
056F 923A ST R3,-Y
0570 922A ST R2,-Y
0571 90400117 LDS R4,P_speed+2
0573 90500118 LDS R5,P_speed+3
0575 90200115 LDS R2,P_speed
0577 90300116 LDS R3,P_speed+1
0579 925A ST R5,-Y
057A 924A ST R4,-Y
057B 923A ST R3,-Y
057C 922A ST R2,-Y
057D 940E116C CALL div32f
057F 01FE MOVW R30,R28
0580 8300 STD Z+0,R16
0581 8311 STD Z+1,R17
0582 8322 STD Z+2,R18
0583 8333 STD Z+3,R19
0584 01FE MOVW R30,R28
0585 8020 LDD R2,Z+0
0586 8031 LDD R3,Z+1
0587 8042 LDD R4,Z+2
0588 8053 LDD R5,Z+3
0589 925A ST R5,-Y
058A 924A ST R4,-Y
058B 923A ST R3,-Y
058C 922A ST R2,-Y
058D ED08 LDI R16,0xD8
058E E010 LDI R17,0
058F 940E0FDB CALL lpm32
0591 933A ST R19,-Y
0592 932A ST R18,-Y
0593 931A ST R17,-Y
0594 930A ST R16,-Y
0595 940E11C6 CALL cmp32f
0597 F0D4 BLT 0x05B2
0598 01FE MOVW R30,R28
0599 8020 LDD R2,Z+0
059A 8031 LDD R3,Z+1
059B 8042 LDD R4,Z+2
059C 8053 LDD R5,Z+3
059D 925A ST R5,-Y
059E 924A ST R4,-Y
059F 923A ST R3,-Y
05A0 922A ST R2,-Y
05A1 ED08 LDI R16,0xD8
05A2 E010 LDI R17,0
05A3 940E0FDB CALL lpm32
05A5 933A ST R19,-Y
05A6 932A ST R18,-Y
05A7 931A ST R17,-Y
05A8 930A ST R16,-Y
05A9 940E1113 CALL sub32f
05AB 940E1066 CALL fp2int
05AD 01C8 MOVW R24,R16
05AE 5080 SUBI R24,0
05AF 4890 SBCI R25,0x80
05B0 016C MOVW R12,R24
05B1 C008 RJMP 0x05BA
05B2 01FE MOVW R30,R28
05B3 8100 LDD R16,Z+0
05B4 8111 LDD R17,Z+1
05B5 8122 LDD R18,Z+2
05B6 8133 LDD R19,Z+3
05B7 940E1066 CALL fp2int
05B9 0168 MOVW R12,R16
05BA 0156 MOVW R10,R12
(0264) tmp_t1=65535-time1_jsq+1;
05BB EF8F LDI R24,0xFF
05BC EF9F LDI R25,0xFF
05BD 198C SUB R24,R12
05BE 099D SBC R25,R13
05BF 9601 ADIW R24,1
05C0 93900064 STS tmp_t1+1,R25
05C2 93800063 STS tmp_t1,R24
(0265) } break;
05C4 C038 RJMP 0x05FD
(0266) case 6: //加速至碎刀
(0267) {
(0268) if (time1_jsq>111) time1_jsq--;
05C5 E68F LDI R24,0x6F
05C6 E090 LDI R25,0
05C7 158A CP R24,R10
05C8 059B CPC R25,R11
05C9 F418 BCC 0x05CD
05CA 01C5 MOVW R24,R10
05CB 9701 SBIW R24,1
05CC 015C MOVW R10,R24
(0269) tmp_t1=65535-time1_jsq+1;
05CD EF8F LDI R24,0xFF
05CE EF9F LDI R25,0xFF
05CF 198A SUB R24,R10
05D0 099B SBC R25,R11
05D1 9601 ADIW R24,1
05D2 93900064 STS tmp_t1+1,R25
05D4 93800063 STS tmp_t1,R24
(0270) if (time1_jsq==111) M_state=7;
05D6 01C5 MOVW R24,R10
05D7 368F CPI R24,0x6F
05D8 E0E0 LDI R30,0
05D9 079E CPC R25,R30
05DA F511 BNE 0x05FD
05DB E087 LDI R24,7
05DC 93800060 STS M_state,R24
(0271) } break;
05DE C01E RJMP 0x05FD
(0272) case 7: //碎刀
(0273) {
(0274) time1_jsq=111;
05DF E68F LDI R24,0x6F
05E0 E090 LDI R25,0
05E1 015C MOVW R10,R24
(0275) tmp_t1=65425;
05E2 E981 LDI R24,0x91
05E3 EF9F LDI R25,0xFF
05E4 93900064 STS tmp_t1+1,R25
05E6 93800063 STS tmp_t1,R24
(0276) } break;
05E8 C014 RJMP 0x05FD
(0277) case 8: //转动至平行
(0278) {
(0279) if (step_num==0) M_state=0;
05E9 90200061 LDS R2,step_num
05EB 90300062 LDS R3,step_num+1
05ED 2022 TST R2
05EE F429 BNE 0x05F4
05EF 2033 TST R3
05F0 F419 BNE 0x05F4
05F1 2422 CLR R2
05F2 92200060 STS M_state,R2
(0280) tmp_t1=64536;
05F4 E188 LDI R24,0x18
05F5 EF9C LDI R25,0xFC
05F6 93900064 STS tmp_t1+1,R25
05F8 93800063 STS tmp_t1,R24
(0281) time1_jsq=1000;
05FA EE88 LDI R24,0xE8
05FB E093 LDI R25,3
05FC 015C MOVW R10,R24
(0282) } break;
(0283) }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -