⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rd_usedlocate_lib.lis

📁 全场地位系统:小车静止或移动过程中码盘进行全场定位,用的是avr单片机
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 02B4 20920000          sts _g_fLastAngle,R2
 02B8 50920300          sts _g_fLastAngle+2+1,R5
 02BC 40920200          sts _g_fLastAngle+2,R4
 02C0                   .dbline 182
 02C0           ;         }
 02C0                   .dbline 184
 02C0           ;         //计算位置微元
 02C0           ;         {
 02C0                   .dbline 185
 02C0           ;             INT16 nDeltaCounterL = (INT16)((INT32)g_lCounterLImage - (INT32)s_lLastCounterL);
 02C0 20900C00          lds R2,L10
 02C4 30900D00          lds R3,L10+1
 02C8 A0900000          lds R10,_g_lCounterLImage
 02CC B0900100          lds R11,_g_lCounterLImage+1
 02D0 A218              sub R10,R2
 02D2 B308              sbc R11,R3
 02D4                   .dbline 186
 02D4           ;             float fR = (((float)nDeltaCounterL * (float)K_L) * (1.0 / fDeltaAngle) 
 02D4 00E0              ldi R16,<L4
 02D6 10E0              ldi R17,>L4
 02D8 00D0              rcall lpm32
 02DA 1801              movw R2,R16
 02DC 2901              movw R4,R18
 02DE 8501              movw R16,R10
 02E0 00D0              rcall int2fp
 02E2 3A93              st -y,R19
 02E4 2A93              st -y,R18
 02E6 1A93              st -y,R17
 02E8 0A93              st -y,R16
 02EA 8101              movw R16,R2
 02EC 9201              movw R18,R4
 02EE 00D0              rcall fpmule2
 02F0 1801              movw R2,R16
 02F2 2901              movw R4,R18
 02F4 00E0              ldi R16,<L15
 02F6 10E0              ldi R17,>L15
 02F8 00D0              rcall lpm32
 02FA CE01              movw R24,R28
 02FC 0896              adiw R24,8
 02FE 9A93              st -y,R25
 0300 8A93              st -y,R24
 0302 00D0              rcall fpdiv1x
 0304 8101              movw R16,R2
 0306 9201              movw R18,R4
 0308 00D0              rcall fpmule2
 030A 1801              movw R2,R16
 030C 2901              movw R4,R18
 030E 00E0              ldi R16,<L16
 0310 10E0              ldi R17,>L16
 0312 00D0              rcall lpm32
 0314 3A93              st -y,R19
 0316 2A93              st -y,R18
 0318 1A93              st -y,R17
 031A 0A93              st -y,R16
 031C 8101              movw R16,R2
 031E 9201              movw R18,R4
 0320 00D0              rcall fpadd2
 0322 088B              std y+16,R16
 0324 198B              std y+17,R17
 0326 2A8B              std y+18,R18
 0328 3B8B              std y+19,R19
 032A                   .dbline 189
 032A           ;                 + (float)D_BTW_WHEEL * 0.5);
 032A           ; 
 032A           ;             fR = 2.0 * fR * sin(fDeltaAngle * 0.5);             //fR->l
 032A 0C81              ldd R16,y+4
 032C 1D81              ldd R17,y+5
 032E 2E81              ldd R18,y+6
 0330 3F81              ldd R19,y+7
 0332 00D0              rcall _sinf
 0334 1801              movw R2,R16
 0336 2901              movw R4,R18
 0338 00E0              ldi R16,<L17
 033A 10E0              ldi R17,>L17
 033C 00D0              rcall lpm32
 033E CE01              movw R24,R28
 0340 4096              adiw R24,16
 0342 9A93              st -y,R25
 0344 8A93              st -y,R24
 0346 00D0              rcall fpmule1
 0348 5A92              st -y,R5
 034A 4A92              st -y,R4
 034C 3A92              st -y,R3
 034E 2A92              st -y,R2
 0350 00D0              rcall fpmule2
 0352 0C8B              std y+20,R16
 0354 1D8B              std y+21,R17
 0356 2E8B              std y+22,R18
 0358 3F8B              std y+23,R19
 035A                   .dbline 191
 035A           ;         
 035A           ;             g_fX += fR * cos(fAbsoluteAngle);
 035A 0C85              ldd R16,y+12
 035C 1D85              ldd R17,y+13
 035E 2E85              ldd R18,y+14
 0360 3F85              ldd R19,y+15
 0362 00D0              rcall _cosf
 0364 1801              movw R2,R16
 0366 2901              movw R4,R18
 0368 80900600          lds R8,_g_fX+2
 036C 90900700          lds R9,_g_fX+2+1
 0370 60900400          lds R6,_g_fX
 0374 70900500          lds R7,_g_fX+1
 0378 0C89              ldd R16,y+20
 037A 1D89              ldd R17,y+21
 037C 2E89              ldd R18,y+22
 037E 3F89              ldd R19,y+23
 0380 5A92              st -y,R5
 0382 4A92              st -y,R4
 0384 3A92              st -y,R3
 0386 2A92              st -y,R2
 0388 00D0              rcall fpmule2x
 038A 8301              movw R16,R6
 038C 9401              movw R18,R8
 038E 00D0              rcall fpadd2
 0390 10930500          sts _g_fX+1,R17
 0394 00930400          sts _g_fX,R16
 0398 30930700          sts _g_fX+2+1,R19
 039C 20930600          sts _g_fX+2,R18
 03A0                   .dbline 192
 03A0           ;             g_fY += fR * sin(fAbsoluteAngle);
 03A0 0C85              ldd R16,y+12
 03A2 1D85              ldd R17,y+13
 03A4 2E85              ldd R18,y+14
 03A6 3F85              ldd R19,y+15
 03A8 00D0              rcall _sinf
 03AA 1801              movw R2,R16
 03AC 2901              movw R4,R18
 03AE 80900A00          lds R8,_g_fY+2
 03B2 90900B00          lds R9,_g_fY+2+1
 03B6 60900800          lds R6,_g_fY
 03BA 70900900          lds R7,_g_fY+1
 03BE 0C89              ldd R16,y+20
 03C0 1D89              ldd R17,y+21
 03C2 2E89              ldd R18,y+22
 03C4 3F89              ldd R19,y+23
 03C6 5A92              st -y,R5
 03C8 4A92              st -y,R4
 03CA 3A92              st -y,R3
 03CC 2A92              st -y,R2
 03CE 00D0              rcall fpmule2x
 03D0 8301              movw R16,R6
 03D2 9401              movw R18,R8
 03D4 00D0              rcall fpadd2
 03D6 10930900          sts _g_fY+1,R17
 03DA 00930800          sts _g_fY,R16
 03DE 30930B00          sts _g_fY+2+1,R19
 03E2 20930A00          sts _g_fY+2,R18
 03E6                   .dbline 193
 03E6           ;         }
 03E6                   .dbline 194
 03E6           ;     }
 03E6           L13:
 03E6                   .dbline 197
 03E6           ;     
 03E6           ;     //数据更新
 03E6           ;     s_lLastCounterL = g_lCounterLImage;
 03E6 40900200          lds R4,_g_lCounterLImage+2
 03EA 50900300          lds R5,_g_lCounterLImage+2+1
 03EE 20900000          lds R2,_g_lCounterLImage
 03F2 30900100          lds R3,_g_lCounterLImage+1
 03F6 30920D00          sts L10+1,R3
 03FA 20920C00          sts L10,R2
 03FE 50920F00          sts L10+2+1,R5
 0402 40920E00          sts L10+2,R4
 0406                   .dbline 198
 0406           ;     s_lLastCounterR = g_lCounterRImage;
 0406 40900200          lds R4,_g_lCounterRImage+2
 040A 50900300          lds R5,_g_lCounterRImage+2+1
 040E 20900000          lds R2,_g_lCounterRImage
 0412 30900100          lds R3,_g_lCounterRImage+1
 0416 30921100          sts L11+1,R3
 041A 20921000          sts L11,R2
 041E 50921300          sts L11+2+1,R5
 0422 40921200          sts L11+2,R4
 0426                   .dbline 199
 0426           ;     g_bRunFlagB = TRUE;
 0426 81E0              ldi R24,1
 0428 80930000          sts _g_bRunFlagB,R24
 042C                   .dbline 201
 042C           ;     
 042C           ;     return FALSE;
 042C 0027              clr R16
 042E                   .dbline -2
 042E           L9:
 042E                   .dbline 0 ; func end
 042E 6896              adiw R28,24
 0430 00C0              rjmp pop_xgsetF00C
 0432                   .dbsym l fR1 20 D
 0432                   .dbsym l fR0 16 D
 0432                   .dbsym r nDeltaCounterL0 10 I
 0432                   .dbsym l fTempAngle0 16 D
 0432                   .dbsym l fAbsoluteAngle0 12 D
 0432                   .dbsym l fDeltaAngle0 8 D
 0432                   .dbsym l fR0 8 D
 0432                   .dbsym r nDeltaCounterL0 10 I
 0432                   .dbsym l Reg8 4 D
 0432                   .dbend
 0432                   .dbfunc e fMod _fMod fD
 0432           ;       fNumberB -> y+4
 0432           ;       fNumberA -> y+0
                        .even
 0432           _fMod::
 0432 00D0              rcall push_arg4
 0434                   .dbline -1
 0434                   .dbline 211
 0434           ; }
 0434           ; 
 0434           ; /***********************************************************
 0434           ; *   函数说明:实数求模函数                                 *
 0434           ; *   输入:    被除数,除数                                 *
 0434           ; *   输出:    取模结果                                     *
 0434           ; *   调用函数:无                                           *
 0434           ; ***********************************************************/
 0434           ; float fMod(float fNumberA,float fNumberB)
 0434           ; {
 0434                   .dbline 212
 0434           ;     if (fNumberB < 0)
 0434 2C80              ldd R2,y+4
 0436 3D80              ldd R3,y+5
 0438 4E80              ldd R4,y+6
 043A 5F80              ldd R5,y+7
 043C 00E0              ldi R16,<L8
 043E 10E0              ldi R17,>L8
 0440 00D0              rcall lpm32
 0442 3A93              st -y,R19
 0444 2A93              st -y,R18
 0446 1A93              st -y,R17
 0448 0A93              st -y,R16
 044A 8101              movw R16,R2
 044C 9201              movw R18,R4
 044E 00D0              rcall fpcmp2
 0450 0CF0              brlt X13
 0452 5AC0              rjmp L19
 0454           X13:
 0454           X3:
 0454                   .dbline 213
 0454           ;     {
 0454                   .dbline 214
 0454           ;         if (fNumberA < 0)
 0454 2880              ldd R2,y+0
 0456 3980              ldd R3,y+1
 0458 4A80              ldd R4,y+2
 045A 5B80              ldd R5,y+3
 045C 00E0              ldi R16,<L8
 045E 10E0              ldi R17,>L8
 0460 00D0              rcall lpm32
 0462 3A93              st -y,R19
 0464 2A93              st -y,R18
 0466 1A93              st -y,R17
 0468 0A93              st -y,R16
 046A 8101              movw R16,R2
 046C 9201              movw R18,R4
 046E 00D0              rcall fpcmp2
 0470 ECF4              brge L21
 0472           X4:
 0472                   .dbline 215
 0472           ;         {
 0472 0DC0              rjmp L24
 0474           L23:
 0474                   .dbline 217
 0474           ;             while(fNumberA < fNumberB)
 0474           ;             {
 0474                   .dbline 218
 0474           ;                 fNumberA -= fNumberB;
 0474 0881              ldd R16,y+0
 0476 1981              ldd R17,y+1
 0478 2A81              ldd R18,y+2
 047A 3B81              ldd R19,y+3
 047C CE01              movw R24,R28
 047E 0496              adiw R24,4
 0480 9A93              st -y,R25
 0482 8A93              st -y,R24
 0484 00D0              rcall fpsub1
 0486 0883              std y+0,R16
 0488 1983              std y+1,R17
 048A 2A83              std y+2,R18
 048C 3B83              std y+3,R19
 048E                   .dbline 219
 048E           ;             }
 048E           L24:
 048E                   .dbline 216
 048E 0881              ldd R16,y+0
 0490 1981              ldd R17,y+1
 0492 2A81              ldd R18,y+2

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -