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

📄 communication_lib.lis

📁 移动机器人(小车)的物理坐标和逻辑坐标的转换源码
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 023E                   .dbline 172
 023E           ;         
 023E           ;         if (chCTR & BIT(2))
 023E 42FF              sbrs R20,2
 0240 2CC0              rjmp L30
 0242           X4:
 0242                   .dbline 173
 0242           ;         {
 0242                   .dbline 175
 0242           ;             //设置角度
 0242           ;             g_chCMDBuffer[2] |= BIT(2);
 0242 80910200          lds R24,_g_chCMDBuffer+2
 0246 8460              ori R24,4
 0248 80930200          sts _g_chCMDBuffer+2,R24
 024C                   .dbline 176
 024C           ;             fAbsoluteAngle = TYPE_CONVERSION(&pcData[9],float) - K_ANGLE * (float)g_wCounter;
 024C 3996              adiw R30,9
 024E 2080              ldd R2,z+0
 0250 3180              ldd R3,z+1
 0252 4280              ldd R4,z+2
 0254 5380              ldd R5,z+3
 0256 00E0              ldi R16,<L33
 0258 10E0              ldi R17,>L33
 025A 00D0              rcall lpm32
 025C 3801              movw R6,R16
 025E 4901              movw R8,R18
 0260 00910000          lds R16,_g_wCounter
 0264 10910100          lds R17,_g_wCounter+1
 0268 00D0              rcall uint2fp
 026A 3A93              st -y,R19
 026C 2A93              st -y,R18
 026E 1A93              st -y,R17
 0270 0A93              st -y,R16
 0272 8301              movw R16,R6
 0274 9401              movw R18,R8
 0276 00D0              rcall fpmule2x
 0278 8101              movw R16,R2
 027A 9201              movw R18,R4
 027C 00D0              rcall fpsub2
 027E 0983              std y+1,R16
 0280 1A83              std y+2,R17
 0282 2B83              std y+3,R18
 0284 3C83              std y+4,R19
 0286                   .dbline 177
 0286           ;             TYPE_CONVERSION(&g_chCMDBuffer[11],float) = fAbsoluteAngle;
 0286 2980              ldd R2,y+1
 0288 3A80              ldd R3,y+2
 028A 4B80              ldd R4,y+3
 028C 5C80              ldd R5,y+4
 028E E0E0              ldi R30,<_g_chCMDBuffer+11
 0290 F0E0              ldi R31,>_g_chCMDBuffer+11
 0292 2082              std z+0,R2
 0294 3182              std z+1,R3
 0296 4282              std z+2,R4
 0298 5382              std z+3,R5
 029A                   .dbline 178
 029A           ;         }
 029A           L30:
 029A                   .dbline 180
 029A           ;         
 029A           ;         fAbsoluteAngle += PI;
 029A 2980              ldd R2,y+1
 029C 3A80              ldd R3,y+2
 029E 4B80              ldd R4,y+3
 02A0 5C80              ldd R5,y+4
 02A2 00E0              ldi R16,<L35
 02A4 10E0              ldi R17,>L35
 02A6 00D0              rcall lpm32
 02A8 3A93              st -y,R19
 02AA 2A93              st -y,R18
 02AC 1A93              st -y,R17
 02AE 0A93              st -y,R16
 02B0 8101              movw R16,R2
 02B2 9201              movw R18,R4
 02B4 00D0              rcall fpadd2
 02B6 0983              std y+1,R16
 02B8 1A83              std y+2,R17
 02BA 2B83              std y+3,R18
 02BC 3C83              std y+4,R19
 02BE                   .dbline 182
 02BE           ;         
 02BE           ;         if (chCTR & BIT(0))
 02BE 40FF              sbrs R20,0
 02C0 22C0              rjmp L36
 02C2           X5:
 02C2                   .dbline 183
 02C2           ;         {
 02C2                   .dbline 185
 02C2           ;             //设置X坐标
 02C2           ;             g_chCMDBuffer[2] |= BIT(0);
 02C2 80910200          lds R24,_g_chCMDBuffer+2
 02C6 8160              ori R24,1
 02C8 80930200          sts _g_chCMDBuffer+2,R24
 02CC                   .dbline 187
 02CC           ;             
 02CC           ;             TYPE_CONVERSION(&g_chCMDBuffer[3],float) = 
 02CC 0981              ldd R16,y+1
 02CE 1A81              ldd R17,y+2
 02D0 2B81              ldd R18,y+3
 02D2 3C81              ldd R19,y+4
 02D4 00D0              rcall _cosf
 02D6 1801              movw R2,R16
 02D8 2901              movw R4,R18
 02DA FB01              movw R30,R22
 02DC 6180              ldd R6,z+1
 02DE 7280              ldd R7,z+2
 02E0 8380              ldd R8,z+3
 02E2 9480              ldd R9,z+4
 02E4 00E0              ldi R16,<L40
 02E6 10E0              ldi R17,>L40
 02E8 00D0              rcall lpm32
 02EA 5A92              st -y,R5
 02EC 4A92              st -y,R4
 02EE 3A92              st -y,R3
 02F0 2A92              st -y,R2
 02F2 00D0              rcall fpmule2x
 02F4 8301              movw R16,R6
 02F6 9401              movw R18,R8
 02F8 00D0              rcall fpadd2
 02FA E0E0              ldi R30,<_g_chCMDBuffer+3
 02FC F0E0              ldi R31,>_g_chCMDBuffer+3
 02FE 0083              std z+0,R16
 0300 1183              std z+1,R17
 0302 2283              std z+2,R18
 0304 3383              std z+3,R19
 0306                   .dbline 190
 0306           ;                 TYPE_CONVERSION(&pcData[1],float) + 
 0306           ;                 RELATIVE_L * cos(fAbsoluteAngle);
 0306           ;         }
 0306           L36:
 0306                   .dbline 191
 0306           ;         if (chCTR & BIT(1))
 0306 41FF              sbrs R20,1
 0308 22C0              rjmp L41
 030A           X6:
 030A                   .dbline 192
 030A           ;         {
 030A                   .dbline 194
 030A           ;             //设置Y坐标
 030A           ;             g_chCMDBuffer[2] |= BIT(1);
 030A 80910200          lds R24,_g_chCMDBuffer+2
 030E 8260              ori R24,2
 0310 80930200          sts _g_chCMDBuffer+2,R24
 0314                   .dbline 195
 0314           ;             TYPE_CONVERSION(&g_chCMDBuffer[7],float) = 
 0314 0981              ldd R16,y+1
 0316 1A81              ldd R17,y+2
 0318 2B81              ldd R18,y+3
 031A 3C81              ldd R19,y+4
 031C 00D0              rcall _sinf
 031E 1801              movw R2,R16
 0320 2901              movw R4,R18
 0322 FB01              movw R30,R22
 0324 6580              ldd R6,z+5
 0326 7680              ldd R7,z+6
 0328 8780              ldd R8,z+7
 032A 9084              ldd R9,z+8
 032C 00E0              ldi R16,<L40
 032E 10E0              ldi R17,>L40
 0330 00D0              rcall lpm32
 0332 5A92              st -y,R5
 0334 4A92              st -y,R4
 0336 3A92              st -y,R3
 0338 2A92              st -y,R2
 033A 00D0              rcall fpmule2x
 033C 8301              movw R16,R6
 033E 9401              movw R18,R8
 0340 00D0              rcall fpadd2
 0342 E0E0              ldi R30,<_g_chCMDBuffer+7
 0344 F0E0              ldi R31,>_g_chCMDBuffer+7
 0346 0083              std z+0,R16
 0348 1183              std z+1,R17
 034A 2283              std z+2,R18
 034C 3383              std z+3,R19
 034E                   .dbline 198
 034E           ;                 TYPE_CONVERSION(&pcData[5],float) +
 034E           ;                 RELATIVE_L * sin(fAbsoluteAngle);
 034E           ;         }
 034E           L41:
 034E                   .dbline 200
 034E           ;         
 034E           ;         if (chCTR & 0x07)
 034E 842F              mov R24,R20
 0350 8770              andi R24,7
 0352 D9F0              breq L45
 0354           X7:
 0354                   .dbline 201
 0354           ;         {
 0354                   .dbline 202
 0354           ;             UINT8 n = 0;
 0354                   .dbline 203
 0354           ;             BYTE chXOR = 0;
 0354 AA24              clr R10
 0356                   .dbline 205
 0356           ;             
 0356           ;             for (n = 1;n < 15;n++)
 0356 41E0              ldi R20,1
 0358 09C0              rjmp L50
 035A           L47:
 035A                   .dbline 206
 035A           ;             {
 035A                   .dbline 207
 035A           ;                 chXOR ^= g_chCMDBuffer[n];
 035A 80E0              ldi R24,<_g_chCMDBuffer
 035C 90E0              ldi R25,>_g_chCMDBuffer
 035E E42F              mov R30,R20
 0360 FF27              clr R31
 0362 E80F              add R30,R24
 0364 F91F              adc R31,R25
 0366 2080              ldd R2,z+0
 0368 A224              eor R10,R2
 036A                   .dbline 208
 036A           ;             }
 036A           L48:
 036A                   .dbline 205
 036A 4395              inc R20
 036C           L50:
 036C                   .dbline 205
 036C 4F30              cpi R20,15
 036E A8F3              brlo L47
 0370           X8:
 0370                   .dbline 209
 0370           ;             g_chCMDBuffer[15] = chXOR;
 0370 A0920F00          sts _g_chCMDBuffer+15,R10
 0374                   .dbline 211
 0374           ;         
 0374           ;             SAFE_CODE_PERFORMANCE
 0374                   .dbline 211
 0374 AFB6              in R10,0x3f
 0376                   .dbline 211
 0376 F894              cli
 0378                   .dbline 211
 0378 81E0              ldi R24,1
 037A 80930000          sts _g_bIfSendCMD,R24
 037E                   .dbline 211
 037E 2224              clr R2
 0380 20920000          sts _g_bIfStartCMD,R2
 0384                   .dbline 211
 0384 20920000          sts _g_bIfSendHead,R2
 0388                   .dbline 211
 0388                   .dbline 211
 0388 AFBE              out 0x3f,R10
 038A                   .dbline 211
 038A                   .dbline 217
 038A           ;             (
 038A           ;                 g_bIfSendCMD = TRUE;
 038A           ;                 g_bIfStartCMD = FALSE;
 038A           ;                 g_bIfSendHead = FALSE;
 038A           ;             )
 038A           ;         }
 038A           L45:
 038A                   .dbline 219
 038A           ; 
 038A           ;     }
 038A                   .dbline 222
 038A           ;     
 038A           ;     
 038A           ;     Send_MSG(COM_CMD_SET,NULL,0);
 038A 2224              clr R2
 038C 2882              std y+0,R2
 038E 2227              clr R18
 0390 3327              clr R19
 0392 01EA              ldi R16,161
 0394 E7DE              rcall _Send_MSG
 0396                   .dbline 224
 0396           ;     
 0396           ;     return TRUE;
 0396 01E0              ldi R16,1
 0398                   .dbline -2
 0398           L27:
 0398                   .dbline 0 ; func end
 0398 2596              adiw R28,5
 039A 00C0              rjmp pop_xgsetF00C
 039C                   .dbsym r cflags0 10 c
 039C                   .dbsym r n1 20 c
 039C                   .dbsym r chXOR0 10 c
 039C                   .dbsym l fAbsoluteAngle0 1 D
 039C                   .dbsym r chCTR0 20 c
 039C                   .dbsym r pcData 22 pc
 039C                   .dbsym r pMsgItem 20 pS[MsgItem]
 039C                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\单片机\ROOBCO~1\全向定位系统\坐标转换模块\相对定位模块应用版\Relative_Locate_Module\Communication_LIB.c
 0000           _SFPLocateModuleShellMsgItem::
 0000                   .blkb 32
 0020                   .dbsym e SFPLocateModuleShellMsgItem _SFPLocateModuleShellMsgItem A[32:32]c
 0020           _SFPLocateModuleShellBuffer::
 0020                   .blkb 32
 0040                   .dbsym e SFPLocateModuleShellBuffer _SFPLocateModuleShellBuffer A[32:32]c
 0040           _SFPLocateModuleShell::
 0040                   .blkb 37
 0065                   .dbsym e SFPLocateModuleShell _SFPLocateModuleShell S[SerialFrameProcess]
 0065           _MSGMapLocateModuleShellItemArray::
 0065                   .blkb 6
 006B                   .dbsym e MSGMapLocateModuleShellItemArray _MSGMapLocateModuleShellItemArray A[6:2]S[MsgMapItem]
 006B           _MSGMapLocateModuleShell::
 006B                   .blkb 3
 006E                   .dbsym e MSGMapLocateModuleShell _MSGMapLocateModuleShell S[MsgMap]
                        .area lit(rom, con, rel)
 000C           L40:
 000C 00801743          .word 0x8000,0x4317
 0010           L35:
 0010 DB0F4940          .word 0xfdb,0x4049
 0014           L33:
 0014 DB0FC93B          .word 0xfdb,0x3bc9
 0018           ; }
                        .area  func_lit
 0000 0000      PL_UARTaddDataToTxBuff: .word `_UARTaddDataToTxBuff
 0002 0000      PL_UARTgetDataFromRxBuff:       .word `_UARTgetDataFromRxBuff
 0004 0000      PL_SFP_NULL_Peek_Data_Function: .word `_SFP_NULL_Peek_Data_Function
 0006 0000      PL_SFP_NULL_Output_Data_Function:       .word `_SFP_NULL_Output_Data_Function
 0008 0000      PL_SFP_NULL_Input_Data_Function:        .word `_SFP_NULL_Input_Data_Function
 000A 0000      PL_ADT_Queue_Peek_From_Buffer:  .word `_ADT_Queue_Peek_From_Buffer
 000C 0000      PL_ADT_Queue_Check_Empty:       .word `_ADT_Queue_Check_Empty
 000E 0000      PL_ADT_Queue_Get_From_Buffer:   .word `_ADT_Queue_Get_From_Buffer
 0010 0000      PL_ADT_Queue_Add_To_Buffer:     .word `_ADT_Queue_Add_To_Buffer
 0012 C700      PL_MSGMap_Acknowledge:  .word `_MSGMap_Acknowledge
 0014 0601      PL_MSGMap_Set:  .word `_MSGMap_Set
 0016 0000      PL_MSG_NULL_PROC:       .word `_MSG_NULL_PROC

⌨️ 快捷键说明

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