📄 proc_motoraction_sctr.lis
字号:
0094 30900100 lds R3,_g_dAimMotorPosition+1
0098 A880 ldd R10,y+0
009A B980 ldd R11,y+1
009C A218 sub R10,R2
009E B308 sbc R11,R3
00A0 L6:
00A0 B0920100 sts _Delta+1,R11
00A4 A0920000 sts _Delta,R10
00A8 .dbline 92
00A8 ;
00A8 ; //SAFE_CODE_PERFORMANCE
00A8 ; //(
00A8 ; MOTOR_GO_BACK
00A8 82B3 in R24,0x12
00AA 8F73 andi R24,63
00AC 8064 ori R24,64
00AE 82BB out 0x12,R24
00B0 .dbline 92
00B0 81E1 ldi R24,17
00B2 8EBD out 0x2e,R24
00B4 .dbline 92
00B4 .dbline 95
00B4 ; //)
00B4 ;
00B4 ; SET_PWM(ERR)
00B4 80E2 ldi R24,800
00B6 93E0 ldi R25,3
00B8 8C15 cp R24,R12
00BA 9D05 cpc R25,R13
00BC 10F4 brsh L7
00BE X2:
00BE 5C01 movw R10,R24
00C0 01C0 rjmp L8
00C2 L7:
00C2 5601 movw R10,R12
00C4 L8:
00C4 BBBC out 0x2b,R11
00C6 AABC out 0x2a,R10
00C8 .dbline 96
00C8 ; }
00C8 65C0 rjmp L4
00CA L3:
00CA .dbline 97
00CA ; else if (dTempDCounter < g_dAimMotorPosition)
00CA 40900200 lds R4,_g_dAimMotorPosition+2
00CE 50900300 lds R5,_g_dAimMotorPosition+2+1
00D2 20900000 lds R2,_g_dAimMotorPosition
00D6 30900100 lds R3,_g_dAimMotorPosition+1
00DA 6880 ldd R6,y+0
00DC 7980 ldd R7,y+1
00DE 8A80 ldd R8,y+2
00E0 9B80 ldd R9,y+3
00E2 6214 cp R6,R2
00E4 7304 cpc R7,R3
00E6 8404 cpc R8,R4
00E8 9504 cpc R9,R5
00EA 08F0 brlo X7
00EC 4FC0 rjmp L9
00EE X7:
00EE X3:
00EE .dbline 98
00EE ; {
00EE .dbline 99
00EE ; ERR = (uint16)((g_dAimMotorPosition - dTempDCounter)*MOTOR_P);
00EE 1301 movw R2,R6
00F0 2401 movw R4,R8
00F2 80900200 lds R8,_g_dAimMotorPosition+2
00F6 90900300 lds R9,_g_dAimMotorPosition+2+1
00FA 60900000 lds R6,_g_dAimMotorPosition
00FE 70900100 lds R7,_g_dAimMotorPosition+1
0102 6218 sub R6,R2
0104 7308 sbc R7,R3
0106 8408 sbc R8,R4
0108 9508 sbc R9,R5
010A 44E1 ldi R20,20
010C 50E0 ldi R21,0
010E 60E0 ldi R22,0
0110 70E0 ldi R23,0
0112 9A92 st -y,R9
0114 8A92 st -y,R8
0116 7A92 st -y,R7
0118 6A92 st -y,R6
011A 8A01 movw R16,R20
011C 9B01 movw R18,R22
011E 00D0 rcall empy32u
0120 6801 movw R12,R16
0122 .dbline 100
0122 ; Delta = ABS((int16)(g_dAimMotorPosition - dTempDCounter));
0122 2880 ldd R2,y+0
0124 3980 ldd R3,y+1
0126 80910000 lds R24,_g_dAimMotorPosition
012A 90910100 lds R25,_g_dAimMotorPosition+1
012E 8219 sub R24,R2
0130 9309 sbc R25,R3
0132 8030 cpi R24,0
0134 E0E0 ldi R30,0
0136 9E07 cpc R25,R30
0138 64F4 brge L11
013A X4:
013A 80910000 lds R24,_g_dAimMotorPosition
013E 90910100 lds R25,_g_dAimMotorPosition+1
0142 8219 sub R24,R2
0144 9309 sbc R25,R3
0146 8095 com R24
0148 9095 com R25
014A 8F5F subi R24,0xFF
014C 9F4F sbci R25,0xFF
014E 5C01 movw R10,R24
0150 08C0 rjmp L12
0152 L11:
0152 2880 ldd R2,y+0
0154 3980 ldd R3,y+1
0156 A0900000 lds R10,_g_dAimMotorPosition
015A B0900100 lds R11,_g_dAimMotorPosition+1
015E A218 sub R10,R2
0160 B308 sbc R11,R3
0162 L12:
0162 B0920100 sts _Delta+1,R11
0166 A0920000 sts _Delta,R10
016A .dbline 104
016A ;
016A ; //SAFE_CODE_PERFORMANCE
016A ; //(
016A ; MOTOR_GO_FRONT
016A 82B3 in R24,0x12
016C 8F73 andi R24,63
016E 8068 ori R24,128
0170 82BB out 0x12,R24
0172 .dbline 104
0172 81E1 ldi R24,17
0174 8EBD out 0x2e,R24
0176 .dbline 104
0176 .dbline 107
0176 ; //)
0176 ;
0176 ; SET_PWM(ERR)
0176 80E2 ldi R24,800
0178 93E0 ldi R25,3
017A 8C15 cp R24,R12
017C 9D05 cpc R25,R13
017E 10F4 brsh L13
0180 X5:
0180 5C01 movw R10,R24
0182 01C0 rjmp L14
0184 L13:
0184 5601 movw R10,R12
0186 L14:
0186 BBBC out 0x2b,R11
0188 AABC out 0x2a,R10
018A .dbline 108
018A ; }
018A 04C0 rjmp L10
018C L9:
018C .dbline 110
018C ; else //计数器相等
018C ; {
018C .dbline 111
018C ; SET_PWM(0)
018C 2224 clr R2
018E 3324 clr R3
0190 3BBC out 0x2b,R3
0192 2ABC out 0x2a,R2
0194 .dbline 113
0194 ; //MOTOR_BRAKE_FREE
0194 ; }
0194 L10:
0194 L4:
0194 .dbline 125
0194 ; /*
0194 ; Set_DISP_BUFF
0194 ; (
0194 ; 0x0F,
0194 ; SET_DWORD_DIV_8(Delta).BYTEBH,
0194 ; SET_DWORD_DIV_8(Delta).BYTEBL,
0194 ; SET_DWORD_DIV_8(Delta).BYTEAH,
0194 ; SET_DWORD_DIV_8(Delta).BYTEAL
0194 ; );
0194 ; */
0194 ;
0194 ; return TRUE;
0194 01E0 ldi R16,1
0196 .dbline -2
0196 L1:
0196 .dbline 0 ; func end
0196 2496 adiw R28,4
0198 00C0 rjmp pop_xgsetF03C
019A .dbsym r ERR3 12 i
019A .dbsym r ERR1 12 i
019A .dbsym l dTempDCounter1 0 l
019A .dbend
019A ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -