📄 ex_support.lis
字号:
0226 ; if (ABS(nTempDistance) <= ABS(g_cSpeed))
0226 C601 movw R24,R12
0228 8030 cpi R24,0
022A E0E0 ldi R30,0
022C 9E07 cpc R25,R30
022E 34F4 brge L32
0230 X13:
0230 8095 com R24
0232 9095 com R25
0234 8F5F subi R24,0xFF
0236 9F4F sbci R25,0xFF
0238 5C01 movw R10,R24
023A 01C0 rjmp L33
023C L32:
023C 5601 movw R10,R12
023E L33:
023E 80910000 lds R24,_g_cSpeed
0242 8030 cpi R24,0
0244 4CF4 brge L34
0246 X14:
0246 9927 clr R25
0248 87FD sbrc R24,7
024A 9095 com R25
024C 8095 com R24
024E 9095 com R25
0250 8F5F subi R24,0xFF
0252 9F4F sbci R25,0xFF
0254 7C01 movw R14,R24
0256 05C0 rjmp L35
0258 L34:
0258 E0900000 lds R14,_g_cSpeed
025C FF24 clr R15
025E E7FC sbrc R14,7
0260 F094 com R15
0262 L35:
0262 EA14 cp R14,R10
0264 FB04 cpc R15,R11
0266 A4F0 brlt L30
0268 X15:
0268 .dbline 219
0268 ; {
0268 .dbline 221
0268 ; //完成动作
0268 ; g_dAimMotorPosition = g_dGoDistance;
0268 40900E00 lds R4,_g_dGoDistance+2
026C 50900F00 lds R5,_g_dGoDistance+2+1
0270 20900C00 lds R2,_g_dGoDistance
0274 30900D00 lds R3,_g_dGoDistance+1
0278 30920900 sts _g_dAimMotorPosition+1,R3
027C 20920800 sts _g_dAimMotorPosition,R2
0280 50920B00 sts _g_dAimMotorPosition+2+1,R5
0284 40920A00 sts _g_dAimMotorPosition+2,R4
0288 .dbline 223
0288 ; //需要发送完成信号
0288 ; s_bIfSendSuccess = FALSE;
0288 2224 clr R2
028A 20921100 sts L7,R2
028E .dbline 224
028E ; }
028E 85C0 rjmp L27
0290 L30:
0290 .dbline 226
0290 ; else
0290 ; {
0290 .dbline 227
0290 ; g_dAimMotorPosition += g_cSpeed;
0290 20900000 lds R2,_g_cSpeed
0294 3324 clr R3
0296 27FC sbrc R2,7
0298 3094 com R3
029A 4424 clr R4
029C 37FC sbrc R3,7
029E 4094 com R4
02A0 5524 clr R5
02A2 47FC sbrc R4,7
02A4 5094 com R5
02A6 80900A00 lds R8,_g_dAimMotorPosition+2
02AA 90900B00 lds R9,_g_dAimMotorPosition+2+1
02AE 60900800 lds R6,_g_dAimMotorPosition
02B2 70900900 lds R7,_g_dAimMotorPosition+1
02B6 620C add R6,R2
02B8 731C adc R7,R3
02BA 841C adc R8,R4
02BC 951C adc R9,R5
02BE 70920900 sts _g_dAimMotorPosition+1,R7
02C2 60920800 sts _g_dAimMotorPosition,R6
02C6 90920B00 sts _g_dAimMotorPosition+2+1,R9
02CA 80920A00 sts _g_dAimMotorPosition+2,R8
02CE .dbline 228
02CE ; }
02CE .dbline 229
02CE ; }
02CE .dbline 238
02CE ; /*
02CE ; else
02CE ; {
02CE ; //非法速度
02CE ; //g_dGoDistance = 0;
02CE ; //g_bIfMarkDistance = FALSE;
02CE ; }
02CE ; */
02CE ; }
02CE 65C0 rjmp L27
02D0 L26:
02D0 .dbline 239
02D0 ; else if (nTempDistance > 0)
02D0 2224 clr R2
02D2 3324 clr R3
02D4 2C14 cp R2,R12
02D6 3D04 cpc R3,R13
02D8 0CF0 brlt X29
02DA 5FC0 rjmp L36
02DC X29:
02DC X16:
02DC .dbline 240
02DC ; {
02DC .dbline 242
02DC ;
02DC ; if (g_cSpeed <= 0)
02DC 30900000 lds R3,_g_cSpeed
02E0 2314 cp R2,R3
02E2 0CF0 brlt L38
02E4 X17:
02E4 .dbline 243
02E4 ; {
02E4 .dbline 248
02E4 ; //非法数据
02E4 ; //g_dGoDistance = 0;
02E4 ; //g_bIfMarkDistance = FALSE;
02E4 ;
02E4 ; }
02E4 5AC0 rjmp L39
02E6 L38:
02E6 .dbline 249
02E6 ; else if (g_cSpeed > 0)
02E6 2224 clr R2
02E8 30900000 lds R3,_g_cSpeed
02EC 2314 cp R2,R3
02EE 0CF0 brlt X30
02F0 54C0 rjmp L40
02F2 X30:
02F2 X18:
02F2 .dbline 250
02F2 ; {
02F2 .dbline 252
02F2 ; //合法速度
02F2 ; if (ABS(nTempDistance) <= ABS(g_cSpeed))
02F2 C601 movw R24,R12
02F4 8030 cpi R24,0
02F6 E0E0 ldi R30,0
02F8 9E07 cpc R25,R30
02FA 34F4 brge L44
02FC X19:
02FC 8095 com R24
02FE 9095 com R25
0300 8F5F subi R24,0xFF
0302 9F4F sbci R25,0xFF
0304 5C01 movw R10,R24
0306 01C0 rjmp L45
0308 L44:
0308 5601 movw R10,R12
030A L45:
030A 80910000 lds R24,_g_cSpeed
030E 8030 cpi R24,0
0310 4CF4 brge L46
0312 X20:
0312 9927 clr R25
0314 87FD sbrc R24,7
0316 9095 com R25
0318 8095 com R24
031A 9095 com R25
031C 8F5F subi R24,0xFF
031E 9F4F sbci R25,0xFF
0320 6C01 movw R12,R24
0322 05C0 rjmp L47
0324 L46:
0324 C0900000 lds R12,_g_cSpeed
0328 DD24 clr R13
032A C7FC sbrc R12,7
032C D094 com R13
032E L47:
032E CA14 cp R12,R10
0330 DB04 cpc R13,R11
0332 A4F0 brlt L42
0334 X21:
0334 .dbline 253
0334 ; {
0334 .dbline 255
0334 ; //完成动作
0334 ; g_dAimMotorPosition = g_dGoDistance;
0334 40900E00 lds R4,_g_dGoDistance+2
0338 50900F00 lds R5,_g_dGoDistance+2+1
033C 20900C00 lds R2,_g_dGoDistance
0340 30900D00 lds R3,_g_dGoDistance+1
0344 30920900 sts _g_dAimMotorPosition+1,R3
0348 20920800 sts _g_dAimMotorPosition,R2
034C 50920B00 sts _g_dAimMotorPosition+2+1,R5
0350 40920A00 sts _g_dAimMotorPosition+2,R4
0354 .dbline 257
0354 ; //需要发送完成信号
0354 ; s_bIfSendSuccess = FALSE;
0354 2224 clr R2
0356 20921100 sts L7,R2
035A .dbline 258
035A ; }
035A 1FC0 rjmp L43
035C L42:
035C .dbline 260
035C ; else
035C ; {
035C .dbline 261
035C ; g_dAimMotorPosition += g_cSpeed;
035C 20900000 lds R2,_g_cSpeed
0360 3324 clr R3
0362 27FC sbrc R2,7
0364 3094 com R3
0366 4424 clr R4
0368 37FC sbrc R3,7
036A 4094 com R4
036C 5524 clr R5
036E 47FC sbrc R4,7
0370 5094 com R5
0372 80900A00 lds R8,_g_dAimMotorPosition+2
0376 90900B00 lds R9,_g_dAimMotorPosition+2+1
037A 60900800 lds R6,_g_dAimMotorPosition
037E 70900900 lds R7,_g_dAimMotorPosition+1
0382 620C add R6,R2
0384 731C adc R7,R3
0386 841C adc R8,R4
0388 951C adc R9,R5
038A 70920900 sts _g_dAimMotorPosition+1,R7
038E 60920800 sts _g_dAimMotorPosition,R6
0392 90920B00 sts _g_dAimMotorPosition+2+1,R9
0396 80920A00 sts _g_dAimMotorPosition+2,R8
039A .dbline 262
039A ; }
039A L43:
039A .dbline 263
039A ; }
039A L40:
039A L39:
039A .dbline 264
039A ; }
039A L36:
039A L27:
039A .dbline 266
039A ;
039A ; if (!s_bIfSendSuccess)
039A 20901100 lds R2,L7
039E 2220 tst R2
03A0 29F4 brne L48
03A2 X22:
03A2 .dbline 267
03A2 ; {
03A2 .dbline 268
03A2 ; s_bIfSendSuccess = TRUE;
03A2 81E0 ldi R24,1
03A4 80931100 sts L7,R24
03A8 .dbline 269
03A8 ; SERIAL_OUT(0xAC);
03A8 0CEA ldi R16,172
03AA 00D0 rcall _UARTaddDataToTxBuff
03AC .dbline 269
03AC .dbline 270
03AC ; }
03AC L48:
03AC .dbline 271
03AC ; }
03AC L22:
03AC .dbline 272
03AC ; }
03AC L17:
03AC .dbline 273
03AC ; }
03AC L14:
03AC .dbline -2
03AC L6:
03AC .dbline 0 ; func end
03AC 00C0 rjmp pop_xgsetF0FC
03AE .dbsym r nTempDistance1 12 I
03AE .dbend
.area lit(rom, con, rel)
0000 L25:
0000 8E4DA041 .word 0x4d8e,0x41a0
0004 ;
0004 ;
0004 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -