📄 ex_support.lis
字号:
0066 ; */
0066 ; }
0066 L10:
0066 .dbline 172
0066 ; /*
0066 ; if (!(g_wSystemTimer & 0x0f))
0066 ; {
0066 ; REFRESH_SP027
0066 ; g_dAimMotorPosition++;
0066 ; }
0066 ; Set_DISP_BUFF
0066 ; (
0066 ; SET_DWORD_DIV_8(g_dNowMotorPosition).BYTECL,
0066 ; SET_DWORD_DIV_8(g_dNowMotorPosition).BYTEBH,
0066 ; SET_DWORD_DIV_8(g_dNowMotorPosition).BYTEBL,
0066 ; SET_DWORD_DIV_8(g_dNowMotorPosition).BYTEAH,
0066 ; SET_DWORD_DIV_8(g_dNowMotorPosition).BYTEAL
0066 ; );
0066 ; */
0066 ;
0066 ; if (!(g_wSystemTimer & 0x03))
0066 80910200 lds R24,_g_wSystemTimer
006A 90910300 lds R25,_g_wSystemTimer+1
006E 8370 andi R24,3
0070 9070 andi R25,0
0072 8030 cpi R24,0
0074 8907 cpc R24,R25
0076 09F4 brne L12
0078 X3:
0078 .dbline 173
0078 ; {
0078 .dbline 174
0078 ; REFRESH_SP027
0078 00D0 rcall _LCDSP027_refresh_DISP_BUFF
007A .dbline 175
007A ; }
007A L12:
007A .dbline 177
007A ;
007A ; if (!(g_wSystemTimer & 0x0f))
007A 80910200 lds R24,_g_wSystemTimer
007E 90910300 lds R25,_g_wSystemTimer+1
0082 8F70 andi R24,15
0084 9070 andi R25,0
0086 8030 cpi R24,0
0088 8907 cpc R24,R25
008A 09F0 breq X23
008C 8FC1 rjmp L14
008E X23:
008E X4:
008E .dbline 178
008E ; {
008E .dbline 179
008E ; if ((g_bIfBrake) || (g_wDistance == 0))
008E 20900000 lds R2,_g_bIfBrake
0092 2220 tst R2
0094 51F4 brne L18
0096 X5:
0096 20900000 lds R2,_g_wDistance
009A 30900100 lds R3,_g_wDistance+1
009E 2220 tst R2
00A0 09F0 breq X24
00A2 52C0 rjmp L16
00A4 X24:
00A4 3320 tst R3
00A6 09F0 breq X25
00A8 4FC0 rjmp L16
00AA X25:
00AA X6:
00AA L18:
00AA .dbline 180
00AA ; {
00AA .dbline 181
00AA ; if ((g_wDistance == 0) && (!g_bIfBrake))
00AA 20900000 lds R2,_g_wDistance
00AE 30900100 lds R3,_g_wDistance+1
00B2 2220 tst R2
00B4 31F5 brne L19
00B6 3320 tst R3
00B8 21F5 brne L19
00BA X7:
00BA 20900000 lds R2,_g_bIfBrake
00BE 2220 tst R2
00C0 01F5 brne L19
00C2 X8:
00C2 .dbline 182
00C2 ; {
00C2 .dbline 183
00C2 ; g_dAimMotorPosition += g_cSpeed;
00C2 20900000 lds R2,_g_cSpeed
00C6 3324 clr R3
00C8 27FC sbrc R2,7
00CA 3094 com R3
00CC 4424 clr R4
00CE 37FC sbrc R3,7
00D0 4094 com R4
00D2 5524 clr R5
00D4 47FC sbrc R4,7
00D6 5094 com R5
00D8 80900A00 lds R8,_g_dAimMotorPosition+2
00DC 90900B00 lds R9,_g_dAimMotorPosition+2+1
00E0 60900800 lds R6,_g_dAimMotorPosition
00E4 70900900 lds R7,_g_dAimMotorPosition+1
00E8 620C add R6,R2
00EA 731C adc R7,R3
00EC 841C adc R8,R4
00EE 951C adc R9,R5
00F0 70920900 sts _g_dAimMotorPosition+1,R7
00F4 60920800 sts _g_dAimMotorPosition,R6
00F8 90920B00 sts _g_dAimMotorPosition+2+1,R9
00FC 80920A00 sts _g_dAimMotorPosition+2,R8
0100 .dbline 184
0100 ; }
0100 10C0 rjmp L20
0102 L19:
0102 .dbline 186
0102 ; else
0102 ; {
0102 .dbline 187
0102 ; g_dAimMotorPosition = g_dNowMotorPosition;
0102 40900600 lds R4,_g_dNowMotorPosition+2
0106 50900700 lds R5,_g_dNowMotorPosition+2+1
010A 20900400 lds R2,_g_dNowMotorPosition
010E 30900500 lds R3,_g_dNowMotorPosition+1
0112 30920900 sts _g_dAimMotorPosition+1,R3
0116 20920800 sts _g_dAimMotorPosition,R2
011A 50920B00 sts _g_dAimMotorPosition+2+1,R5
011E 40920A00 sts _g_dAimMotorPosition+2,R4
0122 .dbline 188
0122 ; }
0122 L20:
0122 .dbline 189
0122 ; g_dGoDistance = 0;
0122 40E0 ldi R20,0
0124 50E0 ldi R21,0
0126 60E0 ldi R22,0
0128 70E0 ldi R23,0
012A 50930D00 sts _g_dGoDistance+1,R21
012E 40930C00 sts _g_dGoDistance,R20
0132 70930F00 sts _g_dGoDistance+2+1,R23
0136 60930E00 sts _g_dGoDistance+2,R22
013A .dbline 190
013A ; g_bIfMarkDistance = FALSE;
013A 2224 clr R2
013C 20921000 sts _g_bIfMarkDistance,R2
0140 .dbline 191
0140 ; s_bIfSendSuccess = TRUE;
0140 81E0 ldi R24,1
0142 80931100 sts L7,R24
0146 .dbline 192
0146 ; }
0146 32C1 rjmp L17
0148 L16:
0148 .dbline 194
0148 ; else
0148 ; {
0148 .dbline 195
0148 ; if (!g_bIfMarkDistance)
0148 20901000 lds R2,_g_bIfMarkDistance
014C 2220 tst R2
014E 09F0 breq X26
0150 55C0 rjmp L21
0152 X26:
0152 X9:
0152 .dbline 196
0152 ; {
0152 .dbline 197
0152 ; if (g_cSpeed < 0)
0152 80910000 lds R24,_g_cSpeed
0156 8030 cpi R24,0
0158 3CF5 brge L23
015A X10:
015A .dbline 198
015A ; {
015A .dbline 199
015A ; g_dGoDistance = g_dNowMotorPosition - (int32)((float)g_wDistance * (float)MM_K);
015A 00E0 ldi R16,<L25
015C 10E0 ldi R17,>L25
015E 00D0 rcall lpm32
0160 1801 movw R2,R16
0162 2901 movw R4,R18
0164 00910000 lds R16,_g_wDistance
0168 10910100 lds R17,_g_wDistance+1
016C 00D0 rcall uint2fp
016E 3A93 st -y,R19
0170 2A93 st -y,R18
0172 1A93 st -y,R17
0174 0A93 st -y,R16
0176 8101 movw R16,R2
0178 9201 movw R18,R4
017A 00D0 rcall fpmule2
017C 00D0 rcall fpint
017E 40900600 lds R4,_g_dNowMotorPosition+2
0182 50900700 lds R5,_g_dNowMotorPosition+2+1
0186 20900400 lds R2,_g_dNowMotorPosition
018A 30900500 lds R3,_g_dNowMotorPosition+1
018E 201A sub R2,R16
0190 310A sbc R3,R17
0192 420A sbc R4,R18
0194 530A sbc R5,R19
0196 30920D00 sts _g_dGoDistance+1,R3
019A 20920C00 sts _g_dGoDistance,R2
019E 50920F00 sts _g_dGoDistance+2+1,R5
01A2 40920E00 sts _g_dGoDistance+2,R4
01A6 .dbline 200
01A6 ; }
01A6 26C0 rjmp L24
01A8 L23:
01A8 .dbline 202
01A8 ; else
01A8 ; {
01A8 .dbline 203
01A8 ; g_dGoDistance = g_dNowMotorPosition + (int32)((float)g_wDistance * (float)MM_K);
01A8 00E0 ldi R16,<L25
01AA 10E0 ldi R17,>L25
01AC 00D0 rcall lpm32
01AE 1801 movw R2,R16
01B0 2901 movw R4,R18
01B2 00910000 lds R16,_g_wDistance
01B6 10910100 lds R17,_g_wDistance+1
01BA 00D0 rcall uint2fp
01BC 3A93 st -y,R19
01BE 2A93 st -y,R18
01C0 1A93 st -y,R17
01C2 0A93 st -y,R16
01C4 8101 movw R16,R2
01C6 9201 movw R18,R4
01C8 00D0 rcall fpmule2
01CA 00D0 rcall fpint
01CC 40900600 lds R4,_g_dNowMotorPosition+2
01D0 50900700 lds R5,_g_dNowMotorPosition+2+1
01D4 20900400 lds R2,_g_dNowMotorPosition
01D8 30900500 lds R3,_g_dNowMotorPosition+1
01DC 200E add R2,R16
01DE 311E adc R3,R17
01E0 421E adc R4,R18
01E2 531E adc R5,R19
01E4 30920D00 sts _g_dGoDistance+1,R3
01E8 20920C00 sts _g_dGoDistance,R2
01EC 50920F00 sts _g_dGoDistance+2+1,R5
01F0 40920E00 sts _g_dGoDistance+2,R4
01F4 .dbline 204
01F4 ; }
01F4 L24:
01F4 .dbline 206
01F4 ;
01F4 ; g_bIfMarkDistance = TRUE;
01F4 81E0 ldi R24,1
01F6 80931000 sts _g_bIfMarkDistance,R24
01FA .dbline 207
01FA ; }
01FA D8C0 rjmp L22
01FC L21:
01FC .dbline 209
01FC ; else
01FC ; {
01FC .dbline 210
01FC ; nTempDistance = g_dGoDistance - g_dNowMotorPosition;
01FC 20900400 lds R2,_g_dNowMotorPosition
0200 30900500 lds R3,_g_dNowMotorPosition+1
0204 C0900C00 lds R12,_g_dGoDistance
0208 D0900D00 lds R13,_g_dGoDistance+1
020C C218 sub R12,R2
020E D308 sbc R13,R3
0210 .dbline 212
0210 ;
0210 ; if (nTempDistance < 0)
0210 C601 movw R24,R12
0212 8030 cpi R24,0
0214 E0E0 ldi R30,0
0216 9E07 cpc R25,R30
0218 0CF0 brlt X27
021A 5AC0 rjmp L26
021C X27:
021C X11:
021C .dbline 213
021C ; {
021C .dbline 215
021C ;
021C ; if (g_cSpeed < 0)
021C 80910000 lds R24,_g_cSpeed
0220 8030 cpi R24,0
0222 0CF0 brlt X28
0224 BAC0 rjmp L27
0226 X28:
0226 X12:
0226 .dbline 216
0226 ; {
0226 .dbline 218
0226 ; //合法速度
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -