纪念逝去的RC、PC、NUC、REF_GET
This commit is contained in:
parent
2978659f20
commit
d6e889b0a7
@ -57,11 +57,11 @@ target_sources(${CMAKE_PROJECT_NAME} PRIVATE
|
|||||||
|
|
||||||
# User/component sources
|
# User/component sources
|
||||||
User/component/ahrs.c
|
User/component/ahrs.c
|
||||||
User/component/at9s_pro_cmd.c
|
|
||||||
User/component/filter.c
|
User/component/filter.c
|
||||||
User/component/mixer.c
|
User/component/mixer.c
|
||||||
User/component/pid.c
|
User/component/pid.c
|
||||||
User/component/user_math.c
|
User/component/user_math.c
|
||||||
|
User/component/crc16.c
|
||||||
|
|
||||||
# User/device sources
|
# User/device sources
|
||||||
User/device/dr16.c
|
User/device/dr16.c
|
||||||
|
|||||||
107627
MDK-ARM/JLinkLog.txt
107627
MDK-ARM/JLinkLog.txt
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -103,7 +103,7 @@
|
|||||||
<bEvRecOn>1</bEvRecOn>
|
<bEvRecOn>1</bEvRecOn>
|
||||||
<bSchkAxf>0</bSchkAxf>
|
<bSchkAxf>0</bSchkAxf>
|
||||||
<bTchkAxf>0</bTchkAxf>
|
<bTchkAxf>0</bTchkAxf>
|
||||||
<nTsel>6</nTsel>
|
<nTsel>4</nTsel>
|
||||||
<sDll></sDll>
|
<sDll></sDll>
|
||||||
<sDllPa></sDllPa>
|
<sDllPa></sDllPa>
|
||||||
<sDlgDll></sDlgDll>
|
<sDlgDll></sDlgDll>
|
||||||
@ -114,13 +114,13 @@
|
|||||||
<tDlgDll></tDlgDll>
|
<tDlgDll></tDlgDll>
|
||||||
<tDlgPa></tDlgPa>
|
<tDlgPa></tDlgPa>
|
||||||
<tIfile></tIfile>
|
<tIfile></tIfile>
|
||||||
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
|
<pMon>Segger\JL2CM3.dll</pMon>
|
||||||
</DebugOpt>
|
</DebugOpt>
|
||||||
<TargetDriverDllRegistry>
|
<TargetDriverDllRegistry>
|
||||||
<SetRegEntry>
|
<SetRegEntry>
|
||||||
<Number>0</Number>
|
<Number>0</Number>
|
||||||
<Key>DLGUARM</Key>
|
<Key>DLGUARM</Key>
|
||||||
<Name>(105=-1,-1,-1,-1,0)</Name>
|
<Name>d</Name>
|
||||||
</SetRegEntry>
|
</SetRegEntry>
|
||||||
<SetRegEntry>
|
<SetRegEntry>
|
||||||
<Number>0</Number>
|
<Number>0</Number>
|
||||||
@ -157,57 +157,9 @@
|
|||||||
<Bp>
|
<Bp>
|
||||||
<Number>0</Number>
|
<Number>0</Number>
|
||||||
<Type>0</Type>
|
<Type>0</Type>
|
||||||
<LineNumber>577</LineNumber>
|
|
||||||
<EnabledFlag>1</EnabledFlag>
|
|
||||||
<Address>134235006</Address>
|
|
||||||
<ByteObject>0</ByteObject>
|
|
||||||
<HtxType>0</HtxType>
|
|
||||||
<ManyObjects>0</ManyObjects>
|
|
||||||
<SizeOfObject>0</SizeOfObject>
|
|
||||||
<BreakByAccess>0</BreakByAccess>
|
|
||||||
<BreakIfRCount>1</BreakIfRCount>
|
|
||||||
<Filename>..\User\module\cmd.c</Filename>
|
|
||||||
<ExecCommand></ExecCommand>
|
|
||||||
<Expression>\\hero\../User/module/cmd.c\577</Expression>
|
|
||||||
</Bp>
|
|
||||||
<Bp>
|
|
||||||
<Number>1</Number>
|
|
||||||
<Type>0</Type>
|
|
||||||
<LineNumber>585</LineNumber>
|
|
||||||
<EnabledFlag>1</EnabledFlag>
|
|
||||||
<Address>134234566</Address>
|
|
||||||
<ByteObject>0</ByteObject>
|
|
||||||
<HtxType>0</HtxType>
|
|
||||||
<ManyObjects>0</ManyObjects>
|
|
||||||
<SizeOfObject>0</SizeOfObject>
|
|
||||||
<BreakByAccess>0</BreakByAccess>
|
|
||||||
<BreakIfRCount>1</BreakIfRCount>
|
|
||||||
<Filename>..\User\module\cmd.c</Filename>
|
|
||||||
<ExecCommand></ExecCommand>
|
|
||||||
<Expression>\\hero\../User/module/cmd.c\585</Expression>
|
|
||||||
</Bp>
|
|
||||||
<Bp>
|
|
||||||
<Number>2</Number>
|
|
||||||
<Type>0</Type>
|
|
||||||
<LineNumber>592</LineNumber>
|
|
||||||
<EnabledFlag>1</EnabledFlag>
|
|
||||||
<Address>134234680</Address>
|
|
||||||
<ByteObject>0</ByteObject>
|
|
||||||
<HtxType>0</HtxType>
|
|
||||||
<ManyObjects>0</ManyObjects>
|
|
||||||
<SizeOfObject>0</SizeOfObject>
|
|
||||||
<BreakByAccess>0</BreakByAccess>
|
|
||||||
<BreakIfRCount>1</BreakIfRCount>
|
|
||||||
<Filename>..\User\module\cmd.c</Filename>
|
|
||||||
<ExecCommand></ExecCommand>
|
|
||||||
<Expression>\\hero\../User/module/cmd.c\592</Expression>
|
|
||||||
</Bp>
|
|
||||||
<Bp>
|
|
||||||
<Number>3</Number>
|
|
||||||
<Type>0</Type>
|
|
||||||
<LineNumber>594</LineNumber>
|
<LineNumber>594</LineNumber>
|
||||||
<EnabledFlag>1</EnabledFlag>
|
<EnabledFlag>1</EnabledFlag>
|
||||||
<Address>134234724</Address>
|
<Address>134236724</Address>
|
||||||
<ByteObject>0</ByteObject>
|
<ByteObject>0</ByteObject>
|
||||||
<HtxType>0</HtxType>
|
<HtxType>0</HtxType>
|
||||||
<ManyObjects>0</ManyObjects>
|
<ManyObjects>0</ManyObjects>
|
||||||
@ -219,20 +171,84 @@
|
|||||||
<Expression>\\hero\../User/module/cmd.c\594</Expression>
|
<Expression>\\hero\../User/module/cmd.c\594</Expression>
|
||||||
</Bp>
|
</Bp>
|
||||||
<Bp>
|
<Bp>
|
||||||
<Number>4</Number>
|
<Number>1</Number>
|
||||||
<Type>0</Type>
|
<Type>0</Type>
|
||||||
<LineNumber>597</LineNumber>
|
<LineNumber>578</LineNumber>
|
||||||
<EnabledFlag>1</EnabledFlag>
|
<EnabledFlag>1</EnabledFlag>
|
||||||
<Address>134234756</Address>
|
<Address>0</Address>
|
||||||
<ByteObject>0</ByteObject>
|
<ByteObject>0</ByteObject>
|
||||||
<HtxType>0</HtxType>
|
<HtxType>0</HtxType>
|
||||||
<ManyObjects>0</ManyObjects>
|
<ManyObjects>0</ManyObjects>
|
||||||
<SizeOfObject>0</SizeOfObject>
|
<SizeOfObject>0</SizeOfObject>
|
||||||
<BreakByAccess>0</BreakByAccess>
|
<BreakByAccess>0</BreakByAccess>
|
||||||
<BreakIfRCount>1</BreakIfRCount>
|
<BreakIfRCount>0</BreakIfRCount>
|
||||||
<Filename>..\User\module\cmd.c</Filename>
|
<Filename>..\User\module\cmd.c</Filename>
|
||||||
<ExecCommand></ExecCommand>
|
<ExecCommand></ExecCommand>
|
||||||
<Expression>\\hero\../User/module/cmd.c\597</Expression>
|
<Expression></Expression>
|
||||||
|
</Bp>
|
||||||
|
<Bp>
|
||||||
|
<Number>2</Number>
|
||||||
|
<Type>0</Type>
|
||||||
|
<LineNumber>586</LineNumber>
|
||||||
|
<EnabledFlag>1</EnabledFlag>
|
||||||
|
<Address>0</Address>
|
||||||
|
<ByteObject>0</ByteObject>
|
||||||
|
<HtxType>0</HtxType>
|
||||||
|
<ManyObjects>0</ManyObjects>
|
||||||
|
<SizeOfObject>0</SizeOfObject>
|
||||||
|
<BreakByAccess>0</BreakByAccess>
|
||||||
|
<BreakIfRCount>0</BreakIfRCount>
|
||||||
|
<Filename>..\User\module\cmd.c</Filename>
|
||||||
|
<ExecCommand></ExecCommand>
|
||||||
|
<Expression></Expression>
|
||||||
|
</Bp>
|
||||||
|
<Bp>
|
||||||
|
<Number>3</Number>
|
||||||
|
<Type>0</Type>
|
||||||
|
<LineNumber>593</LineNumber>
|
||||||
|
<EnabledFlag>1</EnabledFlag>
|
||||||
|
<Address>0</Address>
|
||||||
|
<ByteObject>0</ByteObject>
|
||||||
|
<HtxType>0</HtxType>
|
||||||
|
<ManyObjects>0</ManyObjects>
|
||||||
|
<SizeOfObject>0</SizeOfObject>
|
||||||
|
<BreakByAccess>0</BreakByAccess>
|
||||||
|
<BreakIfRCount>0</BreakIfRCount>
|
||||||
|
<Filename>..\User\module\cmd.c</Filename>
|
||||||
|
<ExecCommand></ExecCommand>
|
||||||
|
<Expression></Expression>
|
||||||
|
</Bp>
|
||||||
|
<Bp>
|
||||||
|
<Number>4</Number>
|
||||||
|
<Type>0</Type>
|
||||||
|
<LineNumber>595</LineNumber>
|
||||||
|
<EnabledFlag>1</EnabledFlag>
|
||||||
|
<Address>0</Address>
|
||||||
|
<ByteObject>0</ByteObject>
|
||||||
|
<HtxType>0</HtxType>
|
||||||
|
<ManyObjects>0</ManyObjects>
|
||||||
|
<SizeOfObject>0</SizeOfObject>
|
||||||
|
<BreakByAccess>0</BreakByAccess>
|
||||||
|
<BreakIfRCount>0</BreakIfRCount>
|
||||||
|
<Filename>..\User\module\cmd.c</Filename>
|
||||||
|
<ExecCommand></ExecCommand>
|
||||||
|
<Expression></Expression>
|
||||||
|
</Bp>
|
||||||
|
<Bp>
|
||||||
|
<Number>5</Number>
|
||||||
|
<Type>0</Type>
|
||||||
|
<LineNumber>598</LineNumber>
|
||||||
|
<EnabledFlag>1</EnabledFlag>
|
||||||
|
<Address>0</Address>
|
||||||
|
<ByteObject>0</ByteObject>
|
||||||
|
<HtxType>0</HtxType>
|
||||||
|
<ManyObjects>0</ManyObjects>
|
||||||
|
<SizeOfObject>0</SizeOfObject>
|
||||||
|
<BreakByAccess>0</BreakByAccess>
|
||||||
|
<BreakIfRCount>0</BreakIfRCount>
|
||||||
|
<Filename>..\User\module\cmd.c</Filename>
|
||||||
|
<ExecCommand></ExecCommand>
|
||||||
|
<Expression></Expression>
|
||||||
</Bp>
|
</Bp>
|
||||||
</Breakpoint>
|
</Breakpoint>
|
||||||
<WatchWindow1>
|
<WatchWindow1>
|
||||||
@ -333,6 +349,11 @@
|
|||||||
<WinNumber>2</WinNumber>
|
<WinNumber>2</WinNumber>
|
||||||
<ItemText>robot_config</ItemText>
|
<ItemText>robot_config</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>5</count>
|
||||||
|
<WinNumber>2</WinNumber>
|
||||||
|
<ItemText>\\hero\../User/task/cmd.c\cmd.input.rc.data</ItemText>
|
||||||
|
</Ww>
|
||||||
</WatchWindow2>
|
</WatchWindow2>
|
||||||
<Tracepoint>
|
<Tracepoint>
|
||||||
<THDelay>0</THDelay>
|
<THDelay>0</THDelay>
|
||||||
@ -1316,6 +1337,30 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>7</GroupNumber>
|
||||||
|
<FileNumber>74</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>..\User\device\dr16.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>dr16.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>7</GroupNumber>
|
||||||
|
<FileNumber>75</FileNumber>
|
||||||
|
<FileType>5</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>..\User\device\dr16.h</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>dr16.h</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
</Group>
|
</Group>
|
||||||
|
|
||||||
<Group>
|
<Group>
|
||||||
@ -1326,7 +1371,7 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>74</FileNumber>
|
<FileNumber>76</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@ -1338,7 +1383,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>75</FileNumber>
|
<FileNumber>77</FileNumber>
|
||||||
<FileType>5</FileType>
|
<FileType>5</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@ -1348,30 +1393,6 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
|
||||||
<GroupNumber>8</GroupNumber>
|
|
||||||
<FileNumber>76</FileNumber>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<tvExp>0</tvExp>
|
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
|
||||||
<bDave2>0</bDave2>
|
|
||||||
<PathWithFileName>..\User\component\at9s_pro_cmd.c</PathWithFileName>
|
|
||||||
<FilenameWithoutPath>at9s_pro_cmd.c</FilenameWithoutPath>
|
|
||||||
<RteFlg>0</RteFlg>
|
|
||||||
<bShared>0</bShared>
|
|
||||||
</File>
|
|
||||||
<File>
|
|
||||||
<GroupNumber>8</GroupNumber>
|
|
||||||
<FileNumber>77</FileNumber>
|
|
||||||
<FileType>5</FileType>
|
|
||||||
<tvExp>0</tvExp>
|
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
|
||||||
<bDave2>0</bDave2>
|
|
||||||
<PathWithFileName>..\User\component\at9s_pro_cmd.h</PathWithFileName>
|
|
||||||
<FilenameWithoutPath>at9s_pro_cmd.h</FilenameWithoutPath>
|
|
||||||
<RteFlg>0</RteFlg>
|
|
||||||
<bShared>0</bShared>
|
|
||||||
</File>
|
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>78</FileNumber>
|
<FileNumber>78</FileNumber>
|
||||||
|
|||||||
@ -778,6 +778,16 @@
|
|||||||
<FileType>5</FileType>
|
<FileType>5</FileType>
|
||||||
<FilePath>..\User\device\vofa.h</FilePath>
|
<FilePath>..\User\device\vofa.h</FilePath>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>dr16.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>..\User\device\dr16.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>dr16.h</FileName>
|
||||||
|
<FileType>5</FileType>
|
||||||
|
<FilePath>..\User\device\dr16.h</FilePath>
|
||||||
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
@ -793,16 +803,6 @@
|
|||||||
<FileType>5</FileType>
|
<FileType>5</FileType>
|
||||||
<FilePath>..\User\component\ahrs.h</FilePath>
|
<FilePath>..\User\component\ahrs.h</FilePath>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
|
||||||
<FileName>at9s_pro_cmd.c</FileName>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<FilePath>..\User\component\at9s_pro_cmd.c</FilePath>
|
|
||||||
</File>
|
|
||||||
<File>
|
|
||||||
<FileName>at9s_pro_cmd.h</FileName>
|
|
||||||
<FileType>5</FileType>
|
|
||||||
<FilePath>..\User\component\at9s_pro_cmd.h</FilePath>
|
|
||||||
</File>
|
|
||||||
<File>
|
<File>
|
||||||
<FileName>filter.c</FileName>
|
<FileName>filter.c</FileName>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@ -1,5 +1,6 @@
|
|||||||
hero/cmd.o: ..\User\module\cmd.c ..\User\module\cmd.h \
|
hero/cmd.o: ..\User\module\cmd.c \
|
||||||
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdint.h \
|
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdint.h \
|
||||||
|
D:\cangming\ARM\ARMCLANG\Bin\..\include\string.h ..\User\module\cmd.h \
|
||||||
..\User\module\chassis.h \
|
..\User\module\chassis.h \
|
||||||
..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h \
|
..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h \
|
||||||
D:\cangming\ARM\ARMCLANG\Bin\..\include\stddef.h ..\User\bsp\can.h \
|
D:\cangming\ARM\ARMCLANG\Bin\..\include\stddef.h ..\User\bsp\can.h \
|
||||||
@ -58,4 +59,4 @@ hero/cmd.o: ..\User\module\cmd.c ..\User\module\cmd.h \
|
|||||||
..\User\device\device.h ..\User\module\gimbal.h \
|
..\User\device\device.h ..\User\module\gimbal.h \
|
||||||
..\User\component\ahrs.h ..\User\component\pid.h \
|
..\User\component\ahrs.h ..\User\component\pid.h \
|
||||||
..\User\device\motor_dm.h ..\User\module\shoot.h ..\Core\Inc\main.h \
|
..\User\device\motor_dm.h ..\User\module\shoot.h ..\Core\Inc\main.h \
|
||||||
..\User\device\at9s_pro.h ..\User\bsp\time.h
|
..\User\device\at9s_pro.h ..\User\device\vt13.h ..\User\bsp\time.h
|
||||||
|
|||||||
Binary file not shown.
@ -11,15 +11,15 @@ hero/cmd_1.o: ..\User\task\cmd.c ..\User\task\user_task.h \
|
|||||||
..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h \
|
..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h \
|
||||||
..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h \
|
..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h \
|
||||||
..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h \
|
..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h \
|
||||||
..\User\device\at9s_pro.h ..\User\component\user_math.h \
|
..\User\device\dr16.h ..\User\component\user_math.h \
|
||||||
D:\cangming\ARM\ARMCLANG\Bin\..\include\float.h \
|
D:\cangming\ARM\ARMCLANG\Bin\..\include\float.h \
|
||||||
D:\cangming\ARM\ARMCLANG\Bin\..\include\math.h \
|
D:\cangming\ARM\ARMCLANG\Bin\..\include\math.h \
|
||||||
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdbool.h \
|
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdbool.h \
|
||||||
..\User\device\device.h ..\User\module\config.h \
|
..\User\device\device.h ..\User\device\at9s_pro.h \
|
||||||
..\User\component\pid.h ..\User\component\filter.h \
|
..\User\module\config.h ..\User\component\pid.h \
|
||||||
..\User\device\motor.h ..\User\device\motor_rm.h ..\User\bsp\can.h \
|
..\User\component\filter.h ..\User\device\motor.h \
|
||||||
..\Core\Inc\can.h ..\Core\Inc\main.h \
|
..\User\device\motor_rm.h ..\User\bsp\can.h ..\Core\Inc\can.h \
|
||||||
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h \
|
..\Core\Inc\main.h ..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h \
|
||||||
..\Core\Inc\stm32f4xx_hal_conf.h \
|
..\Core\Inc\stm32f4xx_hal_conf.h \
|
||||||
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc.h \
|
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc.h \
|
||||||
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_def.h \
|
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_def.h \
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -11,11 +11,6 @@ hero/ctrl_shoot.o: ..\User\task\ctrl_shoot.c ..\User\task\user_task.h \
|
|||||||
..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h \
|
..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h \
|
||||||
..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h \
|
..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h \
|
||||||
..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h \
|
..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h \
|
||||||
..\User\component\at9s_pro_cmd.h \
|
|
||||||
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdbool.h \
|
|
||||||
..\User\device\at9s_pro.h ..\User\component\user_math.h \
|
|
||||||
D:\cangming\ARM\ARMCLANG\Bin\..\include\float.h \
|
|
||||||
D:\cangming\ARM\ARMCLANG\Bin\..\include\math.h ..\User\device\device.h \
|
|
||||||
..\User\module\shoot.h ..\Core\Inc\main.h \
|
..\User\module\shoot.h ..\Core\Inc\main.h \
|
||||||
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h \
|
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h \
|
||||||
..\Core\Inc\stm32f4xx_hal_conf.h \
|
..\Core\Inc\stm32f4xx_hal_conf.h \
|
||||||
@ -50,9 +45,13 @@ hero/ctrl_shoot.o: ..\User\task\ctrl_shoot.c ..\User\task\user_task.h \
|
|||||||
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h \
|
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h \
|
||||||
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h \
|
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h \
|
||||||
..\User\component\pid.h ..\User\component\filter.h \
|
..\User\component\pid.h ..\User\component\filter.h \
|
||||||
..\User\device\motor_rm.h ..\User\device\motor.h ..\User\bsp\can.h \
|
..\User\component\user_math.h \
|
||||||
..\Core\Inc\can.h ..\Core\Inc\main.h ..\User\bsp\bsp.h \
|
D:\cangming\ARM\ARMCLANG\Bin\..\include\float.h \
|
||||||
..\User\bsp\mm.h \
|
D:\cangming\ARM\ARMCLANG\Bin\..\include\math.h \
|
||||||
|
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdbool.h \
|
||||||
|
..\User\device\motor_rm.h ..\User\device\motor.h \
|
||||||
|
..\User\device\device.h ..\User\bsp\can.h ..\Core\Inc\can.h \
|
||||||
|
..\Core\Inc\main.h ..\User\bsp\bsp.h ..\User\bsp\mm.h \
|
||||||
..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os.h \
|
..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os.h \
|
||||||
..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h \
|
..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h \
|
||||||
..\User\module\config.h ..\User\module\gimbal.h \
|
..\User\module\config.h ..\User\module\gimbal.h \
|
||||||
|
|||||||
Binary file not shown.
@ -2,14 +2,12 @@ hero/dr16.o: ..\User\device\dr16.c ..\User\device\dr16.h \
|
|||||||
..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h \
|
..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h \
|
||||||
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdint.h \
|
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdint.h \
|
||||||
D:\cangming\ARM\ARMCLANG\Bin\..\include\stddef.h \
|
D:\cangming\ARM\ARMCLANG\Bin\..\include\stddef.h \
|
||||||
..\User\component\dr16_cmd.h \
|
..\User\component\user_math.h \
|
||||||
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdbool.h \
|
|
||||||
..\User\component\component.h ..\User\component\user_math.h \
|
|
||||||
D:\cangming\ARM\ARMCLANG\Bin\..\include\float.h \
|
D:\cangming\ARM\ARMCLANG\Bin\..\include\float.h \
|
||||||
D:\cangming\ARM\ARMCLANG\Bin\..\include\math.h ..\User\device\device.h \
|
D:\cangming\ARM\ARMCLANG\Bin\..\include\math.h \
|
||||||
D:\cangming\ARM\ARMCLANG\Bin\..\include\string.h ..\User\bsp\uart.h \
|
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdbool.h \
|
||||||
..\Core\Inc\usart.h ..\Core\Inc\main.h \
|
..\User\device\device.h ..\User\bsp\uart.h ..\Core\Inc\usart.h \
|
||||||
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h \
|
..\Core\Inc\main.h ..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h \
|
||||||
..\Core\Inc\stm32f4xx_hal_conf.h \
|
..\Core\Inc\stm32f4xx_hal_conf.h \
|
||||||
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc.h \
|
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc.h \
|
||||||
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_def.h \
|
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_def.h \
|
||||||
@ -41,4 +39,5 @@ hero/dr16.o: ..\User\device\dr16.c ..\User\device\dr16.h \
|
|||||||
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h \
|
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h \
|
||||||
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h \
|
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h \
|
||||||
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h \
|
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h \
|
||||||
..\User\bsp\bsp.h
|
..\User\bsp\bsp.h ..\User\bsp\time.h \
|
||||||
|
D:\cangming\ARM\ARMCLANG\Bin\..\include\string.h
|
||||||
|
|||||||
BIN
MDK-ARM/hero/dr16.o
Normal file
BIN
MDK-ARM/hero/dr16.o
Normal file
Binary file not shown.
Binary file not shown.
@ -17,12 +17,12 @@ Library Manager: ArmAr.exe V6.16
|
|||||||
Hex Converter: FromElf.exe V6.16
|
Hex Converter: FromElf.exe V6.16
|
||||||
CPU DLL: SARMCM3.DLL V5.34.0.0
|
CPU DLL: SARMCM3.DLL V5.34.0.0
|
||||||
Dialog DLL: DCM.DLL V1.17.3.0
|
Dialog DLL: DCM.DLL V1.17.3.0
|
||||||
Target DLL: STLink\ST-LINKIII-KEIL_SWO.dll V3.0.8.0
|
Target DLL: Segger\JL2CM3.dll V2.99.38.0
|
||||||
Dialog DLL: TCM.DLL V1.48.0.0
|
Dialog DLL: TCM.DLL V1.48.0.0
|
||||||
|
|
||||||
<h2>Project:</h2>
|
<h2>Project:</h2>
|
||||||
D:\CUBEMX\hero\god-yuan-hero\MDK-ARM\hero.uvprojx
|
D:\CUBEMX\hero\god-yuan-hero\MDK-ARM\hero.uvprojx
|
||||||
Project File Date: 11/07/2025
|
Project File Date: 11/12/2025
|
||||||
|
|
||||||
<h2>Output:</h2>
|
<h2>Output:</h2>
|
||||||
*** Using Compiler 'V6.16', folder: 'D:\cangming\ARM\ARMCLANG\Bin'
|
*** Using Compiler 'V6.16', folder: 'D:\cangming\ARM\ARMCLANG\Bin'
|
||||||
@ -31,11 +31,31 @@ Note: source file '..\User\bsp\can.c' - object file renamed from 'hero\can.o' to
|
|||||||
Note: source file '..\User\bsp\gpio.c' - object file renamed from 'hero\gpio.o' to 'hero\gpio_1.o'.
|
Note: source file '..\User\bsp\gpio.c' - object file renamed from 'hero\gpio.o' to 'hero\gpio_1.o'.
|
||||||
Note: source file '..\User\bsp\spi.c' - object file renamed from 'hero\spi.o' to 'hero\spi_1.o'.
|
Note: source file '..\User\bsp\spi.c' - object file renamed from 'hero\spi.o' to 'hero\spi_1.o'.
|
||||||
Note: source file '..\User\task\cmd.c' - object file renamed from 'hero\cmd.o' to 'hero\cmd_1.o'.
|
Note: source file '..\User\task\cmd.c' - object file renamed from 'hero\cmd.o' to 'hero\cmd_1.o'.
|
||||||
|
compiling rc.c...
|
||||||
|
../User/module/cmd.c(25): warning: enumeration values 'CMD_SRC_NUM' and 'CMD_SRC_ERR' not handled in switch [-Wswitch]
|
||||||
|
switch (source) {
|
||||||
|
^
|
||||||
|
../User/module/cmd.c(102): error: unknown type name 'DR16_DataPC_t'
|
||||||
|
DR16_DataPC_t dr16;
|
||||||
|
^
|
||||||
|
../User/module/cmd.c(105): error: unknown type name 'DR16_DataPC_t'
|
||||||
|
DR16_DataPC_t dr16;
|
||||||
|
^
|
||||||
|
../User/module/cmd.c(121): error: no member named 'dr16' in 'union rc_inputdata_u'
|
||||||
|
pc_data_buffer.dr16= rc_buffer.dr16.data.pc;
|
||||||
|
~~~~~~~~~ ^
|
||||||
|
../User/module/cmd.c(122): error: no member named 'dr16' in 'union rc_inputdata_u'
|
||||||
|
rc->online = rc->data->dr16.header.online;
|
||||||
|
~~~~~~~~ ^
|
||||||
|
../User/module/cmd.c(131): error: no member named 'dr16' in 'union rc_inputdata_u'
|
||||||
|
pc->online=rc_buffer.dr16.header.online;
|
||||||
|
~~~~~~~~~ ^
|
||||||
|
../User/module/cmd.c(259): error: no member named 'online' in 'AT9S_t'
|
||||||
|
c->output.shoot.cmd.online = at9s_out.online;
|
||||||
|
~~~~~~~~ ^
|
||||||
|
1 warning and 6 errors generated.
|
||||||
compiling cmd.c...
|
compiling cmd.c...
|
||||||
linking...
|
"hero\hero.axf" - 6 Error(s), 1 Warning(s).
|
||||||
Program Size: Code=91640 RO-data=1216 RW-data=880 ZI-data=43712
|
|
||||||
FromELF: creating hex file...
|
|
||||||
"hero\hero.axf" - 0 Error(s), 0 Warning(s).
|
|
||||||
|
|
||||||
<h2>Software Packages used:</h2>
|
<h2>Software Packages used:</h2>
|
||||||
|
|
||||||
@ -59,7 +79,8 @@ Package Vendor: Keil
|
|||||||
|
|
||||||
* Component: ARM::CMSIS:CORE:5.4.0
|
* Component: ARM::CMSIS:CORE:5.4.0
|
||||||
Include file: CMSIS\Core\Include\tz_context.h
|
Include file: CMSIS\Core\Include\tz_context.h
|
||||||
Build Time Elapsed: 00:00:04
|
Target not created.
|
||||||
|
Build Time Elapsed: 00:00:03
|
||||||
</pre>
|
</pre>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
10096
MDK-ARM/hero/hero.hex
10096
MDK-ARM/hero/hero.hex
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -56,8 +56,8 @@
|
|||||||
"hero\motor_dm.o"
|
"hero\motor_dm.o"
|
||||||
"hero\motor_rm.o"
|
"hero\motor_rm.o"
|
||||||
"hero\vofa.o"
|
"hero\vofa.o"
|
||||||
|
"hero\dr16.o"
|
||||||
"hero\ahrs.o"
|
"hero\ahrs.o"
|
||||||
"hero\at9s_pro_cmd.o"
|
|
||||||
"hero\filter.o"
|
"hero\filter.o"
|
||||||
"hero\pid.o"
|
"hero\pid.o"
|
||||||
"hero\user_math.o"
|
"hero\user_math.o"
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
|||||||
Dependencies for Project 'hero', Target 'hero': (DO NOT MODIFY !)
|
Dependencies for Project 'hero', Target 'hero': (DO NOT MODIFY !)
|
||||||
CompilerVersion: 6160000::V6.16::ARMCLANG
|
CompilerVersion: 6160000::V6.16::ARMCLANG
|
||||||
F (startup_stm32f407xx.s)(0x690DDC5A)(--target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -masm=auto -c
-gdwarf-3 -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-Wa,armasm,--pd,"__UVISION_VERSION SETA 534" -Wa,armasm,--pd,"_RTE_ SETA 1" -Wa,armasm,--pd,"STM32F407xx SETA 1" -Wa,armasm,--pd,"_RTE_ SETA 1"
-o hero/startup_stm32f407xx.o)
|
F (startup_stm32f407xx.s)(0x691468EA)(--target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -masm=auto -c
-gdwarf-3 -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-Wa,armasm,--pd,"__UVISION_VERSION SETA 534" -Wa,armasm,--pd,"_RTE_ SETA 1" -Wa,armasm,--pd,"STM32F407xx SETA 1" -Wa,armasm,--pd,"_RTE_ SETA 1"
-o hero/startup_stm32f407xx.o)
|
||||||
F (../Core/Src/main.c)(0x690CA974)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/main.o -MD)
|
F (../Core/Src/main.c)(0x690CA974)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/main.o -MD)
|
||||||
I (..\Core\Inc\main.h)(0x690CA974)
|
I (..\Core\Inc\main.h)(0x690CA974)
|
||||||
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h)(0x68AD823F)
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h)(0x68AD823F)
|
||||||
@ -139,7 +139,7 @@ I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h)(0x68AD823F)
|
|||||||
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h)(0x68AD823F)
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h)(0x68AD823F)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os.h)(0x68AD8208)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
||||||
I (..\User\task\user_task.h)(0x6900CCBC)
|
I (..\User\task\user_task.h)(0x690DF200)
|
||||||
F (../Core/Src/can.c)(0x690CA972)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/can.o -MD)
|
F (../Core/Src/can.c)(0x690CA972)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/can.o -MD)
|
||||||
I (..\Core\Inc\can.h)(0x690CA973)
|
I (..\Core\Inc\can.h)(0x690CA973)
|
||||||
I (..\Core\Inc\main.h)(0x690CA974)
|
I (..\Core\Inc\main.h)(0x690CA974)
|
||||||
@ -1677,8 +1677,8 @@ I (..\User\bsp\uart.h)(0x690DC361)
|
|||||||
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
||||||
I (..\User\bsp\bsp.h)(0x690DC361)
|
I (..\User\bsp\bsp.h)(0x690DC361)
|
||||||
F (..\User\bsp\uart.h)(0x690DC361)()
|
F (..\User\bsp\uart.h)(0x690DC361)()
|
||||||
F (..\User\device\AT9S_Pro.c)(0x6900CCBC)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/at9s_pro.o -MD)
|
F (..\User\device\AT9S_Pro.c)(0x69132759)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/at9s_pro.o -MD)
|
||||||
I (..\User\device\AT9S_Pro.h)(0x6900CCBC)
|
I (..\User\device\AT9S_Pro.h)(0x6913274F)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
||||||
@ -1686,7 +1686,7 @@ I (..\User\component\user_math.h)(0x690DD4C7)
|
|||||||
I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
|
I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
||||||
I (..\User\device\device.h)(0x690DC361)
|
I (..\User\device\device.h)(0x6911EB88)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\string.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\string.h)(0x6035A4A8)
|
||||||
I (..\User\bsp\uart.h)(0x690DC361)
|
I (..\User\bsp\uart.h)(0x690DC361)
|
||||||
I (..\Core\Inc\usart.h)(0x690CA973)
|
I (..\Core\Inc\usart.h)(0x690CA973)
|
||||||
@ -1724,7 +1724,7 @@ I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h)(0x68AD823F)
|
|||||||
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h)(0x68AD823F)
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h)(0x68AD823F)
|
||||||
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h)(0x68AD823F)
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h)(0x68AD823F)
|
||||||
I (..\User\bsp\bsp.h)(0x690DC361)
|
I (..\User\bsp\bsp.h)(0x690DC361)
|
||||||
F (..\User\device\AT9S_Pro.h)(0x6900CCBC)()
|
F (..\User\device\AT9S_Pro.h)(0x6913274F)()
|
||||||
F (..\User\device\bmi088.c)(0x690DC361)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/bmi088.o -MD)
|
F (..\User\device\bmi088.c)(0x690DC361)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/bmi088.o -MD)
|
||||||
I (..\User\device\bmi088.h)(0x690DC344)
|
I (..\User\device\bmi088.h)(0x690DC344)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
||||||
@ -1734,7 +1734,7 @@ I (..\User\component\user_math.h)(0x690DD4C7)
|
|||||||
I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
|
I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
||||||
I (..\User\device\device.h)(0x690DC361)
|
I (..\User\device\device.h)(0x6911EB88)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
||||||
I (..\Core\Inc\gpio.h)(0x690CA970)
|
I (..\Core\Inc\gpio.h)(0x690CA970)
|
||||||
I (..\Core\Inc\main.h)(0x690CA974)
|
I (..\Core\Inc\main.h)(0x690CA974)
|
||||||
@ -1777,17 +1777,17 @@ I (..\User\bsp\gpio.h)(0x690DC361)
|
|||||||
I (..\User\bsp\spi.h)(0x690DC361)
|
I (..\User\bsp\spi.h)(0x690DC361)
|
||||||
I (..\Core\Inc\spi.h)(0x690CA973)
|
I (..\Core\Inc\spi.h)(0x690CA973)
|
||||||
F (..\User\device\bmi088.h)(0x690DC344)()
|
F (..\User\device\bmi088.h)(0x690DC344)()
|
||||||
F (..\User\device\device.h)(0x690DC361)()
|
F (..\User\device\device.h)(0x6911EB88)()
|
||||||
F (..\User\device\motor.c)(0x690DC361)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/motor.o -MD)
|
F (..\User\device\motor.c)(0x690DC361)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/motor.o -MD)
|
||||||
I (..\User\device\motor.h)(0x690DC344)
|
I (..\User\device\motor.h)(0x690DC344)
|
||||||
I (..\User\device\device.h)(0x690DC361)
|
I (..\User\device\device.h)(0x6911EB88)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\string.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\string.h)(0x6035A4A8)
|
||||||
F (..\User\device\motor.h)(0x690DC344)()
|
F (..\User\device\motor.h)(0x690DC344)()
|
||||||
F (..\User\device\motor_dm.c)(0x690DC361)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/motor_dm.o -MD)
|
F (..\User\device\motor_dm.c)(0x690DC361)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/motor_dm.o -MD)
|
||||||
I (..\User\device\motor_dm.h)(0x690DC344)
|
I (..\User\device\motor_dm.h)(0x690DC344)
|
||||||
I (..\User\device\device.h)(0x690DC361)
|
I (..\User\device\device.h)(0x6911EB88)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
||||||
I (..\User\device\motor.h)(0x690DC344)
|
I (..\User\device\motor.h)(0x690DC344)
|
||||||
@ -1849,7 +1849,7 @@ F (..\User\device\motor_dm.h)(0x690DC344)()
|
|||||||
F (..\User\device\motor_rm.c)(0x690DC361)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/motor_rm.o -MD)
|
F (..\User\device\motor_rm.c)(0x690DC361)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/motor_rm.o -MD)
|
||||||
I (..\User\device\motor_rm.h)(0x690DC344)
|
I (..\User\device\motor_rm.h)(0x690DC344)
|
||||||
I (..\User\device\motor.h)(0x690DC344)
|
I (..\User\device\motor.h)(0x690DC344)
|
||||||
I (..\User\device\device.h)(0x690DC361)
|
I (..\User\device\device.h)(0x6911EB88)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
||||||
I (..\User\bsp\can.h)(0x690DC361)
|
I (..\User\bsp\can.h)(0x690DC361)
|
||||||
@ -1950,8 +1950,57 @@ I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h)(0x68AD823F)
|
|||||||
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h)(0x68AD823F)
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h)(0x68AD823F)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
||||||
I (..\User\bsp\bsp.h)(0x690DC361)
|
I (..\User\bsp\bsp.h)(0x690DC361)
|
||||||
I (..\User\device\device.h)(0x690DC361)
|
I (..\User\device\device.h)(0x6911EB88)
|
||||||
F (..\User\device\vofa.h)(0x690DC344)()
|
F (..\User\device\vofa.h)(0x690DC344)()
|
||||||
|
F (..\User\device\dr16.c)(0x69133E05)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/dr16.o -MD)
|
||||||
|
I (..\User\device\dr16.h)(0x69133DC7)
|
||||||
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
||||||
|
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
||||||
|
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
||||||
|
I (..\User\component\user_math.h)(0x690DD4C7)
|
||||||
|
I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
|
||||||
|
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
|
||||||
|
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
||||||
|
I (..\User\device\device.h)(0x6911EB88)
|
||||||
|
I (..\User\bsp\uart.h)(0x690DC361)
|
||||||
|
I (..\Core\Inc\usart.h)(0x690CA973)
|
||||||
|
I (..\Core\Inc\main.h)(0x690CA974)
|
||||||
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h)(0x68AD823F)
|
||||||
|
I (..\Core\Inc\stm32f4xx_hal_conf.h)(0x690CA974)
|
||||||
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_def.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f407xx.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\CMSIS\Include\core_cm4.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\CMSIS\Include\cmsis_version.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\CMSIS\Include\cmsis_compiler.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\CMSIS\Include\cmsis_armclang.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\CMSIS\Include\mpu_armv7.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\CMSIS\Device\ST\STM32F4xx\Include\system_stm32f4xx.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc_ex.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio_ex.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_exti.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma_ex.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_cortex.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_can.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ex.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ramfunc.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_i2c.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_i2c_ex.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr_ex.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_spi.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h)(0x68AD823F)
|
||||||
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h)(0x68AD823F)
|
||||||
|
I (..\User\bsp\bsp.h)(0x690DC361)
|
||||||
|
I (..\User\bsp\time.h)(0x690DC361)
|
||||||
|
I (D:\cangming\ARM\ARMCLANG\include\string.h)(0x6035A4A8)
|
||||||
|
F (..\User\device\dr16.h)(0x69133DC7)()
|
||||||
F (..\User\component\ahrs.c)(0x690DC361)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/ahrs.o -MD)
|
F (..\User\component\ahrs.c)(0x690DC361)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/ahrs.o -MD)
|
||||||
I (..\User\component\ahrs.h)(0x690DC361)
|
I (..\User\component\ahrs.h)(0x690DC361)
|
||||||
I (..\User\component\user_math.h)(0x690DD4C7)
|
I (..\User\component\user_math.h)(0x690DD4C7)
|
||||||
@ -1962,19 +2011,6 @@ I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
|||||||
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\string.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\string.h)(0x6035A4A8)
|
||||||
F (..\User\component\ahrs.h)(0x690DC361)()
|
F (..\User\component\ahrs.h)(0x690DC361)()
|
||||||
F (..\User\component\at9s_pro_cmd.c)(0x6900CCBC)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/at9s_pro_cmd.o -MD)
|
|
||||||
I (..\User\component\at9s_pro_cmd.h)(0x6900CCBC)
|
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
|
||||||
I (..\User\device\at9s_pro.h)(0x6900CCBC)
|
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
|
||||||
I (..\User\component\user_math.h)(0x690DD4C7)
|
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
|
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
|
|
||||||
I (..\User\device\device.h)(0x690DC361)
|
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\string.h)(0x6035A4A8)
|
|
||||||
F (..\User\component\at9s_pro_cmd.h)(0x6900CCBC)()
|
|
||||||
F (..\User\component\filter.c)(0x690DC361)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/filter.o -MD)
|
F (..\User\component\filter.c)(0x690DC361)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/filter.o -MD)
|
||||||
I (..\User\component\filter.h)(0x690DC361)
|
I (..\User\component\filter.h)(0x690DC361)
|
||||||
I (..\User\component\user_math.h)(0x690DD4C7)
|
I (..\User\component\user_math.h)(0x690DD4C7)
|
||||||
@ -2012,7 +2048,7 @@ I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
|||||||
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
||||||
F (..\User\component\mixer.h)(0x690DC361)()
|
F (..\User\component\mixer.h)(0x690DC361)()
|
||||||
F (..\User\module\config.c)(0x690CA62A)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/config.o -MD)
|
F (..\User\module\config.c)(0x691468DB)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/config.o -MD)
|
||||||
I (..\User\module\config.h)(0x690CA16F)
|
I (..\User\module\config.h)(0x690CA16F)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
||||||
I (..\User\component\pid.h)(0x690DC361)
|
I (..\User\component\pid.h)(0x690DC361)
|
||||||
@ -2023,7 +2059,7 @@ I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
|
|||||||
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
||||||
I (..\User\device\motor.h)(0x690DC344)
|
I (..\User\device\motor.h)(0x690DC344)
|
||||||
I (..\User\device\device.h)(0x690DC361)
|
I (..\User\device\device.h)(0x6911EB88)
|
||||||
I (..\User\device\motor_rm.h)(0x690DC344)
|
I (..\User\device\motor_rm.h)(0x690DC344)
|
||||||
I (..\User\bsp\can.h)(0x690DC361)
|
I (..\User\bsp\can.h)(0x690DC361)
|
||||||
I (..\Core\Inc\can.h)(0x690CA973)
|
I (..\Core\Inc\can.h)(0x690CA973)
|
||||||
@ -2073,13 +2109,13 @@ I (..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h)(0x68AD8208
|
|||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68AD8208)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68AD8208)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
||||||
I (..\User\module\shoot.h)(0x690B0C20)
|
I (..\User\module\shoot.h)(0x6911DC53)
|
||||||
I (..\User\module\gimbal.h)(0x6900CCBC)
|
I (..\User\module\gimbal.h)(0x6900CCBC)
|
||||||
I (..\User\component\ahrs.h)(0x690DC361)
|
I (..\User\component\ahrs.h)(0x690DC361)
|
||||||
I (..\User\device\motor_dm.h)(0x690DC344)
|
I (..\User\device\motor_dm.h)(0x690DC344)
|
||||||
I (..\User\module\chassis.h)(0x690C9F84)
|
I (..\User\module\chassis.h)(0x690C9F84)
|
||||||
I (..\User\component\mixer.h)(0x690DC361)
|
I (..\User\component\mixer.h)(0x690DC361)
|
||||||
I (..\User\module\cmd.h)(0x690D7097)
|
I (..\User\module\cmd.h)(0x69134909)
|
||||||
F (..\User\module\config.h)(0x690CA16F)()
|
F (..\User\module\config.h)(0x690CA16F)()
|
||||||
F (..\User\module\gimbal.c)(0x6900CCBC)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/gimbal.o -MD)
|
F (..\User\module\gimbal.c)(0x6900CCBC)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/gimbal.o -MD)
|
||||||
I (..\User\module\gimbal.h)(0x6900CCBC)
|
I (..\User\module\gimbal.h)(0x6900CCBC)
|
||||||
@ -2093,7 +2129,7 @@ I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
|||||||
I (..\User\component\filter.h)(0x690DC361)
|
I (..\User\component\filter.h)(0x690DC361)
|
||||||
I (..\User\component\pid.h)(0x690DC361)
|
I (..\User\component\pid.h)(0x690DC361)
|
||||||
I (..\User\device\motor.h)(0x690DC344)
|
I (..\User\device\motor.h)(0x690DC344)
|
||||||
I (..\User\device\device.h)(0x690DC361)
|
I (..\User\device\device.h)(0x6911EB88)
|
||||||
I (..\User\device\motor_dm.h)(0x690DC344)
|
I (..\User\device\motor_dm.h)(0x690DC344)
|
||||||
I (..\User\bsp\can.h)(0x690DC361)
|
I (..\User\bsp\can.h)(0x690DC361)
|
||||||
I (..\Core\Inc\can.h)(0x690CA973)
|
I (..\Core\Inc\can.h)(0x690CA973)
|
||||||
@ -2146,9 +2182,9 @@ I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8
|
|||||||
I (..\User\device\motor_rm.h)(0x690DC344)
|
I (..\User\device\motor_rm.h)(0x690DC344)
|
||||||
I (..\User\bsp\time.h)(0x690DC361)
|
I (..\User\bsp\time.h)(0x690DC361)
|
||||||
F (..\User\module\gimbal.h)(0x6900CCBC)()
|
F (..\User\module\gimbal.h)(0x6900CCBC)()
|
||||||
F (..\User\module\shoot.c)(0x690DE2B7)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/shoot.o -MD)
|
F (..\User\module\shoot.c)(0x6911DD87)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/shoot.o -MD)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\string.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\string.h)(0x6035A4A8)
|
||||||
I (..\User\module\shoot.h)(0x690B0C20)
|
I (..\User\module\shoot.h)(0x6911DC53)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
||||||
I (..\Core\Inc\main.h)(0x690CA974)
|
I (..\Core\Inc\main.h)(0x690CA974)
|
||||||
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h)(0x68AD823F)
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h)(0x68AD823F)
|
||||||
@ -2184,15 +2220,15 @@ I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_spi.h)(0x68AD823F)
|
|||||||
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h)(0x68AD823F)
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h)(0x68AD823F)
|
||||||
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h)(0x68AD823F)
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h)(0x68AD823F)
|
||||||
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h)(0x68AD823F)
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h)(0x68AD823F)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
|
||||||
I (..\User\component\pid.h)(0x690DC361)
|
I (..\User\component\pid.h)(0x690DC361)
|
||||||
I (..\User\component\filter.h)(0x690DC361)
|
I (..\User\component\filter.h)(0x690DC361)
|
||||||
I (..\User\component\user_math.h)(0x690DD4C7)
|
I (..\User\component\user_math.h)(0x690DD4C7)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
|
I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
|
||||||
|
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
||||||
I (..\User\device\motor_rm.h)(0x690DC344)
|
I (..\User\device\motor_rm.h)(0x690DC344)
|
||||||
I (..\User\device\motor.h)(0x690DC344)
|
I (..\User\device\motor.h)(0x690DC344)
|
||||||
I (..\User\device\device.h)(0x690DC361)
|
I (..\User\device\device.h)(0x6911EB88)
|
||||||
I (..\User\bsp\can.h)(0x690DC361)
|
I (..\User\bsp\can.h)(0x690DC361)
|
||||||
I (..\Core\Inc\can.h)(0x690CA973)
|
I (..\Core\Inc\can.h)(0x690CA973)
|
||||||
I (..\User\bsp\bsp.h)(0x690DC361)
|
I (..\User\bsp\bsp.h)(0x690DC361)
|
||||||
@ -2209,7 +2245,7 @@ I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68AD8208)
|
|||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68AD8208)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
||||||
I (..\User\bsp\time.h)(0x690DC361)
|
I (..\User\bsp\time.h)(0x690DC361)
|
||||||
F (..\User\module\shoot.h)(0x690B0C20)()
|
F (..\User\module\shoot.h)(0x6911DC53)()
|
||||||
F (..\User\module\chassis.c)(0x690C9F73)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/chassis.o -MD)
|
F (..\User\module\chassis.c)(0x690C9F73)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/chassis.o -MD)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
||||||
@ -2269,15 +2305,16 @@ I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
|
|||||||
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
|
||||||
I (..\User\device\motor_rm.h)(0x690DC344)
|
I (..\User\device\motor_rm.h)(0x690DC344)
|
||||||
I (..\User\device\motor.h)(0x690DC344)
|
I (..\User\device\motor.h)(0x690DC344)
|
||||||
I (..\User\device\device.h)(0x690DC361)
|
I (..\User\device\device.h)(0x6911EB88)
|
||||||
I (..\User\module\chassis.h)(0x690C9F84)
|
I (..\User\module\chassis.h)(0x690C9F84)
|
||||||
I (..\User\component\filter.h)(0x690DC361)
|
I (..\User\component\filter.h)(0x690DC361)
|
||||||
I (..\User\component\mixer.h)(0x690DC361)
|
I (..\User\component\mixer.h)(0x690DC361)
|
||||||
I (..\User\component\pid.h)(0x690DC361)
|
I (..\User\component\pid.h)(0x690DC361)
|
||||||
F (..\User\module\chassis.h)(0x690C9F84)()
|
F (..\User\module\chassis.h)(0x690C9F84)()
|
||||||
F (..\User\module\cmd.c)(0x690D756D)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/cmd.o -MD)
|
F (..\User\module\cmd.c)(0x69146A45)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/cmd.o -MD)
|
||||||
I (..\User\module\cmd.h)(0x690D7097)
|
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
||||||
|
I (D:\cangming\ARM\ARMCLANG\include\string.h)(0x6035A4A8)
|
||||||
|
I (..\User\module\cmd.h)(0x69134909)
|
||||||
I (..\User\module\chassis.h)(0x690C9F84)
|
I (..\User\module\chassis.h)(0x690C9F84)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
||||||
@ -2338,15 +2375,16 @@ I (..\User\component\pid.h)(0x690DC361)
|
|||||||
I (..\User\component\ahrs.h)(0x690DC361)
|
I (..\User\component\ahrs.h)(0x690DC361)
|
||||||
I (..\User\device\motor_rm.h)(0x690DC344)
|
I (..\User\device\motor_rm.h)(0x690DC344)
|
||||||
I (..\User\device\motor.h)(0x690DC344)
|
I (..\User\device\motor.h)(0x690DC344)
|
||||||
I (..\User\device\device.h)(0x690DC361)
|
I (..\User\device\device.h)(0x6911EB88)
|
||||||
I (..\User\module\gimbal.h)(0x6900CCBC)
|
I (..\User\module\gimbal.h)(0x6900CCBC)
|
||||||
I (..\User\device\motor_dm.h)(0x690DC344)
|
I (..\User\device\motor_dm.h)(0x690DC344)
|
||||||
I (..\User\module\shoot.h)(0x690B0C20)
|
I (..\User\module\shoot.h)(0x6911DC53)
|
||||||
I (..\User\device\at9s_pro.h)(0x6900CCBC)
|
I (..\User\device\at9s_pro.h)(0x6913274F)
|
||||||
|
I (..\User\device\vt13.h)(0x69133181)
|
||||||
I (..\User\bsp\time.h)(0x690DC361)
|
I (..\User\bsp\time.h)(0x690DC361)
|
||||||
F (..\User\module\cmd.h)(0x690D7097)()
|
F (..\User\module\cmd.h)(0x69134909)()
|
||||||
F (..\User\task\atti_esti.c)(0x6900CCBC)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/atti_esti.o -MD)
|
F (..\User\task\atti_esti.c)(0x6900CCBC)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/atti_esti.o -MD)
|
||||||
I (..\User\task\user_task.h)(0x6900CCBC)
|
I (..\User\task\user_task.h)(0x690DF200)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
||||||
@ -2406,7 +2444,7 @@ I (..\User\component\pid.h)(0x690DC361)
|
|||||||
I (..\User\component\filter.h)(0x690DC361)
|
I (..\User\component\filter.h)(0x690DC361)
|
||||||
I (..\User\module\gimbal.h)(0x6900CCBC)
|
I (..\User\module\gimbal.h)(0x6900CCBC)
|
||||||
I (..\User\device\motor.h)(0x690DC344)
|
I (..\User\device\motor.h)(0x690DC344)
|
||||||
I (..\User\device\device.h)(0x690DC361)
|
I (..\User\device\device.h)(0x6911EB88)
|
||||||
I (..\User\device\motor_dm.h)(0x690DC344)
|
I (..\User\device\motor_dm.h)(0x690DC344)
|
||||||
I (..\User\bsp\can.h)(0x690DC361)
|
I (..\User\bsp\can.h)(0x690DC361)
|
||||||
I (..\Core\Inc\can.h)(0x690CA973)
|
I (..\Core\Inc\can.h)(0x690CA973)
|
||||||
@ -2415,8 +2453,8 @@ I (..\User\device\motor_rm.h)(0x690DC344)
|
|||||||
I (..\User\module\chassis.h)(0x690C9F84)
|
I (..\User\module\chassis.h)(0x690C9F84)
|
||||||
I (..\User\component\mixer.h)(0x690DC361)
|
I (..\User\component\mixer.h)(0x690DC361)
|
||||||
I (..\User\device\bmi088.h)(0x690DC344)
|
I (..\User\device\bmi088.h)(0x690DC344)
|
||||||
F (..\User\task\init.c)(0x690DD4FA)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/init.o -MD)
|
F (..\User\task\init.c)(0x69132AA7)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/init.o -MD)
|
||||||
I (..\User\task\user_task.h)(0x6900CCBC)
|
I (..\User\task\user_task.h)(0x690DF200)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
||||||
@ -2429,13 +2467,13 @@ I (..\Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F\portmacro.h
|
|||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h)(0x68AD8208)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68AD8208)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68AD8208)
|
||||||
I (..\User\device\at9s_pro.h)(0x6900CCBC)
|
I (..\User\device\dr16.h)(0x69133DC7)
|
||||||
I (..\User\component\user_math.h)(0x690DD4C7)
|
I (..\User\component\user_math.h)(0x690DD4C7)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
|
I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
||||||
I (..\User\device\device.h)(0x690DC361)
|
I (..\User\device\device.h)(0x6911EB88)
|
||||||
I (..\User\component\at9s_pro_cmd.h)(0x6900CCBC)
|
I (..\User\device\at9s_pro.h)(0x6913274F)
|
||||||
I (..\User\module\gimbal.h)(0x6900CCBC)
|
I (..\User\module\gimbal.h)(0x6900CCBC)
|
||||||
I (..\User\component\ahrs.h)(0x690DC361)
|
I (..\User\component\ahrs.h)(0x690DC361)
|
||||||
I (..\User\component\filter.h)(0x690DC361)
|
I (..\User\component\filter.h)(0x690DC361)
|
||||||
@ -2481,11 +2519,11 @@ I (..\User\bsp\bsp.h)(0x690DC361)
|
|||||||
I (..\User\bsp\mm.h)(0x690DC361)
|
I (..\User\bsp\mm.h)(0x690DC361)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os.h)(0x68AD8208)
|
||||||
I (..\User\device\motor_rm.h)(0x690DC344)
|
I (..\User\device\motor_rm.h)(0x690DC344)
|
||||||
I (..\User\module\shoot.h)(0x690B0C20)
|
I (..\User\module\shoot.h)(0x6911DC53)
|
||||||
I (..\User\module\chassis.h)(0x690C9F84)
|
I (..\User\module\chassis.h)(0x690C9F84)
|
||||||
I (..\User\component\mixer.h)(0x690DC361)
|
I (..\User\component\mixer.h)(0x690DC361)
|
||||||
F (..\User\task\rc.c)(0x690DC5A9)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/rc.o -MD)
|
F (..\User\task\rc.c)(0x69146A45)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/rc.o -MD)
|
||||||
I (..\User\task\user_task.h)(0x6900CCBC)
|
I (..\User\task\user_task.h)(0x690DF200)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
||||||
@ -2498,15 +2536,14 @@ I (..\Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F\portmacro.h
|
|||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h)(0x68AD8208)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68AD8208)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68AD8208)
|
||||||
I (..\User\device\at9s_pro.h)(0x6900CCBC)
|
I (..\User\device\at9s_pro.h)(0x6913274F)
|
||||||
I (..\User\component\user_math.h)(0x690DD4C7)
|
I (..\User\component\user_math.h)(0x690DD4C7)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
|
I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
||||||
I (..\User\device\device.h)(0x690DC361)
|
I (..\User\device\device.h)(0x6911EB88)
|
||||||
I (..\User\component\at9s_pro_cmd.h)(0x6900CCBC)
|
|
||||||
F (..\User\task\user_task.c)(0x6900CCBC)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/user_task.o -MD)
|
F (..\User\task\user_task.c)(0x6900CCBC)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/user_task.o -MD)
|
||||||
I (..\User\task\user_task.h)(0x6900CCBC)
|
I (..\User\task\user_task.h)(0x690DF200)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
||||||
@ -2519,9 +2556,9 @@ I (..\Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F\portmacro.h
|
|||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h)(0x68AD8208)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68AD8208)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68AD8208)
|
||||||
F (..\User\task\user_task.h)(0x6900CCBC)()
|
F (..\User\task\user_task.h)(0x690DF200)()
|
||||||
F (..\User\task\blink.c)(0x6900CCBC)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/blink.o -MD)
|
F (..\User\task\blink.c)(0x6900CCBC)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/blink.o -MD)
|
||||||
I (..\User\task\user_task.h)(0x6900CCBC)
|
I (..\User\task\user_task.h)(0x690DF200)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
||||||
@ -2571,8 +2608,8 @@ I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h)(0x68AD823F)
|
|||||||
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h)(0x68AD823F)
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h)(0x68AD823F)
|
||||||
I (..\User\bsp\bsp.h)(0x690DC361)
|
I (..\User\bsp\bsp.h)(0x690DC361)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
|
||||||
F (..\User\task\ctrl_chassis.c)(0x6904CA68)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/ctrl_chassis.o -MD)
|
F (..\User\task\ctrl_chassis.c)(0x6911D91D)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/ctrl_chassis.o -MD)
|
||||||
I (..\User\task\user_task.h)(0x6900CCBC)
|
I (..\User\task\user_task.h)(0x690DF200)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
||||||
@ -2634,14 +2671,14 @@ I (..\User\component\pid.h)(0x690DC361)
|
|||||||
I (..\User\component\ahrs.h)(0x690DC361)
|
I (..\User\component\ahrs.h)(0x690DC361)
|
||||||
I (..\User\device\motor_rm.h)(0x690DC344)
|
I (..\User\device\motor_rm.h)(0x690DC344)
|
||||||
I (..\User\device\motor.h)(0x690DC344)
|
I (..\User\device\motor.h)(0x690DC344)
|
||||||
I (..\User\device\device.h)(0x690DC361)
|
I (..\User\device\device.h)(0x6911EB88)
|
||||||
I (..\User\module\config.h)(0x690CA16F)
|
I (..\User\module\config.h)(0x690CA16F)
|
||||||
I (..\User\module\shoot.h)(0x690B0C20)
|
I (..\User\module\shoot.h)(0x6911DC53)
|
||||||
I (..\User\module\gimbal.h)(0x6900CCBC)
|
I (..\User\module\gimbal.h)(0x6900CCBC)
|
||||||
I (..\User\device\motor_dm.h)(0x690DC344)
|
I (..\User\device\motor_dm.h)(0x690DC344)
|
||||||
I (..\User\module\cmd.h)(0x690D7097)
|
I (..\User\module\cmd.h)(0x69134909)
|
||||||
F (..\User\task\ctrl_gimbal.c)(0x6900CCBC)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/ctrl_gimbal.o -MD)
|
F (..\User\task\ctrl_gimbal.c)(0x6900CCBC)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/ctrl_gimbal.o -MD)
|
||||||
I (..\User\task\user_task.h)(0x6900CCBC)
|
I (..\User\task\user_task.h)(0x690DF200)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
||||||
@ -2663,7 +2700,7 @@ I (..\User\module\gimbal.h)(0x6900CCBC)
|
|||||||
I (..\User\component\filter.h)(0x690DC361)
|
I (..\User\component\filter.h)(0x690DC361)
|
||||||
I (..\User\component\pid.h)(0x690DC361)
|
I (..\User\component\pid.h)(0x690DC361)
|
||||||
I (..\User\device\motor.h)(0x690DC344)
|
I (..\User\device\motor.h)(0x690DC344)
|
||||||
I (..\User\device\device.h)(0x690DC361)
|
I (..\User\device\device.h)(0x6911EB88)
|
||||||
I (..\User\device\motor_dm.h)(0x690DC344)
|
I (..\User\device\motor_dm.h)(0x690DC344)
|
||||||
I (..\User\bsp\can.h)(0x690DC361)
|
I (..\User\bsp\can.h)(0x690DC361)
|
||||||
I (..\Core\Inc\can.h)(0x690CA973)
|
I (..\Core\Inc\can.h)(0x690CA973)
|
||||||
@ -2705,12 +2742,12 @@ I (..\User\bsp\mm.h)(0x690DC361)
|
|||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os.h)(0x68AD8208)
|
||||||
I (..\User\device\motor_rm.h)(0x690DC344)
|
I (..\User\device\motor_rm.h)(0x690DC344)
|
||||||
I (..\User\module\config.h)(0x690CA16F)
|
I (..\User\module\config.h)(0x690CA16F)
|
||||||
I (..\User\module\shoot.h)(0x690B0C20)
|
I (..\User\module\shoot.h)(0x6911DC53)
|
||||||
I (..\User\module\chassis.h)(0x690C9F84)
|
I (..\User\module\chassis.h)(0x690C9F84)
|
||||||
I (..\User\component\mixer.h)(0x690DC361)
|
I (..\User\component\mixer.h)(0x690DC361)
|
||||||
I (..\User\module\cmd.h)(0x690D7097)
|
I (..\User\module\cmd.h)(0x69134909)
|
||||||
F (..\User\task\ctrl_shoot.c)(0x690B11B7)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/ctrl_shoot.o -MD)
|
F (..\User\task\ctrl_shoot.c)(0x691325FA)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/ctrl_shoot.o -MD)
|
||||||
I (..\User\task\user_task.h)(0x6900CCBC)
|
I (..\User\task\user_task.h)(0x690DF200)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
||||||
@ -2723,14 +2760,7 @@ I (..\Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F\portmacro.h
|
|||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h)(0x68AD8208)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68AD8208)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68AD8208)
|
||||||
I (..\User\component\at9s_pro_cmd.h)(0x6900CCBC)
|
I (..\User\module\shoot.h)(0x6911DC53)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
|
||||||
I (..\User\device\at9s_pro.h)(0x6900CCBC)
|
|
||||||
I (..\User\component\user_math.h)(0x690DD4C7)
|
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
|
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
|
|
||||||
I (..\User\device\device.h)(0x690DC361)
|
|
||||||
I (..\User\module\shoot.h)(0x690B0C20)
|
|
||||||
I (..\Core\Inc\main.h)(0x690CA974)
|
I (..\Core\Inc\main.h)(0x690CA974)
|
||||||
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h)(0x68AD823F)
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h)(0x68AD823F)
|
||||||
I (..\Core\Inc\stm32f4xx_hal_conf.h)(0x690CA974)
|
I (..\Core\Inc\stm32f4xx_hal_conf.h)(0x690CA974)
|
||||||
@ -2766,8 +2796,13 @@ I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h)(0x68AD823F)
|
|||||||
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h)(0x68AD823F)
|
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h)(0x68AD823F)
|
||||||
I (..\User\component\pid.h)(0x690DC361)
|
I (..\User\component\pid.h)(0x690DC361)
|
||||||
I (..\User\component\filter.h)(0x690DC361)
|
I (..\User\component\filter.h)(0x690DC361)
|
||||||
|
I (..\User\component\user_math.h)(0x690DD4C7)
|
||||||
|
I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
|
||||||
|
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
|
||||||
|
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
||||||
I (..\User\device\motor_rm.h)(0x690DC344)
|
I (..\User\device\motor_rm.h)(0x690DC344)
|
||||||
I (..\User\device\motor.h)(0x690DC344)
|
I (..\User\device\motor.h)(0x690DC344)
|
||||||
|
I (..\User\device\device.h)(0x6911EB88)
|
||||||
I (..\User\bsp\can.h)(0x690DC361)
|
I (..\User\bsp\can.h)(0x690DC361)
|
||||||
I (..\Core\Inc\can.h)(0x690CA973)
|
I (..\Core\Inc\can.h)(0x690CA973)
|
||||||
I (..\User\bsp\bsp.h)(0x690DC361)
|
I (..\User\bsp\bsp.h)(0x690DC361)
|
||||||
@ -2779,9 +2814,9 @@ I (..\User\component\ahrs.h)(0x690DC361)
|
|||||||
I (..\User\device\motor_dm.h)(0x690DC344)
|
I (..\User\device\motor_dm.h)(0x690DC344)
|
||||||
I (..\User\module\chassis.h)(0x690C9F84)
|
I (..\User\module\chassis.h)(0x690C9F84)
|
||||||
I (..\User\component\mixer.h)(0x690DC361)
|
I (..\User\component\mixer.h)(0x690DC361)
|
||||||
I (..\User\module\cmd.h)(0x690D7097)
|
I (..\User\module\cmd.h)(0x69134909)
|
||||||
F (..\User\task\cmd.c)(0x690DE39B)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/cmd_1.o -MD)
|
F (..\User\task\cmd.c)(0x69132ADB)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User
-I./RTE/_hero
-ID:/cangming/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/cangming/keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o hero/cmd_1.o -MD)
|
||||||
I (..\User\task\user_task.h)(0x6900CCBC)
|
I (..\User\task\user_task.h)(0x690DF200)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
||||||
@ -2794,12 +2829,13 @@ I (..\Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F\portmacro.h
|
|||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h)(0x68AD8208)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68AD8208)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68AD8208)
|
||||||
I (..\User\device\at9s_pro.h)(0x6900CCBC)
|
I (..\User\device\dr16.h)(0x69133DC7)
|
||||||
I (..\User\component\user_math.h)(0x690DD4C7)
|
I (..\User\component\user_math.h)(0x690DD4C7)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
|
I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
|
||||||
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
||||||
I (..\User\device\device.h)(0x690DC361)
|
I (..\User\device\device.h)(0x6911EB88)
|
||||||
|
I (..\User\device\at9s_pro.h)(0x6913274F)
|
||||||
I (..\User\module\config.h)(0x690CA16F)
|
I (..\User\module\config.h)(0x690CA16F)
|
||||||
I (..\User\component\pid.h)(0x690DC361)
|
I (..\User\component\pid.h)(0x690DC361)
|
||||||
I (..\User\component\filter.h)(0x690DC361)
|
I (..\User\component\filter.h)(0x690DC361)
|
||||||
@ -2843,10 +2879,10 @@ I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h)(0x68AD823F)
|
|||||||
I (..\User\bsp\bsp.h)(0x690DC361)
|
I (..\User\bsp\bsp.h)(0x690DC361)
|
||||||
I (..\User\bsp\mm.h)(0x690DC361)
|
I (..\User\bsp\mm.h)(0x690DC361)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os.h)(0x68AD8208)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os.h)(0x68AD8208)
|
||||||
I (..\User\module\shoot.h)(0x690B0C20)
|
I (..\User\module\shoot.h)(0x6911DC53)
|
||||||
I (..\User\module\gimbal.h)(0x6900CCBC)
|
I (..\User\module\gimbal.h)(0x6900CCBC)
|
||||||
I (..\User\component\ahrs.h)(0x690DC361)
|
I (..\User\component\ahrs.h)(0x690DC361)
|
||||||
I (..\User\device\motor_dm.h)(0x690DC344)
|
I (..\User\device\motor_dm.h)(0x690DC344)
|
||||||
I (..\User\module\chassis.h)(0x690C9F84)
|
I (..\User\module\chassis.h)(0x690C9F84)
|
||||||
I (..\User\component\mixer.h)(0x690DC361)
|
I (..\User\component\mixer.h)(0x690DC361)
|
||||||
I (..\User\module\cmd.h)(0x690D7097)
|
I (..\User\module\cmd.h)(0x69134909)
|
||||||
|
|||||||
@ -11,11 +11,11 @@ hero/init.o: ..\User\task\init.c ..\User\task\user_task.h \
|
|||||||
..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h \
|
..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h \
|
||||||
..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h \
|
..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h \
|
||||||
..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h \
|
..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h \
|
||||||
..\User\device\at9s_pro.h ..\User\component\user_math.h \
|
..\User\device\dr16.h ..\User\component\user_math.h \
|
||||||
D:\cangming\ARM\ARMCLANG\Bin\..\include\float.h \
|
D:\cangming\ARM\ARMCLANG\Bin\..\include\float.h \
|
||||||
D:\cangming\ARM\ARMCLANG\Bin\..\include\math.h \
|
D:\cangming\ARM\ARMCLANG\Bin\..\include\math.h \
|
||||||
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdbool.h \
|
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdbool.h \
|
||||||
..\User\device\device.h ..\User\component\at9s_pro_cmd.h \
|
..\User\device\device.h ..\User\device\at9s_pro.h \
|
||||||
..\User\module\gimbal.h ..\User\component\ahrs.h \
|
..\User\module\gimbal.h ..\User\component\ahrs.h \
|
||||||
..\User\component\filter.h ..\User\component\pid.h \
|
..\User\component\filter.h ..\User\component\pid.h \
|
||||||
..\User\device\motor.h ..\User\device\motor_dm.h ..\User\bsp\can.h \
|
..\User\device\motor.h ..\User\device\motor_dm.h ..\User\bsp\can.h \
|
||||||
|
|||||||
Binary file not shown.
@ -15,4 +15,4 @@ hero/rc.o: ..\User\task\rc.c ..\User\task\user_task.h \
|
|||||||
D:\cangming\ARM\ARMCLANG\Bin\..\include\float.h \
|
D:\cangming\ARM\ARMCLANG\Bin\..\include\float.h \
|
||||||
D:\cangming\ARM\ARMCLANG\Bin\..\include\math.h \
|
D:\cangming\ARM\ARMCLANG\Bin\..\include\math.h \
|
||||||
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdbool.h \
|
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdbool.h \
|
||||||
..\User\device\device.h ..\User\component\at9s_pro_cmd.h
|
..\User\device\device.h
|
||||||
|
|||||||
Binary file not shown.
@ -35,11 +35,11 @@ hero/shoot.o: ..\User\module\shoot.c \
|
|||||||
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h \
|
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h \
|
||||||
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h \
|
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h \
|
||||||
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h \
|
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h \
|
||||||
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdbool.h \
|
|
||||||
..\User\component\pid.h ..\User\component\filter.h \
|
..\User\component\pid.h ..\User\component\filter.h \
|
||||||
..\User\component\user_math.h \
|
..\User\component\user_math.h \
|
||||||
D:\cangming\ARM\ARMCLANG\Bin\..\include\float.h \
|
D:\cangming\ARM\ARMCLANG\Bin\..\include\float.h \
|
||||||
D:\cangming\ARM\ARMCLANG\Bin\..\include\math.h \
|
D:\cangming\ARM\ARMCLANG\Bin\..\include\math.h \
|
||||||
|
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdbool.h \
|
||||||
..\User\device\motor_rm.h ..\User\device\motor.h \
|
..\User\device\motor_rm.h ..\User\device\motor.h \
|
||||||
..\User\device\device.h ..\User\bsp\can.h ..\Core\Inc\can.h \
|
..\User\device\device.h ..\User\bsp\can.h ..\Core\Inc\can.h \
|
||||||
..\Core\Inc\main.h ..\User\bsp\bsp.h ..\User\bsp\mm.h \
|
..\Core\Inc\main.h ..\User\bsp\bsp.h ..\User\bsp\mm.h \
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@ -1,62 +0,0 @@
|
|||||||
/* Includes ----------------------------------------------------------------- */
|
|
||||||
#include "at9s_pro_cmd.h"
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
#include <math.h>
|
|
||||||
/* Private define ----------------------------------------------------------- */
|
|
||||||
#define DEVICE_AT9S_CH_VALUE_MIN 364u
|
|
||||||
#define DEVICE_AT9S_CH_VALUE_MID 1024u
|
|
||||||
#define DEVICE_AT9S_CH_VALUE_MAX 1684u
|
|
||||||
/* Private macro ------------------------------------------------------------ */
|
|
||||||
/* Private typedef ---------------------------------------------------------- */
|
|
||||||
/* Private variables -------------------------------------------------------- */
|
|
||||||
/* Private function -------------------------------------------------------- */
|
|
||||||
/* Exported functions ------------------------------------------------------- */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief ????????
|
|
||||||
*
|
|
||||||
* @param rc ?????????
|
|
||||||
* @param dr16_cmd ????
|
|
||||||
* @param dt_sec ???<EFBFBD><EFBFBD>???????
|
|
||||||
* @return int8_t 0?????<EFBFBD><EFBFBD>???
|
|
||||||
*/
|
|
||||||
int8_t COMP_AT9S_CMD_ParseRc(const DEVICE_AT9S_t *rc, COMP_AT9S_CMD_t *at9s_cmd) {
|
|
||||||
/* ????? */
|
|
||||||
if (rc == NULL) return -1;
|
|
||||||
if (at9s_cmd == NULL) return -1;
|
|
||||||
|
|
||||||
// at9s_cmd->ch_l_x = 2.0f*(rc->data.ch_l_x-209.0f)/(1596.0f-209.0f)-1.0f;
|
|
||||||
// at9s_cmd->ch_l_y = 2.0f*(rc->data.ch_l_y-178.0f)/(1575.0f-198.0f)-1.0f;
|
|
||||||
// at9s_cmd->ch_r_x = 2.0f*(rc->data.ch_r_x-210.0f)/(1596.0f-210.0f)-1.0f;
|
|
||||||
// at9s_cmd->ch_r_y = 2.0f*(rc->data.ch_r_y-221.0f)/(1604.0f-217.0f)-1.0f;
|
|
||||||
//
|
|
||||||
// if(fabs(at9s_cmd->ch_l_x)<=DEAD_AREA)at9s_cmd->ch_l_x = 0;
|
|
||||||
// if(fabs(at9s_cmd->ch_l_y)<=DEAD_AREA)at9s_cmd->ch_l_y = 0;
|
|
||||||
// if(fabs(at9s_cmd->ch_r_x)<=DEAD_AREA)at9s_cmd->ch_r_x = 0;
|
|
||||||
// if(fabs(at9s_cmd->ch_r_y)<=DEAD_AREA)at9s_cmd->ch_r_y= 0;
|
|
||||||
//
|
|
||||||
// if(fabs(at9s_cmd->ch_l_x)>=1.0f)at9s_cmd->ch_l_x= at9s_cmd->ch_l_x>0?1.0f:-1.0f;
|
|
||||||
// if(fabs(at9s_cmd->ch_l_y)>=1.0f)at9s_cmd->ch_l_y= at9s_cmd->ch_l_y>0?1.0f:-1.0f;
|
|
||||||
// if(fabs(at9s_cmd->ch_r_x)>=1.0f)at9s_cmd->ch_r_x= at9s_cmd->ch_r_x>0?1.0f:-1.0f;
|
|
||||||
// if(fabs(at9s_cmd->ch_r_y)>=1.0f)at9s_cmd->ch_r_y= at9s_cmd->ch_r_y>0?1.0f:-1.0f;
|
|
||||||
//
|
|
||||||
//
|
|
||||||
at9s_cmd->ch_l_x = rc->data.ch_l_x;
|
|
||||||
at9s_cmd->ch_l_y = rc->data.ch_l_y;
|
|
||||||
at9s_cmd->ch_r_x = rc->data.ch_r_x;
|
|
||||||
at9s_cmd->ch_r_y = rc->data.ch_r_y;
|
|
||||||
|
|
||||||
at9s_cmd->chassis_ctrl_vec.x = 0.5f*at9s_cmd->ch_r_x;
|
|
||||||
at9s_cmd->chassis_ctrl_vec.y = 0.5f*at9s_cmd->ch_r_y;
|
|
||||||
|
|
||||||
if(rc->online == false||rc->data.key_A==AT9S_CMD_SW_ERR)at9s_cmd->mode = MODE_CMD_BREAKING_CONTROL;
|
|
||||||
else if(rc->data.key_E == AT9S_CMD_SW_DOWN)at9s_cmd->mode = MODE_CMD_ONLT_GIMBAL;
|
|
||||||
else if(rc->data.key_E == AT9S_CMD_SW_MID)at9s_cmd->mode = MODE_CMD_FOLLOW;
|
|
||||||
else if(rc->data.key_E == AT9S_CMD_SW_UP)at9s_cmd->mode = MODE_CMD_SPIN;
|
|
||||||
|
|
||||||
at9s_cmd->online = rc->online;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@ -1,61 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <stdbool.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
#include "device/at9s_pro.h"
|
|
||||||
|
|
||||||
#define DR16_CMD_REFEREE_MAX_NUM (3) /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DEB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
||||||
|
|
||||||
/* <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB> */
|
|
||||||
typedef enum {
|
|
||||||
MODE_CMD_BREAKING_CONTROL = 0,
|
|
||||||
MODE_CMD_ONLT_GIMBAL = 1,
|
|
||||||
MODE_CMD_FOLLOW = 2,
|
|
||||||
MODE_CMD_SPIN = 3,
|
|
||||||
} COMP_CMD_MODE_t;
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
bool online;
|
|
||||||
|
|
||||||
int8_t mode;
|
|
||||||
|
|
||||||
bool ai;
|
|
||||||
|
|
||||||
float ch_l_x; /* <20><>ҡ<EFBFBD><D2A1> X */
|
|
||||||
float ch_l_y; /* <20><>ҡ<EFBFBD><D2A1> Y<><59><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD> */
|
|
||||||
float ch_r_x; /* <20><>ҡ<EFBFBD><D2A1> X */
|
|
||||||
float ch_r_y; /* <20><>ҡ<EFBFBD><D2A1> Y */
|
|
||||||
|
|
||||||
struct{
|
|
||||||
float x;
|
|
||||||
float y;
|
|
||||||
}chassis_ctrl_vec;
|
|
||||||
|
|
||||||
struct{
|
|
||||||
float w;
|
|
||||||
}gimbal_yaw_ctrl_vec;
|
|
||||||
|
|
||||||
struct{
|
|
||||||
float w;
|
|
||||||
}gimbal_pit_ctrl_vec;
|
|
||||||
|
|
||||||
|
|
||||||
struct{
|
|
||||||
bool ready;
|
|
||||||
bool firecmd;
|
|
||||||
}shoot;
|
|
||||||
} COMP_AT9S_CMD_t;
|
|
||||||
|
|
||||||
int8_t COMP_AT9S_CMD_ParseRc(const DEVICE_AT9S_t *rc, COMP_AT9S_CMD_t *at9s_cmd);
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
@ -14,6 +14,9 @@ pid:
|
|||||||
dependencies:
|
dependencies:
|
||||||
- component/filter
|
- component/filter
|
||||||
enabled: true
|
enabled: true
|
||||||
|
crc16:
|
||||||
|
dependencies: []
|
||||||
|
enabled: true
|
||||||
user_math:
|
user_math:
|
||||||
dependencies: []
|
dependencies: []
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|||||||
62
User/component/crc16.c
Normal file
62
User/component/crc16.c
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
#include "crc16.h"
|
||||||
|
|
||||||
|
/* USER INCLUDE BEGIN */
|
||||||
|
|
||||||
|
/* USER INCLUDE END */
|
||||||
|
|
||||||
|
/* USER DEFINE BEGIN */
|
||||||
|
|
||||||
|
/* USER DEFINE END */
|
||||||
|
|
||||||
|
static const uint16_t crc16_tab[256] = {
|
||||||
|
0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf, 0x8c48,
|
||||||
|
0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7, 0x1081, 0x0108,
|
||||||
|
0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e, 0x9cc9, 0x8d40, 0xbfdb,
|
||||||
|
0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876, 0x2102, 0x308b, 0x0210, 0x1399,
|
||||||
|
0x6726, 0x76af, 0x4434, 0x55bd, 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e,
|
||||||
|
0xfae7, 0xc87c, 0xd9f5, 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e,
|
||||||
|
0x54b5, 0x453c, 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd,
|
||||||
|
0xc974, 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb,
|
||||||
|
0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3, 0x5285,
|
||||||
|
0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a, 0xdecd, 0xcf44,
|
||||||
|
0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72, 0x6306, 0x728f, 0x4014,
|
||||||
|
0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9, 0xef4e, 0xfec7, 0xcc5c, 0xddd5,
|
||||||
|
0xa96a, 0xb8e3, 0x8a78, 0x9bf1, 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3,
|
||||||
|
0x242a, 0x16b1, 0x0738, 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862,
|
||||||
|
0x9af9, 0x8b70, 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e,
|
||||||
|
0xf0b7, 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff,
|
||||||
|
0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036, 0x18c1,
|
||||||
|
0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e, 0xa50a, 0xb483,
|
||||||
|
0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5, 0x2942, 0x38cb, 0x0a50,
|
||||||
|
0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd, 0xb58b, 0xa402, 0x9699, 0x8710,
|
||||||
|
0xf3af, 0xe226, 0xd0bd, 0xc134, 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7,
|
||||||
|
0x6e6e, 0x5cf5, 0x4d7c, 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1,
|
||||||
|
0xa33a, 0xb2b3, 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72,
|
||||||
|
0x3efb, 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232,
|
||||||
|
0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a, 0xe70e,
|
||||||
|
0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1, 0x6b46, 0x7acf,
|
||||||
|
0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9, 0xf78f, 0xe606, 0xd49d,
|
||||||
|
0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330, 0x7bc7, 0x6a4e, 0x58d5, 0x495c,
|
||||||
|
0x3de3, 0x2c6a, 0x1ef1, 0x0f78};
|
||||||
|
|
||||||
|
static inline uint16_t CRC16_Byte(uint16_t crc, const uint8_t data) {
|
||||||
|
return (crc >> 8) ^ crc16_tab[(crc ^ data) & 0xff];
|
||||||
|
}
|
||||||
|
|
||||||
|
uint16_t CRC16_Calc(const uint8_t *buf, size_t len, uint16_t crc) {
|
||||||
|
while (len--) crc = CRC16_Byte(crc, *buf++);
|
||||||
|
return crc;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CRC16_Verify(const uint8_t *buf, size_t len) {
|
||||||
|
if (len < 2) return false;
|
||||||
|
|
||||||
|
uint16_t expected = CRC16_Calc(buf, len - sizeof(uint16_t), CRC16_INIT);
|
||||||
|
return expected ==
|
||||||
|
((const uint16_t *)((const uint8_t *)buf +
|
||||||
|
(len % 2)))[len / sizeof(uint16_t) - 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
/* USER FUNCTION BEGIN */
|
||||||
|
|
||||||
|
/* USER FUNCTION END */
|
||||||
30
User/component/crc16.h
Normal file
30
User/component/crc16.h
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
#include "user_math.h"
|
||||||
|
|
||||||
|
/* USER INCLUDE BEGIN */
|
||||||
|
|
||||||
|
/* USER INCLUDE END */
|
||||||
|
|
||||||
|
/* USER DEFINE BEGIN */
|
||||||
|
|
||||||
|
/* USER DEFINE END */
|
||||||
|
|
||||||
|
#define CRC16_INIT 0XFFFF
|
||||||
|
|
||||||
|
uint16_t CRC16_Calc(const uint8_t *buf, size_t len, uint16_t crc);
|
||||||
|
bool CRC16_Verify(const uint8_t *buf, size_t len);
|
||||||
|
|
||||||
|
/* USER FUNCTION BEGIN */
|
||||||
|
|
||||||
|
/* USER FUNCTION END */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@ -6,57 +6,57 @@
|
|||||||
#include "device/device.h"
|
#include "device/device.h"
|
||||||
|
|
||||||
/* Private define ----------------------------------------------------------- */
|
/* Private define ----------------------------------------------------------- */
|
||||||
#define DEAD_AREA 0.05f
|
#define DEAD_AREA 0.025f
|
||||||
/* Private variables -------------------------------------------------------- */
|
/* Private variables -------------------------------------------------------- */
|
||||||
static osThreadId_t thread_alert;
|
static osThreadId_t thread_alert;
|
||||||
static bool inited = false;
|
static bool inited = false;
|
||||||
|
|
||||||
/* Private function --------------------------------------------------------- */
|
/* Private function --------------------------------------------------------- */
|
||||||
static void DEVICE_AT9S_RxCpltCallback(void)
|
static void AT9S_RxCpltCallback(void)
|
||||||
{
|
{
|
||||||
osThreadFlagsSet(thread_alert, SIGNAL_AT9S_RAW_REDY);
|
osThreadFlagsSet(thread_alert, SIGNAL_AT9S_RAW_REDY);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Exported functions ------------------------------------------------------- */
|
/* Exported functions ------------------------------------------------------- */
|
||||||
int8_t DEVICE_AT9S_Init(DEVICE_AT9S_t *at9s)
|
int8_t AT9S_Init(AT9S_t *at9s)
|
||||||
{
|
{
|
||||||
if (at9s == NULL) return DEVICE_ERR_NULL;
|
if (at9s == NULL) return DEVICE_ERR_NULL;
|
||||||
if (inited) return DEVICE_ERR_INITED;
|
if (inited) return DEVICE_ERR_INITED;
|
||||||
if ((thread_alert = osThreadGetId()) == NULL) return DEVICE_ERR_NULL;
|
if ((thread_alert = osThreadGetId()) == NULL) return DEVICE_ERR_NULL;
|
||||||
|
|
||||||
BSP_UART_RegisterCallback(BSP_UART_AT9S_PRO, BSP_UART_RX_CPLT_CB,
|
BSP_UART_RegisterCallback(BSP_UART_AT9S_PRO, BSP_UART_RX_CPLT_CB,
|
||||||
DEVICE_AT9S_RxCpltCallback);
|
AT9S_RxCpltCallback);
|
||||||
|
|
||||||
inited = true;
|
inited = true;
|
||||||
return DEVICE_OK;
|
return DEVICE_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
int8_t DEVICE_AT9S_Restart(void)
|
int8_t AT9S_Restart(void)
|
||||||
{
|
{
|
||||||
__HAL_UART_DISABLE(BSP_UART_GetHandle(BSP_UART_AT9S_PRO));
|
__HAL_UART_DISABLE(BSP_UART_GetHandle(BSP_UART_AT9S_PRO));
|
||||||
__HAL_UART_ENABLE(BSP_UART_GetHandle(BSP_UART_AT9S_PRO));
|
__HAL_UART_ENABLE(BSP_UART_GetHandle(BSP_UART_AT9S_PRO));
|
||||||
return DEVICE_OK;
|
return DEVICE_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
int8_t DEVICE_AT9S_StartDmaRecv(uint8_t *cmd_buffer)
|
int8_t AT9S_StartDmaRecv(uint8_t *cmd_buffer)
|
||||||
{
|
{
|
||||||
if (HAL_UART_Receive_DMA(BSP_UART_GetHandle(BSP_UART_AT9S_PRO),
|
if (HAL_UART_Receive_DMA(BSP_UART_GetHandle(BSP_UART_AT9S_PRO),
|
||||||
cmd_buffer,
|
cmd_buffer,
|
||||||
DEVICE_AT9S_FRAME_LEN) == HAL_OK)
|
AT9S_FRAME_LEN) == HAL_OK)
|
||||||
return DEVICE_OK;
|
return DEVICE_OK;
|
||||||
return DEVICE_ERR;
|
return DEVICE_ERR;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DEVICE_AT9S_WaitDmaCplt(uint32_t timeout)
|
bool AT9S_WaitDmaCplt(uint32_t timeout)
|
||||||
{
|
{
|
||||||
return (osThreadFlagsWait(SIGNAL_AT9S_RAW_REDY,
|
return (osThreadFlagsWait(SIGNAL_AT9S_RAW_REDY,
|
||||||
osFlagsWaitAll, timeout) == SIGNAL_AT9S_RAW_REDY);
|
osFlagsWaitAll, timeout) == SIGNAL_AT9S_RAW_REDY);
|
||||||
}
|
}
|
||||||
DEVICE_AT9S_Raw_t r;
|
AT9S_Raw_t r;
|
||||||
/* 解析 25 字节原始帧并填充结构体 */
|
/* 解析 25 字节原始帧并填充结构体 */
|
||||||
void DEVICE_AT9S_ParseRaw(const uint8_t raw[DEVICE_AT9S_FRAME_LEN], DEVICE_AT9S_t *out)
|
void AT9S_ParseRaw(const uint8_t raw[AT9S_FRAME_LEN], AT9S_t *out)
|
||||||
{
|
{
|
||||||
// DEVICE_AT9S_Raw_t r;
|
// AT9S_Raw_t r;
|
||||||
|
|
||||||
/* 摇杆 */
|
/* 摇杆 */
|
||||||
r.ch[0] = ((raw[1] | raw[2] << 8) & 0x07FF);
|
r.ch[0] = ((raw[1] | raw[2] << 8) & 0x07FF);
|
||||||
@ -85,37 +85,37 @@ void DEVICE_AT9S_ParseRaw(const uint8_t raw[DEVICE_AT9S_FRAME_LEN], DEVICE_AT9S_
|
|||||||
((v) >= 500 && (v) < 1500) ? AT9S_CMD_SW_MID : \
|
((v) >= 500 && (v) < 1500) ? AT9S_CMD_SW_MID : \
|
||||||
((v) >= 1500 && (v) < 1700) ? AT9S_CMD_SW_DOWN : AT9S_CMD_SW_ERR
|
((v) >= 1500 && (v) < 1700) ? AT9S_CMD_SW_DOWN : AT9S_CMD_SW_ERR
|
||||||
|
|
||||||
out->data.ch_l_x = 2.0f*(r.ch[3]-209.0f)/(1596.0f-209.0f)-1.0f;
|
out->data.rc.ch_l_x = 2.0f*(r.ch[3]-209.0f)/(1596.0f-209.0f)-1.0f;
|
||||||
out->data.ch_l_y = 2.0f*(r.ch[2]-178.0f)/(1575.0f-198.0f)-1.0f;
|
out->data.rc.ch_l_y = 2.0f*(r.ch[2]-178.0f)/(1575.0f-198.0f)-1.0f;
|
||||||
out->data.ch_r_x = 2.0f*(r.ch[0]-210.0f)/(1596.0f-210.0f)-1.0f;
|
out->data.rc.ch_r_x = 2.0f*(r.ch[0]-210.0f)/(1596.0f-210.0f)-1.0f;
|
||||||
out->data.ch_r_y = 2.0f*(r.ch[1]-221.0f)/(1604.0f-217.0f)-1.0f;
|
out->data.rc.ch_r_y = 2.0f*(r.ch[1]-221.0f)/(1604.0f-217.0f)-1.0f;
|
||||||
|
|
||||||
if(fabs(out->data.ch_l_x)<=DEAD_AREA)out->data.ch_l_x = 0;
|
if(fabs(out->data.rc.ch_l_x)<=DEAD_AREA)out->data.rc.ch_l_x = 0;
|
||||||
if(fabs(out->data.ch_l_y)<=4*DEAD_AREA)out->data.ch_l_y = 0;
|
if(fabs(out->data.rc.ch_l_y)<=4*DEAD_AREA)out->data.rc.ch_l_y = 0;
|
||||||
if(fabs(out->data.ch_r_x)<=DEAD_AREA)out->data.ch_r_x = 0;
|
if(fabs(out->data.rc.ch_r_x)<=DEAD_AREA)out->data.rc.ch_r_x = 0;
|
||||||
if(fabs(out->data.ch_r_y)<=DEAD_AREA)out->data.ch_r_y = 0;
|
if(fabs(out->data.rc.ch_r_y)<=DEAD_AREA)out->data.rc.ch_r_y = 0;
|
||||||
|
|
||||||
if(fabs(out->data.ch_l_x)>=1.0f)out->data.ch_l_x= out->data.ch_l_x>0?1.0f:-1.0f;
|
if(fabs(out->data.rc.ch_l_x)>=1.0f)out->data.rc.ch_l_x= out->data.rc.ch_l_x>0?1.0f:-1.0f;
|
||||||
if(fabs(out->data.ch_l_y)>=1.0f)out->data.ch_l_y= out->data.ch_l_y>0?1.0f:-1.0f;
|
if(fabs(out->data.rc.ch_l_y)>=1.0f)out->data.rc.ch_l_y= out->data.rc.ch_l_y>0?1.0f:-1.0f;
|
||||||
if(fabs(out->data.ch_r_x)>=1.0f)out->data.ch_r_x= out->data.ch_r_x>0?1.0f:-1.0f;
|
if(fabs(out->data.rc.ch_r_x)>=1.0f)out->data.rc.ch_r_x= out->data.rc.ch_r_x>0?1.0f:-1.0f;
|
||||||
if(fabs(out->data.ch_r_y)>=1.0f)out->data.ch_r_y= out->data.ch_r_y>0?1.0f:-1.0f;
|
if(fabs(out->data.rc.ch_r_y)>=1.0f)out->data.rc.ch_r_y= out->data.rc.ch_r_y>0?1.0f:-1.0f;
|
||||||
// out->data.ch_r_x = r.ch[0];
|
// out->data.ch_r_x = r.ch[0];
|
||||||
// out->data.ch_r_y = r.ch[1];
|
// out->data.ch_r_y = r.ch[1];
|
||||||
// out->data.ch_l_y = r.ch[2];
|
// out->data.ch_l_y = r.ch[2];
|
||||||
// out->data.ch_l_x = r.ch[3];
|
// out->data.ch_l_x = r.ch[3];
|
||||||
|
|
||||||
out->data.key_A = MAP_SWITCH_2(r.sw[0]);
|
out->data.rc.key_A = MAP_SWITCH_2(r.sw[0]);
|
||||||
out->data.key_B = MAP_SWITCH_2(r.sw[1]);
|
out->data.rc.key_B = MAP_SWITCH_2(r.sw[1]);
|
||||||
out->data.key_C = MAP_SWITCH_2(r.sw[2]);
|
out->data.rc.key_C = MAP_SWITCH_2(r.sw[2]);
|
||||||
out->data.key_D = MAP_SWITCH(r.sw[3]);
|
out->data.rc.key_D = MAP_SWITCH(r.sw[3]);
|
||||||
out->data.key_E = MAP_SWITCH(r.sw[4]);
|
out->data.rc.key_E = MAP_SWITCH(r.sw[4]);
|
||||||
out->data.key_F = MAP_SWITCH(r.sw[5]);
|
out->data.rc.key_F = MAP_SWITCH(r.sw[5]);
|
||||||
out->data.key_G = MAP_SWITCH_2(r.sw[6]);
|
out->data.rc.key_G = MAP_SWITCH_2(r.sw[6]);
|
||||||
out->data.key_H = MAP_SWITCH(r.sw[7]);
|
out->data.rc.key_H = MAP_SWITCH(r.sw[7]);
|
||||||
// out->knob_left = MAP_SWITCH(r.sw[6]);
|
// out->knob_left = MAP_SWITCH(r.sw[6]);
|
||||||
// out->knob_right = MAP_SWITCH(r.sw[7]);
|
// out->knob_right = MAP_SWITCH(r.sw[7]);
|
||||||
|
|
||||||
#undef MAP_SWITCH
|
#undef MAP_SWITCH
|
||||||
//check online.
|
//check online.
|
||||||
out->online = (r.sw[7] != 300&&r.ch[0] != 1000);
|
out->header.online = (r.sw[7] != 300&&r.ch[0] != 1000);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,14 +11,14 @@ extern "C" {
|
|||||||
#include "device.h"
|
#include "device.h"
|
||||||
|
|
||||||
/* Exported constants ------------------------------------------------------- */
|
/* Exported constants ------------------------------------------------------- */
|
||||||
#define DEVICE_AT9S_FRAME_LEN 25u
|
#define AT9S_FRAME_LEN 25u
|
||||||
|
|
||||||
/* Exported types ----------------------------------------------------------- */
|
/* Exported types ----------------------------------------------------------- */
|
||||||
typedef struct __attribute__((packed))
|
typedef struct __attribute__((packed))
|
||||||
{
|
{
|
||||||
int16_t ch[4]; /* 摇杆原始值 */
|
int16_t ch[4]; /* 摇杆原始值 */
|
||||||
int16_t sw[8]; /* 开关/旋钮原始值 */
|
int16_t sw[8]; /* 开关/旋钮原始值 */
|
||||||
} DEVICE_AT9S_Raw_t;
|
} AT9S_Raw_t;
|
||||||
|
|
||||||
/* 拨杆位置 */
|
/* 拨杆位置 */
|
||||||
typedef enum {
|
typedef enum {
|
||||||
@ -26,8 +26,7 @@ typedef enum {
|
|||||||
AT9S_CMD_SW_UP = 1,
|
AT9S_CMD_SW_UP = 1,
|
||||||
AT9S_CMD_SW_MID = 3,
|
AT9S_CMD_SW_MID = 3,
|
||||||
AT9S_CMD_SW_DOWN = 2,
|
AT9S_CMD_SW_DOWN = 2,
|
||||||
} COMP_AT9S_CMD_SwitchPos_t;
|
} AT9S_CMD_SwitchPos_t;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
float ch_l_x; /* 左摇杆 X */
|
float ch_l_x; /* 左摇杆 X */
|
||||||
@ -36,31 +35,35 @@ typedef struct
|
|||||||
float ch_r_y; /* 右摇杆 Y */
|
float ch_r_y; /* 右摇杆 Y */
|
||||||
|
|
||||||
/* 开关/旋钮离散化后状态 */
|
/* 开关/旋钮离散化后状态 */
|
||||||
COMP_AT9S_CMD_SwitchPos_t key_A;
|
AT9S_CMD_SwitchPos_t key_A;
|
||||||
COMP_AT9S_CMD_SwitchPos_t key_B;
|
AT9S_CMD_SwitchPos_t key_B;
|
||||||
COMP_AT9S_CMD_SwitchPos_t key_C;
|
AT9S_CMD_SwitchPos_t key_C;
|
||||||
COMP_AT9S_CMD_SwitchPos_t key_D;
|
AT9S_CMD_SwitchPos_t key_D;
|
||||||
COMP_AT9S_CMD_SwitchPos_t key_E;
|
AT9S_CMD_SwitchPos_t key_E;
|
||||||
COMP_AT9S_CMD_SwitchPos_t key_F;
|
AT9S_CMD_SwitchPos_t key_F;
|
||||||
COMP_AT9S_CMD_SwitchPos_t key_G;
|
AT9S_CMD_SwitchPos_t key_G;
|
||||||
COMP_AT9S_CMD_SwitchPos_t key_H;
|
AT9S_CMD_SwitchPos_t key_H;
|
||||||
float knob_left;
|
float knob_left;
|
||||||
float knob_right;
|
float knob_right;
|
||||||
float back_left;
|
float back_left;
|
||||||
float back_right;
|
float back_right;
|
||||||
} DEVICE_AT9S_Data_t;
|
} AT9S_DataRC_t;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{ bool online;
|
{
|
||||||
DEVICE_AT9S_Data_t data;
|
AT9S_DataRC_t rc;
|
||||||
} DEVICE_AT9S_t;
|
} AT9S_Data_t;
|
||||||
|
|
||||||
|
typedef struct{
|
||||||
|
DEVICE_Header_t header;
|
||||||
|
AT9S_Data_t data;
|
||||||
|
} AT9S_t;
|
||||||
|
|
||||||
/* Exported functions prototypes -------------------------------------------- */
|
/* Exported functions prototypes -------------------------------------------- */
|
||||||
int8_t DEVICE_AT9S_Init(DEVICE_AT9S_t *at9s);
|
int8_t AT9S_Init(AT9S_t *at9s);
|
||||||
int8_t DEVICE_AT9S_Restart(void);
|
int8_t AT9S_Restart(void);
|
||||||
int8_t DEVICE_AT9S_StartDmaRecv(uint8_t *cmd_buffer);
|
int8_t AT9S_StartDmaRecv(uint8_t *cmd_buffer);
|
||||||
bool DEVICE_AT9S_WaitDmaCplt(uint32_t timeout);
|
bool AT9S_WaitDmaCplt(uint32_t timeout);
|
||||||
void DEVICE_AT9S_ParseRaw(const uint8_t raw[DEVICE_AT9S_FRAME_LEN], DEVICE_AT9S_t *out);
|
void AT9S_ParseRaw(const uint8_t raw[AT9S_FRAME_LEN], AT9S_t *out);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
@ -40,6 +40,7 @@ typedef struct {
|
|||||||
|
|
||||||
/* USER STRUCT BEGIN */
|
/* USER STRUCT BEGIN */
|
||||||
#define SIGNAL_AT9S_RAW_REDY (1u << 7)
|
#define SIGNAL_AT9S_RAW_REDY (1u << 7)
|
||||||
|
#define SIGNAL_VT13_RAW_REDY (1u << 8)
|
||||||
/* USER STRUCT END */
|
/* USER STRUCT END */
|
||||||
|
|
||||||
/* USER FUNCTION BEGIN */
|
/* USER FUNCTION BEGIN */
|
||||||
|
|||||||
@ -120,37 +120,37 @@ int8_t DR16_ParseData(DR16_t *dr16){
|
|||||||
float full_range = (float)(DR16_CH_VALUE_MAX - DR16_CH_VALUE_MIN);
|
float full_range = (float)(DR16_CH_VALUE_MAX - DR16_CH_VALUE_MIN);
|
||||||
|
|
||||||
// 解析摇杆数据
|
// 解析摇杆数据
|
||||||
dr16->data.ch_r_x = 2.0f * ((float)dr16->raw_data.ch_r_x - DR16_CH_VALUE_MID) / full_range;
|
dr16->data.rc.ch_r_x = 2.0f * ((float)dr16->raw_data.ch_r_x - DR16_CH_VALUE_MID) / full_range;
|
||||||
dr16->data.ch_r_y = 2.0f * ((float)dr16->raw_data.ch_r_y - DR16_CH_VALUE_MID) / full_range;
|
dr16->data.rc.ch_r_y = 2.0f * ((float)dr16->raw_data.ch_r_y - DR16_CH_VALUE_MID) / full_range;
|
||||||
dr16->data.ch_l_x = 2.0f * ((float)dr16->raw_data.ch_l_x - DR16_CH_VALUE_MID) / full_range;
|
dr16->data.rc.ch_l_x = 2.0f * ((float)dr16->raw_data.ch_l_x - DR16_CH_VALUE_MID) / full_range;
|
||||||
dr16->data.ch_l_y = 2.0f * ((float)dr16->raw_data.ch_l_y - DR16_CH_VALUE_MID) / full_range;
|
dr16->data.rc.ch_l_y = 2.0f * ((float)dr16->raw_data.ch_l_y - DR16_CH_VALUE_MID) / full_range;
|
||||||
|
|
||||||
// 解析拨杆位置
|
// 解析拨杆位置
|
||||||
dr16->data.sw_l = (DR16_SwitchPos_t)dr16->raw_data.sw_l;
|
dr16->data.rc.sw_l = (DR16_SwitchPos_t)dr16->raw_data.sw_l;
|
||||||
dr16->data.sw_r = (DR16_SwitchPos_t)dr16->raw_data.sw_r;
|
dr16->data.rc.sw_r = (DR16_SwitchPos_t)dr16->raw_data.sw_r;
|
||||||
|
|
||||||
// 解析鼠标数据
|
// 解析鼠标数据
|
||||||
dr16->data.mouse.x = dr16->raw_data.x;
|
dr16->data.pc.mouse.x = dr16->raw_data.x;
|
||||||
dr16->data.mouse.y = dr16->raw_data.y;
|
dr16->data.pc.mouse.y = dr16->raw_data.y;
|
||||||
dr16->data.mouse.z = dr16->raw_data.z;
|
dr16->data.pc.mouse.z = dr16->raw_data.z;
|
||||||
|
|
||||||
dr16->data.mouse.l_click = dr16->raw_data.press_l;
|
dr16->data.pc.mouse.l_click = dr16->raw_data.press_l;
|
||||||
dr16->data.mouse.r_click = dr16->raw_data.press_r;
|
dr16->data.pc.mouse.r_click = dr16->raw_data.press_r;
|
||||||
|
|
||||||
// 解析键盘按键 - 使用union简化代码
|
// 解析键盘按键 - 使用union简化代码
|
||||||
uint16_t key_value = dr16->raw_data.key;
|
uint16_t key_value = dr16->raw_data.key;
|
||||||
|
|
||||||
// 解析键盘位映射(W-B键,位0-15)
|
// 解析键盘位映射(W-B键,位0-15)
|
||||||
for (int i = DR16_KEY_W; i <= DR16_KEY_B; i++) {
|
for (int i = DR16_KEY_W; i <= DR16_KEY_B; i++) {
|
||||||
dr16->data.keyboard.key[i] = (key_value & (1 << i)) != 0;
|
dr16->data.pc.keyboard.key[i] = (key_value & (1 << i)) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 解析鼠标点击
|
// 解析鼠标点击
|
||||||
dr16->data.keyboard.key[DR16_L_CLICK] = dr16->data.mouse.l_click;
|
dr16->data.pc.keyboard.key[DR16_L_CLICK] = dr16->data.pc.mouse.l_click;
|
||||||
dr16->data.keyboard.key[DR16_R_CLICK] = dr16->data.mouse.r_click;
|
dr16->data.pc.keyboard.key[DR16_R_CLICK] = dr16->data.pc.mouse.r_click;
|
||||||
|
|
||||||
// 解析第五通道
|
// 解析第五通道
|
||||||
dr16->data.ch_res = 2.0f * ((float)dr16->raw_data.res - DR16_CH_VALUE_MID) / full_range;
|
dr16->data.rc.ch_res = 2.0f * ((float)dr16->raw_data.res - DR16_CH_VALUE_MID) / full_range;
|
||||||
|
|
||||||
return DEVICE_OK;
|
return DEVICE_OK;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -66,8 +66,7 @@ typedef enum {
|
|||||||
DR16_R_CLICK,
|
DR16_R_CLICK,
|
||||||
DR16_KEY_NUM,
|
DR16_KEY_NUM,
|
||||||
} DR16_Key_t;
|
} DR16_Key_t;
|
||||||
|
typedef struct{
|
||||||
typedef struct {
|
|
||||||
float ch_l_x; /* 遥控器左侧摇杆横轴值,上为正 */
|
float ch_l_x; /* 遥控器左侧摇杆横轴值,上为正 */
|
||||||
float ch_l_y; /* 遥控器左侧摇杆纵轴值,右为正 */
|
float ch_l_y; /* 遥控器左侧摇杆纵轴值,右为正 */
|
||||||
float ch_r_x; /* 遥控器右侧摇杆横轴值,上为正 */
|
float ch_r_x; /* 遥控器右侧摇杆横轴值,上为正 */
|
||||||
@ -78,6 +77,9 @@ typedef struct {
|
|||||||
DR16_SwitchPos_t sw_r; /* 右侧拨杆位置 */
|
DR16_SwitchPos_t sw_r; /* 右侧拨杆位置 */
|
||||||
DR16_SwitchPos_t sw_l; /* 左侧拨杆位置 */
|
DR16_SwitchPos_t sw_l; /* 左侧拨杆位置 */
|
||||||
|
|
||||||
|
uint16_t res; /* 保留,未启用 */
|
||||||
|
}DR16_DataRC_t;
|
||||||
|
typedef struct{
|
||||||
struct {
|
struct {
|
||||||
int16_t x;
|
int16_t x;
|
||||||
int16_t y;
|
int16_t y;
|
||||||
@ -90,8 +92,10 @@ typedef struct {
|
|||||||
bool key[DR16_KEY_NUM]; /* 键盘按键值 */
|
bool key[DR16_KEY_NUM]; /* 键盘按键值 */
|
||||||
uint16_t value; /* 键盘按键值的位映射 */
|
uint16_t value; /* 键盘按键值的位映射 */
|
||||||
} keyboard;
|
} keyboard;
|
||||||
|
}DR16_DataPC_t;
|
||||||
uint16_t res; /* 保留,未启用 */
|
typedef struct {
|
||||||
|
DR16_DataRC_t rc;
|
||||||
|
DR16_DataPC_t pc;
|
||||||
} DR16_Data_t;
|
} DR16_Data_t;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|||||||
208
User/device/vt13.c
Normal file
208
User/device/vt13.c
Normal file
@ -0,0 +1,208 @@
|
|||||||
|
/*
|
||||||
|
VT13接收机
|
||||||
|
Example:
|
||||||
|
|
||||||
|
VT13_Init(&vt13);
|
||||||
|
|
||||||
|
while (1) {
|
||||||
|
VT13_StartDmaRecv(&vt13);
|
||||||
|
if (VT13_WaitDmaCplt(20)) {
|
||||||
|
if (VT13_Verify(&vt13)) {
|
||||||
|
VT13_ParseData(&vt13);
|
||||||
|
} else {
|
||||||
|
VT13_Offline(&vt13);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
VT13_Offline(&vt13);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Includes ----------------------------------------------------------------- */
|
||||||
|
#include "vt13.h"
|
||||||
|
#include "bsp/uart.h"
|
||||||
|
#include "bsp/time.h"
|
||||||
|
#include "device.h"
|
||||||
|
#include "component/crc16.h"
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
/* USER INCLUDE BEGIN */
|
||||||
|
|
||||||
|
/* USER INCLUDE END */
|
||||||
|
/* Private define ----------------------------------------------------------- */
|
||||||
|
#define VT13_CH_VALUE_MIN (364u)
|
||||||
|
#define VT13_CH_VALUE_MID (1024u)
|
||||||
|
#define VT13_CH_VALUE_MAX (1684u)
|
||||||
|
|
||||||
|
#define VT13_FRAMEHEADER1 0xA9
|
||||||
|
#define VT13_FRAMEHEADER2 0x53
|
||||||
|
/* USER DEFINE BEGIN */
|
||||||
|
|
||||||
|
/* USER DEFINE END */
|
||||||
|
|
||||||
|
/* Private macro ------------------------------------------------------------ */
|
||||||
|
/* Private typedef ---------------------------------------------------------- */
|
||||||
|
/* Private variables -------------------------------------------------------- */
|
||||||
|
|
||||||
|
static osThreadId_t thread_alert;
|
||||||
|
static bool inited = false;
|
||||||
|
|
||||||
|
/* Private function -------------------------------------------------------- */
|
||||||
|
static void VT13_RxCpltCallback(void) {
|
||||||
|
osThreadFlagsSet(thread_alert, SIGNAL_VT13_RAW_REDY);
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool VT13_Verify(VT13_t *vt13){
|
||||||
|
if (vt13 == NULL) return DEVICE_ERR_NULL;
|
||||||
|
|
||||||
|
if (vt13->raw_data.sof_1!=VT13_FRAMEHEADER1) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (vt13->raw_data.sof_2!=VT13_FRAMEHEADER2) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!CRC16_Verify((const uint8_t *)&(vt13->raw_data),
|
||||||
|
sizeof(VT13_RawData_t))) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool VT13_DataCorrupted(const VT13_t *vt13) {
|
||||||
|
if (vt13 == NULL) return DEVICE_ERR_NULL;
|
||||||
|
|
||||||
|
if ((vt13->raw_data.ch_0 < VT13_CH_VALUE_MIN) ||
|
||||||
|
(vt13->raw_data.ch_0 > VT13_CH_VALUE_MAX))
|
||||||
|
return DEVICE_ERR;
|
||||||
|
|
||||||
|
if ((vt13->raw_data.ch_1 < VT13_CH_VALUE_MIN) ||
|
||||||
|
(vt13->raw_data.ch_1 > VT13_CH_VALUE_MAX))
|
||||||
|
return DEVICE_ERR;
|
||||||
|
|
||||||
|
if ((vt13->raw_data.ch_2 < VT13_CH_VALUE_MIN) ||
|
||||||
|
(vt13->raw_data.ch_2 > VT13_CH_VALUE_MAX))
|
||||||
|
return DEVICE_ERR;
|
||||||
|
|
||||||
|
if ((vt13->raw_data.ch_3 < VT13_CH_VALUE_MIN) ||
|
||||||
|
(vt13->raw_data.ch_3 > VT13_CH_VALUE_MAX))
|
||||||
|
return DEVICE_ERR;
|
||||||
|
|
||||||
|
if ((vt13->raw_data.wheel < VT13_CH_VALUE_MIN) ||
|
||||||
|
(vt13->raw_data.wheel > VT13_CH_VALUE_MAX))
|
||||||
|
return DEVICE_ERR;
|
||||||
|
|
||||||
|
if (vt13->raw_data.mode_sw == 0) return DEVICE_ERR;
|
||||||
|
|
||||||
|
if (vt13->raw_data.pause == 0) return DEVICE_ERR;
|
||||||
|
|
||||||
|
if (vt13->raw_data.fn_1 == 0) return DEVICE_ERR;
|
||||||
|
|
||||||
|
if (vt13->raw_data.fn_2 == 0) return DEVICE_ERR;
|
||||||
|
|
||||||
|
return DEVICE_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Exported functions ------------------------------------------------------- */
|
||||||
|
int8_t VT13_Init(VT13_t *vt13) {
|
||||||
|
if (vt13 == NULL) return DEVICE_ERR_NULL;
|
||||||
|
if (inited) return DEVICE_ERR_INITED;
|
||||||
|
if ((thread_alert = osThreadGetId()) == NULL) return DEVICE_ERR_NULL;
|
||||||
|
|
||||||
|
BSP_UART_RegisterCallback(BSP_UART_AT9S_PRO, BSP_UART_RX_CPLT_CB,
|
||||||
|
VT13_RxCpltCallback);
|
||||||
|
|
||||||
|
inited = true;
|
||||||
|
return DEVICE_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
int8_t VT13_Restart(void) {
|
||||||
|
__HAL_UART_DISABLE(BSP_UART_GetHandle(BSP_UART_AT9S_PRO));
|
||||||
|
__HAL_UART_ENABLE(BSP_UART_GetHandle(BSP_UART_AT9S_PRO));
|
||||||
|
return DEVICE_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
int8_t VT13_StartDmaRecv(VT13_t *vt13) {
|
||||||
|
if (HAL_UART_Receive_DMA(BSP_UART_GetHandle(BSP_UART_AT9S_PRO),
|
||||||
|
(uint8_t *)&(vt13->raw_data),
|
||||||
|
sizeof(vt13->raw_data)) == HAL_OK)
|
||||||
|
return DEVICE_OK;
|
||||||
|
return DEVICE_ERR;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool VT13_WaitDmaCplt(uint32_t timeout) {
|
||||||
|
return (osThreadFlagsWait(SIGNAL_VT13_RAW_REDY, osFlagsWaitAll, timeout) ==
|
||||||
|
SIGNAL_VT13_RAW_REDY);
|
||||||
|
}
|
||||||
|
|
||||||
|
int8_t VT13_ParseData(VT13_t *vt13){
|
||||||
|
if (vt13 == NULL) return DEVICE_ERR_NULL;
|
||||||
|
|
||||||
|
if (!VT13_Verify(vt13)) {
|
||||||
|
return DEVICE_ERR;
|
||||||
|
}
|
||||||
|
if (VT13_DataCorrupted(vt13)) {
|
||||||
|
return DEVICE_ERR;
|
||||||
|
}
|
||||||
|
|
||||||
|
vt13->header.online = true;
|
||||||
|
vt13->header.last_online_time = BSP_TIME_Get_us();
|
||||||
|
|
||||||
|
memset(&(vt13->data), 0, sizeof(vt13->data));
|
||||||
|
|
||||||
|
float full_range = (float)(VT13_CH_VALUE_MAX - VT13_CH_VALUE_MIN);
|
||||||
|
|
||||||
|
// 解析摇杆数据
|
||||||
|
vt13->data.ch_r_x = 2.0f * ((float)vt13->raw_data.ch_0 - VT13_CH_VALUE_MID) / full_range;
|
||||||
|
vt13->data.ch_r_y = 2.0f * ((float)vt13->raw_data.ch_1 - VT13_CH_VALUE_MID) / full_range;
|
||||||
|
vt13->data.ch_l_x = 2.0f * ((float)vt13->raw_data.ch_2 - VT13_CH_VALUE_MID) / full_range;
|
||||||
|
vt13->data.ch_l_y = 2.0f * ((float)vt13->raw_data.ch_3 - VT13_CH_VALUE_MID) / full_range;
|
||||||
|
|
||||||
|
// 解析拨杆位置
|
||||||
|
vt13->data.sw_l = (VT13_SwitchPos_t)vt13->raw_data.fn_1;
|
||||||
|
vt13->data.sw_r = (VT13_SwitchPos_t)vt13->raw_data.fn_2;
|
||||||
|
vt13->data.sw_mode = (VT13_SwitchPos_t)vt13->raw_data.mode_sw;
|
||||||
|
vt13->data.sw_pause = (VT13_SwitchPos_t)vt13->raw_data.pause;
|
||||||
|
vt13->data.sw_trig = (VT13_SwitchPos_t)vt13->raw_data.trigger;
|
||||||
|
|
||||||
|
// 解析鼠标数据
|
||||||
|
vt13->data.mouse.x = vt13->raw_data.mouse_x;
|
||||||
|
vt13->data.mouse.y = vt13->raw_data.mouse_y;
|
||||||
|
vt13->data.mouse.z = vt13->raw_data.mouse_z;
|
||||||
|
|
||||||
|
vt13->data.mouse.l_click = vt13->raw_data.mouse_left;
|
||||||
|
vt13->data.mouse.m_click = vt13->raw_data.mouse_middle;
|
||||||
|
vt13->data.mouse.r_click = vt13->raw_data.mouse_right;
|
||||||
|
|
||||||
|
// 解析键盘按键 - 使用union简化代码
|
||||||
|
uint16_t key_value = vt13->raw_data.key;
|
||||||
|
|
||||||
|
// 解析键盘位映射(W-B键,位0-15)
|
||||||
|
for (int i = VT13_KEY_W; i <= VT13_KEY_B; i++) {
|
||||||
|
vt13->data.keyboard.key[i] = (key_value & (1 << i)) != 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 解析鼠标点击
|
||||||
|
vt13->data.keyboard.key[VT13_L_CLICK] = vt13->data.mouse.l_click;
|
||||||
|
vt13->data.keyboard.key[VT13_R_CLICK] = vt13->data.mouse.r_click;
|
||||||
|
|
||||||
|
// 解析第五通道
|
||||||
|
vt13->data.ch_res = 2.0f * ((float)vt13->raw_data.wheel - VT13_CH_VALUE_MID) / full_range;
|
||||||
|
|
||||||
|
return DEVICE_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
int8_t VT13_Offline(VT13_t *vt13){
|
||||||
|
if (vt13 == NULL) return DEVICE_ERR_NULL;
|
||||||
|
|
||||||
|
vt13->header.online = false;
|
||||||
|
memset(&(vt13->data), 0, sizeof(vt13->data));
|
||||||
|
|
||||||
|
return DEVICE_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* USER FUNCTION BEGIN */
|
||||||
|
|
||||||
|
/* USER FUNCTION END */
|
||||||
131
User/device/vt13.h
Normal file
131
User/device/vt13.h
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Includes ----------------------------------------------------------------- */
|
||||||
|
#include <cmsis_os2.h>
|
||||||
|
|
||||||
|
#include "component/user_math.h"
|
||||||
|
#include "device.h"
|
||||||
|
|
||||||
|
/* USER INCLUDE BEGIN */
|
||||||
|
|
||||||
|
/* USER INCLUDE END */
|
||||||
|
|
||||||
|
/* USER DEFINE BEGIN */
|
||||||
|
|
||||||
|
/* USER DEFINE END */
|
||||||
|
|
||||||
|
/* Exported constants ------------------------------------------------------- */
|
||||||
|
/* Exported macro ----------------------------------------------------------- */
|
||||||
|
/* Exported types ----------------------------------------------------------- */
|
||||||
|
typedef struct __packed {
|
||||||
|
uint8_t sof_1;
|
||||||
|
uint8_t sof_2;
|
||||||
|
uint64_t ch_0:11;
|
||||||
|
uint64_t ch_1:11;
|
||||||
|
uint64_t ch_2:11;
|
||||||
|
uint64_t ch_3:11;
|
||||||
|
uint64_t mode_sw:2;
|
||||||
|
uint64_t pause:1;
|
||||||
|
uint64_t fn_1:1;
|
||||||
|
uint64_t fn_2:1;
|
||||||
|
uint64_t wheel:11;
|
||||||
|
uint64_t trigger:1;
|
||||||
|
|
||||||
|
int16_t mouse_x;
|
||||||
|
int16_t mouse_y;
|
||||||
|
int16_t mouse_z;
|
||||||
|
uint8_t mouse_left:2;
|
||||||
|
uint8_t mouse_right:2;
|
||||||
|
uint8_t mouse_middle:2;
|
||||||
|
uint16_t key;
|
||||||
|
uint16_t crc16;
|
||||||
|
} VT13_RawData_t;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
VT13_SW_ERR = 0,
|
||||||
|
VT13_SW_UP = 1,
|
||||||
|
VT13_SW_MID = 3,
|
||||||
|
VT13_SW_DOWN = 2,
|
||||||
|
} VT13_SwitchPos_t;
|
||||||
|
|
||||||
|
/* 键盘按键值 */
|
||||||
|
typedef enum {
|
||||||
|
VT13_KEY_W = 0,
|
||||||
|
VT13_KEY_S,
|
||||||
|
VT13_KEY_A,
|
||||||
|
VT13_KEY_D,
|
||||||
|
VT13_KEY_SHIFT,
|
||||||
|
VT13_KEY_CTRL,
|
||||||
|
VT13_KEY_Q,
|
||||||
|
VT13_KEY_E,
|
||||||
|
VT13_KEY_R,
|
||||||
|
VT13_KEY_F,
|
||||||
|
VT13_KEY_G,
|
||||||
|
VT13_KEY_Z,
|
||||||
|
VT13_KEY_X,
|
||||||
|
VT13_KEY_C,
|
||||||
|
VT13_KEY_V,
|
||||||
|
VT13_KEY_B,
|
||||||
|
VT13_L_CLICK,
|
||||||
|
VT13_R_CLICK,
|
||||||
|
VT13_M_CLICK,
|
||||||
|
VT13_KEY_NUM,
|
||||||
|
} VT13_Key_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
float ch_l_x; /* 遥控器左侧摇杆横轴值,上为正 */
|
||||||
|
float ch_l_y; /* 遥控器左侧摇杆纵轴值,右为正 */
|
||||||
|
float ch_r_x; /* 遥控器右侧摇杆横轴值,上为正 */
|
||||||
|
float ch_r_y; /* 遥控器右侧摇杆纵轴值,右为正 */
|
||||||
|
|
||||||
|
float ch_res; /* 第五通道值 */
|
||||||
|
|
||||||
|
VT13_SwitchPos_t sw_r; /* 右侧拨杆位置 */
|
||||||
|
VT13_SwitchPos_t sw_l; /* 左侧拨杆位置 */
|
||||||
|
VT13_SwitchPos_t sw_mode; /* 模式拨杆位置 */
|
||||||
|
VT13_SwitchPos_t sw_pause; /* 暂停拨杆位置 */
|
||||||
|
VT13_SwitchPos_t sw_trig; /* 扳机位置 */
|
||||||
|
|
||||||
|
struct {
|
||||||
|
int16_t x;
|
||||||
|
int16_t y;
|
||||||
|
int16_t z;
|
||||||
|
bool l_click; /* 左键 */
|
||||||
|
bool m_click; /* 中键 */
|
||||||
|
bool r_click; /* 右键 */
|
||||||
|
} mouse; /* 鼠标值 */
|
||||||
|
|
||||||
|
union {
|
||||||
|
bool key[VT13_KEY_NUM]; /* 键盘按键值 */
|
||||||
|
uint16_t value; /* 键盘按键值的位映射 */
|
||||||
|
} keyboard;
|
||||||
|
|
||||||
|
uint16_t res; /* 保留,未启用 */
|
||||||
|
} VT13_Data_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
DEVICE_Header_t header;
|
||||||
|
VT13_RawData_t raw_data;
|
||||||
|
VT13_Data_t data;
|
||||||
|
} VT13_t;
|
||||||
|
|
||||||
|
/* Exported functions prototypes -------------------------------------------- */
|
||||||
|
int8_t VT13_Init(VT13_t *VT13);
|
||||||
|
int8_t VT13_Restart(void);
|
||||||
|
int8_t VT13_StartDmaRecv(VT13_t *VT13);
|
||||||
|
bool VT13_WaitDmaCplt(uint32_t timeout);
|
||||||
|
int8_t VT13_ParseData(VT13_t *VT13);
|
||||||
|
int8_t VT13_Offline(VT13_t *VT13);
|
||||||
|
|
||||||
|
/* USER FUNCTION BEGIN */
|
||||||
|
|
||||||
|
/* USER FUNCTION END */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@ -1,123 +1,85 @@
|
|||||||
/*
|
/*
|
||||||
控制命令
|
控制命令
|
||||||
*/
|
*/
|
||||||
#include <stdint.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include "module/cmd.h"
|
#include "module/cmd.h"
|
||||||
|
|
||||||
/*************************************************************************************************************************************/
|
#include <stdint.h>
|
||||||
/***************************************************************仲裁器****************************************************************/
|
#include <string.h>
|
||||||
/*************************************************************************************************************************************/
|
#include "bsp/time.h"
|
||||||
|
#include "device/vt13.h"
|
||||||
/* Includes ----------------------------------------------------------------- */
|
#include "module/shoot.h"
|
||||||
/* Private typedef ---------------------------------------------------------- */
|
|
||||||
/* Private define ----------------------------------------------------------- */
|
|
||||||
/* Private macro ------------------------------------------------------------ */
|
|
||||||
/* Private variables -------------------------------------------------------- */
|
|
||||||
/* Private function -------------------------------------------------------- */
|
|
||||||
static inline bool Cmd_isREFOnline(CMD_t *c){return c->input.ref.online;}
|
|
||||||
static inline bool Cmd_isNUCOnline(CMD_t *c){return c->input.nuc.online;}
|
|
||||||
static inline bool Cmd_isRCOnline(CMD_t *c){return c->input.rc.online;}
|
|
||||||
static inline bool Cmd_isPCOnline(CMD_t *c){return c->input.pc.online;}
|
|
||||||
CMD_InputSource_t Cmd_GetHighestPrioritySource(CMD_t *c) {
|
|
||||||
for (int i = 0; i < CMD_SRC_NUM; i++) {
|
|
||||||
CMD_InputSource_t source = c->params->sourcePriorityConfigs[i].source;
|
|
||||||
switch (source) {
|
|
||||||
case CMD_SRC_REF:
|
|
||||||
if (Cmd_isREFOnline(c)) {
|
|
||||||
return CMD_SRC_REF;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case CMD_SRC_NUC:
|
|
||||||
if (Cmd_isNUCOnline(c)) {
|
|
||||||
return CMD_SRC_NUC;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case CMD_SRC_RC:
|
|
||||||
if (Cmd_isRCOnline(c)) {
|
|
||||||
return CMD_SRC_RC;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case CMD_SRC_PC:
|
|
||||||
if (Cmd_isPCOnline(c)) {
|
|
||||||
return CMD_SRC_PC;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return CMD_SRC_ERR;
|
|
||||||
}
|
|
||||||
|
|
||||||
int8_t Cmd_Arbiter(CMD_t *c) {
|
|
||||||
if (c == NULL) {
|
|
||||||
return CMD_ERR_NULL; // 参数错误
|
|
||||||
}
|
|
||||||
CMD_InputSource_t source = Cmd_GetHighestPrioritySource(c);
|
|
||||||
|
|
||||||
c->output.chassis.source = source;
|
|
||||||
c->output.gimbal.source = source;
|
|
||||||
c->output.shoot.source = source;
|
|
||||||
|
|
||||||
return CMD_OK;
|
|
||||||
}
|
|
||||||
/* Exported functions ------------------------------------------------------- */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************************************************************************/
|
/*************************************************************************************************************************************/
|
||||||
/****************************************************************RC*******************************************************************/
|
/****************************************************************RC*******************************************************************/
|
||||||
/*************************************************************************************************************************************/
|
/*************************************************************************************************************************************/
|
||||||
/* API ---------------------------------------------------------------------- */
|
|
||||||
/* Mrobot生成 */
|
|
||||||
#define RC_SELECT_Index 1
|
|
||||||
/* 扩展接口 */
|
/* 扩展接口 */
|
||||||
#if RC_SELECT_Index == 0
|
#if CMD_RCTypeTable_Index == 0
|
||||||
#define FOR_EACH_RC(X) X(dr16, DR16)
|
#define CMD_RCType_TABLE(X) X(dr16, DR16)
|
||||||
#elif RC_SELECT_Index == 1
|
#elif CMD_RCTypeTable_Index == 1
|
||||||
#define FOR_EACH_RC(X) X(at9s, AT9S)
|
#define CMD_RCType_TABLE(X) X(at9s, AT9S)
|
||||||
|
#elif CMD_RCTypeTable_Index == 2
|
||||||
|
#define CMD_RCType_TABLE(X) X(vt13, VT13)
|
||||||
#endif
|
#endif
|
||||||
/* Includes ----------------------------------------------------------------- */
|
/* Includes ----------------------------------------------------------------- */
|
||||||
#if RC_SELECT_Index == 0
|
#if CMD_RCTypeTable_Index == 0
|
||||||
#include "device/dr16.h"
|
#include "device/dr16.h"
|
||||||
#elif RC_SELECT_Index == 1
|
#elif CMD_RCTypeTable_Index == 1
|
||||||
#include "device/at9s_pro.h"
|
#include "device/at9s_pro.h"
|
||||||
|
#elif CMD_RCTypeTable_Index == 2
|
||||||
|
#include "device/vt13.h"
|
||||||
#endif
|
#endif
|
||||||
|
/* Private macro ------------------------------------------------------------ */
|
||||||
|
/* 声明外部rc数据变量 */
|
||||||
|
#define CMDMACRO_EXTERNAL_RCDATA(name, NAME) extern NAME##_t name;
|
||||||
|
/* 声明CMD结构体的RC数据变量 */
|
||||||
|
#define CMDMACRO_VAR_RCDATA(name, NAME) NAME##_DataRC_t name;
|
||||||
|
/* 宏生成Cmd_RC_Get函数内容 */
|
||||||
|
#define CMDMACRO_Cmd_RC_Get(name, NAME) \
|
||||||
|
bool online= name.header.online; \
|
||||||
|
rc_buffer.name= name.data.rc; \
|
||||||
|
rc->online=online; \
|
||||||
|
rc->type = CMD_RCTypeTable_Index;
|
||||||
|
union CMD_RC_Data_t{
|
||||||
|
CMD_RCType_TABLE(CMDMACRO_VAR_RCDATA)
|
||||||
|
};
|
||||||
|
|
||||||
|
CMD_RCType_TABLE(CMDMACRO_EXTERNAL_RCDATA)
|
||||||
/* Private typedef ---------------------------------------------------------- */
|
/* Private typedef ---------------------------------------------------------- */
|
||||||
/* Private define ----------------------------------------------------------- */
|
/* Private define ----------------------------------------------------------- */
|
||||||
/* Private macro ------------------------------------------------------------ */
|
|
||||||
#define RC_X_FIELD_MACRO(name, NAME) DEVICE_##NAME##_t name;
|
|
||||||
#define RC_X_EXTERN_MACRO(name, NAME) extern DEVICE_##NAME##_t name##_out;
|
|
||||||
#define RC_X_COPYDEFINE_MACRO(name, NAME) \
|
|
||||||
static void copy_##name(rc_inputdata_u *dst) { dst->name = name##_out; }
|
|
||||||
#define RC_X_COPYREFERENCE_MACRO(name, NAME) copy_##name
|
|
||||||
union rc_inputdata_u{
|
|
||||||
DEVICE_AT9S_t at9s;
|
|
||||||
// FOR_EACH_RC(RC_X_FIELD_MACRO)
|
|
||||||
};
|
|
||||||
FOR_EACH_RC(RC_X_EXTERN_MACRO)
|
|
||||||
FOR_EACH_RC(RC_X_COPYDEFINE_MACRO)
|
|
||||||
/* Private variables -------------------------------------------------------- */
|
/* Private variables -------------------------------------------------------- */
|
||||||
/*静态缓冲区*/
|
/*静态缓冲区*/
|
||||||
//static rc_inputdata_u rc_buffer;
|
CMD_RC_Data_t rc_buffer;
|
||||||
rc_inputdata_u rc_buffer;
|
|
||||||
/* Private function -------------------------------------------------------- */
|
/* Private function -------------------------------------------------------- */
|
||||||
int8_t Cmd_RC_Get(CMD_Input_RC_t *rc)
|
int8_t Cmd_RC_Get(CMD_Input_RC_t *rc){
|
||||||
{
|
CMD_RCType_TABLE(CMDMACRO_Cmd_RC_Get);
|
||||||
FOR_EACH_RC(RC_X_COPYREFERENCE_MACRO)(&rc_buffer);
|
|
||||||
rc->data = &rc_buffer;
|
|
||||||
rc->online = rc->data->at9s.online;
|
|
||||||
rc->type = RC_SELECT_Index;
|
|
||||||
return CMD_OK;
|
return CMD_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int8_t Cmd_RC_BuildChassisCommandFromInput(CMD_t *c) {
|
int8_t Cmd_RC_BuildChassisCommandFromInput(CMD_t *c) {
|
||||||
if (c == NULL) {
|
if (c == NULL) {
|
||||||
return CMD_ERR_NULL; // 参数错误
|
return CMD_ERR_NULL; // 参数错误
|
||||||
}
|
}
|
||||||
#if RC_SELECT_Index == 0
|
#if CMD_RCTypeTable_Index == 0
|
||||||
c->input_rc.inputData->dr16.data =
|
switch (c->input.rc.data->dr16.sw_l) {
|
||||||
#elif RC_SELECT_Index == 1
|
case DR16_SW_DOWN:
|
||||||
switch (c->input.rc.data->at9s.data.key_E) {
|
c->output.chassis.cmd.mode = CHASSIS_MODE_ROTOR;
|
||||||
|
break;
|
||||||
|
case DR16_SW_MID:
|
||||||
|
c->output.chassis.cmd.mode = CHASSIS_MODE_FOLLOW_GIMBAL;
|
||||||
|
break;
|
||||||
|
case DR16_SW_UP:
|
||||||
|
c->output.chassis.cmd.mode = CHASSIS_MODE_BREAK;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
c->output.chassis.cmd.mode = CHASSIS_MODE_RELAX;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
c->output.chassis.cmd.ctrl_vec.vx = c->input.rc.data->dr16.ch_r_x;
|
||||||
|
c->output.chassis.cmd.ctrl_vec.vy = c->input.rc.data->dr16.ch_r_y;
|
||||||
|
#elif CMD_RCTypeTable_Index == 1
|
||||||
|
switch (c->input.rc.data->at9s.key_E) {
|
||||||
case AT9S_CMD_SW_DOWN:
|
case AT9S_CMD_SW_DOWN:
|
||||||
c->output.chassis.cmd.mode = CHASSIS_MODE_RELAX;
|
c->output.chassis.cmd.mode = CHASSIS_MODE_RELAX;
|
||||||
break;
|
break;
|
||||||
@ -131,9 +93,8 @@ int8_t Cmd_RC_BuildChassisCommandFromInput(CMD_t *c) {
|
|||||||
c->output.chassis.cmd.mode = CHASSIS_MODE_RELAX;
|
c->output.chassis.cmd.mode = CHASSIS_MODE_RELAX;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
c->output.chassis.cmd.ctrl_vec.vx = c->input.rc.data->at9s.data.ch_l_y;
|
c->output.chassis.cmd.ctrl_vec.vx = c->input.rc.data->at9s.ch_r_x;
|
||||||
c->output.chassis.cmd.ctrl_vec.vy = c->input.rc.data->at9s.data.ch_l_x;
|
c->output.chassis.cmd.ctrl_vec.vy = c->input.rc.data->at9s.ch_r_y;
|
||||||
c->output.chassis.cmd.ctrl_vec.wz = c->input.rc.data->at9s.data.ch_r_x;
|
|
||||||
#endif
|
#endif
|
||||||
return CMD_OK;
|
return CMD_OK;
|
||||||
}
|
}
|
||||||
@ -142,10 +103,31 @@ int8_t Cmd_RC_BuildGimbalCommandFromInput(CMD_t *c) {
|
|||||||
if (c == NULL) {
|
if (c == NULL) {
|
||||||
return CMD_ERR_NULL; // 参数错误
|
return CMD_ERR_NULL; // 参数错误
|
||||||
}
|
}
|
||||||
#if RC_SELECT_Index == 0
|
#if CMD_RCTypeTable_Index == 0
|
||||||
c->input_rc.input->dr16.data =
|
switch (c->input.rc.data->dr16.sw_l) {
|
||||||
#elif RC_SELECT_Index == 1
|
case DR16_SW_DOWN:
|
||||||
switch (c->input.rc.data->at9s.data.key_G) {
|
c->output.gimbal.cmd.mode = GIMBAL_MODE_ABSOLUTE;
|
||||||
|
c->output.gimbal.cmd.delta_yaw = 0.0f;
|
||||||
|
c->output.gimbal.cmd.delta_pit = 0.0f;
|
||||||
|
break;
|
||||||
|
case DR16_SW_MID:
|
||||||
|
c->output.gimbal.cmd.mode = GIMBAL_MODE_ABSOLUTE;
|
||||||
|
c->output.gimbal.cmd.delta_yaw = -c->input.rc.data->dr16.ch_l_x * 2.0f;
|
||||||
|
c->output.gimbal.cmd.delta_pit = -c->input.rc.data->dr16.ch_l_y * 1.5f;
|
||||||
|
break;
|
||||||
|
case DR16_SW_UP:
|
||||||
|
c->output.gimbal.cmd.mode = GIMBAL_MODE_RELAX;
|
||||||
|
c->output.gimbal.cmd.delta_yaw = -c->input.rc.data->dr16.ch_l_x * 2.0f;
|
||||||
|
c->output.gimbal.cmd.delta_pit = -c->input.rc.data->dr16.ch_l_y * 1.5f;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
c->output.gimbal.cmd.mode = GIMBAL_MODE_RELAX;
|
||||||
|
c->output.gimbal.cmd.delta_yaw = 0.0f;
|
||||||
|
c->output.gimbal.cmd.delta_pit = 0.0f;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#elif CMD_RCTypeTable_Index == 1
|
||||||
|
switch (c->input.rc.data->at9s.key_G) {
|
||||||
case AT9S_CMD_SW_DOWN:
|
case AT9S_CMD_SW_DOWN:
|
||||||
c->output.gimbal.cmd.mode = GIMBAL_MODE_RELAX;
|
c->output.gimbal.cmd.mode = GIMBAL_MODE_RELAX;
|
||||||
c->output.gimbal.cmd.delta_yaw = 0.0f;
|
c->output.gimbal.cmd.delta_yaw = 0.0f;
|
||||||
@ -153,13 +135,13 @@ int8_t Cmd_RC_BuildGimbalCommandFromInput(CMD_t *c) {
|
|||||||
break;
|
break;
|
||||||
case AT9S_CMD_SW_MID:
|
case AT9S_CMD_SW_MID:
|
||||||
c->output.gimbal.cmd.mode = GIMBAL_MODE_ABSOLUTE;
|
c->output.gimbal.cmd.mode = GIMBAL_MODE_ABSOLUTE;
|
||||||
c->output.gimbal.cmd.delta_yaw = -at9s_out.data.ch_l_x * 2.0f;
|
c->output.gimbal.cmd.delta_yaw = -c->input.rc.data->at9s.ch_l_x * 2.0f;
|
||||||
c->output.gimbal.cmd.delta_pit = -at9s_out.data.ch_l_y * 1.5f;
|
c->output.gimbal.cmd.delta_pit = -c->input.rc.data->at9s.ch_l_y * 1.5f;
|
||||||
break;
|
break;
|
||||||
case AT9S_CMD_SW_UP:
|
case AT9S_CMD_SW_UP:
|
||||||
c->output.gimbal.cmd.mode = GIMBAL_MODE_ABSOLUTE;
|
c->output.gimbal.cmd.mode = GIMBAL_MODE_ABSOLUTE;
|
||||||
c->output.gimbal.cmd.delta_yaw = -at9s_out.data.ch_l_x * 2.0f;
|
c->output.gimbal.cmd.delta_yaw = -c->input.rc.data->at9s.ch_l_x * 2.0f;
|
||||||
c->output.gimbal.cmd.delta_pit = -at9s_out.data.ch_l_y * 1.5f;
|
c->output.gimbal.cmd.delta_pit = -c->input.rc.data->at9s.ch_l_y * 1.5f;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
c->output.gimbal.cmd.mode = GIMBAL_MODE_RELAX;
|
c->output.gimbal.cmd.mode = GIMBAL_MODE_RELAX;
|
||||||
@ -176,11 +158,34 @@ int8_t Cmd_RC_BuildShootCommandFromInput(CMD_t *c) {
|
|||||||
if (c == NULL) {
|
if (c == NULL) {
|
||||||
return CMD_ERR_NULL; // 参数错误
|
return CMD_ERR_NULL; // 参数错误
|
||||||
}
|
}
|
||||||
#if RC_SELECT_Index == 0
|
#if CMD_RCTypeTable_Index == 0
|
||||||
c->input_rc.input->dr16.data =
|
c->output.shoot.cmd.online = c->input.rc.online;
|
||||||
#elif RC_SELECT_Index == 1
|
if (c->output.shoot.cmd.online) {
|
||||||
c->output.shoot.cmd.online = at9s_out.online;
|
c->output.shoot.cmd.mode=SHOOT_MODE_SINGLE;
|
||||||
switch (c->input.rc.data->at9s.data.key_C) {
|
} else {
|
||||||
|
c->output.shoot.cmd.mode=SHOOT_MODE_SAFE;
|
||||||
|
}
|
||||||
|
switch (c->input.rc.data->dr16.sw_r) {
|
||||||
|
case DR16_SW_DOWN:
|
||||||
|
c->output.shoot.cmd.ready = true;
|
||||||
|
c->output.shoot.cmd.firecmd = true;
|
||||||
|
break;
|
||||||
|
case DR16_SW_MID:
|
||||||
|
c->output.shoot.cmd.ready = true;
|
||||||
|
c->output.shoot.cmd.firecmd = false;
|
||||||
|
break;
|
||||||
|
case DR16_SW_UP:
|
||||||
|
c->output.shoot.cmd.ready = false;
|
||||||
|
c->output.shoot.cmd.firecmd = false;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
c->output.shoot.cmd.ready = false;
|
||||||
|
c->output.shoot.cmd.firecmd = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#elif CMD_RCTypeTable_Index == 1
|
||||||
|
c->output.shoot.cmd.online = c->input.rc.online;
|
||||||
|
switch (c->input.rc.data->at9s.key_C) {
|
||||||
case AT9S_CMD_SW_DOWN:
|
case AT9S_CMD_SW_DOWN:
|
||||||
c->output.shoot.cmd.ready = true;
|
c->output.shoot.cmd.ready = true;
|
||||||
c->output.shoot.cmd.firecmd = true;
|
c->output.shoot.cmd.firecmd = true;
|
||||||
@ -198,7 +203,7 @@ int8_t Cmd_RC_BuildShootCommandFromInput(CMD_t *c) {
|
|||||||
c->output.shoot.cmd.firecmd = false;
|
c->output.shoot.cmd.firecmd = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
switch (c->input.rc.data->at9s.data.key_D) {
|
switch (c->input.rc.data->at9s.key_D) {
|
||||||
case AT9S_CMD_SW_DOWN:
|
case AT9S_CMD_SW_DOWN:
|
||||||
c->output.shoot.cmd.mode=SHOOT_MODE_SINGLE;
|
c->output.shoot.cmd.mode=SHOOT_MODE_SINGLE;
|
||||||
break;
|
break;
|
||||||
@ -218,18 +223,9 @@ int8_t Cmd_RC_BuildShootCommandFromInput(CMD_t *c) {
|
|||||||
/*************************************************************************************************************************************/
|
/*************************************************************************************************************************************/
|
||||||
/*****************************************************************PC******************************************************************/
|
/*****************************************************************PC******************************************************************/
|
||||||
/*************************************************************************************************************************************/
|
/*************************************************************************************************************************************/
|
||||||
|
#ifndef CMD_NOPC_FLAG
|
||||||
/* Includes ----------------------------------------------------------------- */
|
|
||||||
/* Private typedef ---------------------------------------------------------- */
|
|
||||||
typedef int8_t (*CMD_BehaviorFunc)(CMD_t *c);
|
|
||||||
typedef struct {
|
|
||||||
CMD_Behavior_t behavior;
|
|
||||||
CMD_BehaviorFunc func;
|
|
||||||
} CMD_BehaviorHandlerFunc_t;
|
|
||||||
|
|
||||||
/* Private define ----------------------------------------------------------- */
|
|
||||||
/* Private macro ------------------------------------------------------------ */
|
/* Private macro ------------------------------------------------------------ */
|
||||||
#define PC_MACRO_BEHAVIOR_TABLE(X) \
|
#define CMD_PCBehavior_TABLE(X) \
|
||||||
X(FORE, CMD_MODULE_CHASSIS) \
|
X(FORE, CMD_MODULE_CHASSIS) \
|
||||||
X(BACK, CMD_MODULE_CHASSIS) \
|
X(BACK, CMD_MODULE_CHASSIS) \
|
||||||
X(LEFT, CMD_MODULE_CHASSIS) \
|
X(LEFT, CMD_MODULE_CHASSIS) \
|
||||||
@ -244,28 +240,93 @@ typedef struct {
|
|||||||
X(ROTOR, CMD_MODULE_CHASSIS) \
|
X(ROTOR, CMD_MODULE_CHASSIS) \
|
||||||
X(REVTRIG, CMD_MODULE_SHOOT) \
|
X(REVTRIG, CMD_MODULE_SHOOT) \
|
||||||
X(FOLLOWGIMBAL35, CMD_MODULE_CHASSIS)
|
X(FOLLOWGIMBAL35, CMD_MODULE_CHASSIS)
|
||||||
/* 函数声明宏 */
|
|
||||||
#define PC_MACRO_FOR_DECLARE_HANDLER_FUNCTION(BEHAVIOR, MODULE_MASK) \
|
/* 行为处理函数声明宏 */
|
||||||
|
#define CMDMACRO_FOR_DECLARE_BEHAVIOR_HANDLER_FUNCTION(BEHAVIOR, MODULE_MASK) \
|
||||||
static int8_t Cmd_PC_HandleBehavior##BEHAVIOR(CMD_t *c);
|
static int8_t Cmd_PC_HandleBehavior##BEHAVIOR(CMD_t *c);
|
||||||
/* 函数数组构建宏 */
|
/* 行为处理函数指针数组构建宏 */
|
||||||
#define PC_MACRO_FOR_BUILD_BEHAVIOR_HANDLER_ARRAY(BEHAVIOR, MODULE_MASK) \
|
#define CMDMACRO_FOR_BUILD_BEHAVIOR_HANDLER_ARRAY(BEHAVIOR, MODULE_MASK) \
|
||||||
{CMD_BEHAVIOR_##BEHAVIOR, Cmd_PC_HandleBehavior##BEHAVIOR},
|
{CMD_BEHAVIOR_##BEHAVIOR, Cmd_PC_HandleBehavior##BEHAVIOR},
|
||||||
/* 模块映射表构建宏 */
|
/* 行为模块映射表构建宏 */
|
||||||
#define PC_MACRO_FOR_BUILD_MODULE_TABLE(BEHAVIOR, MODULE_MASK) \
|
#define CMDMACRO_FOR_BUILD_MODULE_TABLE(BEHAVIOR, MODULE_MASK) \
|
||||||
[CMD_BEHAVIOR_##BEHAVIOR] = MODULE_MASK,
|
[CMD_BEHAVIOR_##BEHAVIOR] = MODULE_MASK,
|
||||||
/* 生成声明 */
|
/* 行为处理函数声明 */
|
||||||
PC_MACRO_BEHAVIOR_TABLE(PC_MACRO_FOR_DECLARE_HANDLER_FUNCTION)
|
CMD_PCBehavior_TABLE(CMDMACRO_FOR_DECLARE_BEHAVIOR_HANDLER_FUNCTION)
|
||||||
|
|
||||||
|
#define CMDMACRO_VAR_PCDATA(name, NAME) NAME##_DataPC_t name;
|
||||||
|
/* 宏展开函数内容 */
|
||||||
|
#define CMDMACRO_Cmd_PC_Get(name, NAME) \
|
||||||
|
bool online= name.header.online; \
|
||||||
|
pc_buffer.name= name.data.pc; \
|
||||||
|
pc->online=online;
|
||||||
|
#define CMDMACRO_PC_BuildChassisCommandFromInput(name, NAME) \
|
||||||
|
c->output.chassis.cmd.ctrl_vec.vx = 0.0f; \
|
||||||
|
c->output.chassis.cmd.ctrl_vec.vy = 0.0f; \
|
||||||
|
for (size_t i = 0; i < CMD_BEHAVIOR_NUM; i++) { \
|
||||||
|
CMD_ModuleMask_t moduleMask = behaviorModuleTable[i]; \
|
||||||
|
if (CMD_PC_IsMaskMatch(c, moduleMask)) { \
|
||||||
|
if (CMD_PC_IsBehaviorTriggered(c, i)) { \
|
||||||
|
behaviorHandlerFuncTable[i].func(c); \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
}
|
||||||
|
#define CMDMACRO_PC_BuildGimbalCommandFromInput(name, NAME) \
|
||||||
|
c->output.gimbal.cmd.mode = GIMBAL_MODE_ABSOLUTE; \
|
||||||
|
c->output.gimbal.cmd.delta_yaw = (float)c->input.pc.data->name.mouse.x * c->timer.dt * c->params->pc.sensitivity.sens_mouse; \
|
||||||
|
c->output.gimbal.cmd.delta_pit = (float)c->input.pc.data->name.mouse.y * c->timer.dt * c->params->pc.sensitivity.sens_mouse; \
|
||||||
|
for (size_t i = 0; i < CMD_BEHAVIOR_NUM; i++) { \
|
||||||
|
CMD_ModuleMask_t moduleMask = behaviorModuleTable[i]; \
|
||||||
|
if (CMD_PC_IsMaskMatch(c, moduleMask)) { \
|
||||||
|
if (CMD_PC_IsBehaviorTriggered(c, i)) { \
|
||||||
|
behaviorHandlerFuncTable[i].func(c); \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
}
|
||||||
|
#define CMDMACRO_PC_BuildShootCommandFromInput(name, NAME) \
|
||||||
|
c->output.shoot.cmd.firecmd = false; \
|
||||||
|
for (size_t i = 0; i < CMD_BEHAVIOR_NUM; i++) { \
|
||||||
|
CMD_ModuleMask_t moduleMask = behaviorModuleTable[i]; \
|
||||||
|
if (CMD_PC_IsMaskMatch(c, moduleMask)) { \
|
||||||
|
if (CMD_PC_IsBehaviorTriggered(c, i)) { \
|
||||||
|
behaviorHandlerFuncTable[i].func(c); \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
memcpy(c->input.pc.lastData->name.keyboard.key, c->input.pc.data->name.keyboard.key, sizeof(c->input.pc.data->name.keyboard.key)); \
|
||||||
|
c->input.pc.lastData->name.mouse.l_click = c->input.pc.data->name.mouse.l_click; \
|
||||||
|
c->input.pc.lastData->name.mouse.r_click = c->input.pc.data->name.mouse.r_click;
|
||||||
|
/* Private typedef ---------------------------------------------------------- */
|
||||||
|
typedef int8_t (*CMD_BehaviorFunc)(CMD_t *c);
|
||||||
|
typedef struct {
|
||||||
|
CMD_Behavior_t behavior;
|
||||||
|
CMD_BehaviorFunc func;
|
||||||
|
} CMD_BehaviorHandlerFunc_t;
|
||||||
|
|
||||||
|
union CMD_PC_Data_t {
|
||||||
|
CMD_RCType_TABLE(CMDMACRO_VAR_PCDATA)
|
||||||
|
};
|
||||||
|
union CMD_PC_LastData_t {
|
||||||
|
CMD_RCType_TABLE(CMDMACRO_VAR_PCDATA)
|
||||||
|
};
|
||||||
/* Private variables -------------------------------------------------------- */
|
/* Private variables -------------------------------------------------------- */
|
||||||
/* 行为处理函数映射表 */
|
/* 行为处理函数指针数组 */
|
||||||
CMD_BehaviorHandlerFunc_t behaviorHandlerFuncTable[CMD_BEHAVIOR_NUM] = {
|
CMD_BehaviorHandlerFunc_t behaviorHandlerFuncTable[CMD_BEHAVIOR_NUM] = {
|
||||||
PC_MACRO_BEHAVIOR_TABLE(PC_MACRO_FOR_BUILD_BEHAVIOR_HANDLER_ARRAY)
|
CMD_PCBehavior_TABLE(CMDMACRO_FOR_BUILD_BEHAVIOR_HANDLER_ARRAY)
|
||||||
};
|
};
|
||||||
/* 行为模块映射表 */
|
/* 行为模块映射表 */
|
||||||
static const CMD_ModuleMask_t behaviorModuleTable[CMD_BEHAVIOR_NUM] = {
|
static const CMD_ModuleMask_t behaviorModuleTable[CMD_BEHAVIOR_NUM] = {
|
||||||
PC_MACRO_BEHAVIOR_TABLE(PC_MACRO_FOR_BUILD_MODULE_TABLE)
|
CMD_PCBehavior_TABLE(CMDMACRO_FOR_BUILD_MODULE_TABLE)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* 静态缓冲区 */
|
||||||
|
CMD_PC_Data_t pc_buffer;
|
||||||
|
CMD_PC_LastData_t pc_lastdata_buffer;
|
||||||
/* Private function -------------------------------------------------------- */
|
/* Private function -------------------------------------------------------- */
|
||||||
|
int8_t Cmd_PC_Get(CMD_Input_PC_t *pc){
|
||||||
|
CMD_RCType_TABLE(CMDMACRO_Cmd_PC_Get);
|
||||||
|
return CMD_OK;
|
||||||
|
}
|
||||||
|
|
||||||
static int8_t Cmd_PC_HandleBehaviorFORE(CMD_t *c){
|
static int8_t Cmd_PC_HandleBehaviorFORE(CMD_t *c){
|
||||||
c->output.chassis.cmd.ctrl_vec.vy += c->params->pc.sensitivity.move_sense;
|
c->output.chassis.cmd.ctrl_vec.vy += c->params->pc.sensitivity.move_sense;
|
||||||
return CMD_OK;
|
return CMD_OK;
|
||||||
@ -354,13 +415,6 @@ static inline CMD_TriggerType_t CMD_PC_BehaviorToActive(CMD_t *c,
|
|||||||
CMD_Behavior_t behavior) {
|
CMD_Behavior_t behavior) {
|
||||||
return c->params->pc.map.key_map[behavior].trigger_type;
|
return c->params->pc.map.key_map[behavior].trigger_type;
|
||||||
}
|
}
|
||||||
extern CMD_PC_Data_t pc_out;
|
|
||||||
int8_t Cmd_PC_Get(CMD_Input_PC_t *pc)
|
|
||||||
{
|
|
||||||
pc->online = false;
|
|
||||||
// pc->data=pc_out;这里再想想咋写好
|
|
||||||
return CMD_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline bool CMD_PC_IsMaskMatch(CMD_t *c, CMD_ModuleMask_t module_mask) {
|
static inline bool CMD_PC_IsMaskMatch(CMD_t *c, CMD_ModuleMask_t module_mask) {
|
||||||
/* 构建当前各模块输入源状态的掩码 */
|
/* 构建当前各模块输入源状态的掩码 */
|
||||||
@ -383,15 +437,15 @@ static inline bool CMD_PC_IsBehaviorTriggered(CMD_t *c, CMD_Behavior_t behavior)
|
|||||||
|
|
||||||
/* 按下按键为鼠标左、右键 */
|
/* 按下按键为鼠标左、右键 */
|
||||||
if (value == CMD_L_CLICK) {
|
if (value == CMD_L_CLICK) {
|
||||||
now_key_pressed = c->input.pc.data.mouse.l_click;
|
now_key_pressed = c->input.pc.data->dr16.mouse.l_click;
|
||||||
last_key_pressed = c->input.pc.lastData.mouse.l_click;
|
last_key_pressed = c->input.pc.lastData->dr16.mouse.l_click;
|
||||||
} else if (value == CMD_R_CLICK) {
|
} else if (value == CMD_R_CLICK) {
|
||||||
now_key_pressed = c->input.pc.data.mouse.r_click;
|
now_key_pressed = c->input.pc.data->dr16.mouse.r_click;
|
||||||
last_key_pressed = c->input.pc.lastData.mouse.r_click;
|
last_key_pressed = c->input.pc.lastData->dr16.mouse.r_click;
|
||||||
} else {
|
} else {
|
||||||
/* 直接用布尔值 */
|
/* 直接用布尔值 */
|
||||||
now_key_pressed = c->input.pc.data.keyboard.key[value] & (1u << value);
|
now_key_pressed = c->input.pc.data->dr16.keyboard.key[value];
|
||||||
last_key_pressed = c->input.pc.lastData.keyboard.key[value] & (1u << value);
|
last_key_pressed = c->input.pc.lastData->dr16.keyboard.key[value];
|
||||||
/* 或者用位掩码 */
|
/* 或者用位掩码 */
|
||||||
// now_key_pressed = c->input.pc.data.keyboard.bitmask & (1u << value);
|
// now_key_pressed = c->input.pc.data.keyboard.bitmask & (1u << value);
|
||||||
// last_key_pressed = c->input.pc.lastData.keyboard.bitmask & (1u << value);
|
// last_key_pressed = c->input.pc.lastData.keyboard.bitmask & (1u << value);
|
||||||
@ -412,15 +466,16 @@ static int8_t Cmd_PC_BuildChassisCommandFromInput(CMD_t *c) {
|
|||||||
if (c == NULL) {
|
if (c == NULL) {
|
||||||
return CMD_ERR_NULL; // 参数错误
|
return CMD_ERR_NULL; // 参数错误
|
||||||
}
|
}
|
||||||
c->output.chassis.cmd.ctrl_vec.vx = c->output.chassis.cmd.ctrl_vec.vy = 0.0f;
|
// c->output.chassis.cmd.ctrl_vec.vx = c->output.chassis.cmd.ctrl_vec.vy = 0.0f;
|
||||||
for (size_t i = 0; i < CMD_BEHAVIOR_NUM; i++) {
|
// for (size_t i = 0; i < CMD_RCType_TABLE(CMDMACRO_KEYNUM); i++) {
|
||||||
CMD_ModuleMask_t moduleMask = behaviorModuleTable[i];
|
// CMD_ModuleMask_t moduleMask = behaviorModuleTable[i];
|
||||||
if (CMD_PC_IsMaskMatch(c, moduleMask)) {
|
// if (CMD_PC_IsMaskMatch(c, moduleMask)) {
|
||||||
if (CMD_PC_IsBehaviorTriggered(c, i)) {
|
// if (CMD_PC_IsBehaviorTriggered(c, i)) {
|
||||||
behaviorHandlerFuncTable[i].func(c);
|
// behaviorHandlerFuncTable[i].func(c);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
CMD_RCType_TABLE(CMDMACRO_PC_BuildChassisCommandFromInput);
|
||||||
return CMD_OK;
|
return CMD_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -428,17 +483,18 @@ static int8_t Cmd_PC_BuildGimbalCommandFromInput(CMD_t *c) {
|
|||||||
if (c == NULL) {
|
if (c == NULL) {
|
||||||
return CMD_ERR_NULL; // 参数错误
|
return CMD_ERR_NULL; // 参数错误
|
||||||
}
|
}
|
||||||
c->output.gimbal.cmd.mode = GIMBAL_MODE_ABSOLUTE;
|
// c->output.gimbal.cmd.mode = GIMBAL_MODE_ABSOLUTE;
|
||||||
c->output.gimbal.cmd.delta_yaw = (float)c->input.pc.data.mouse.x * c->timer.dt * c->params->pc.sensitivity.sens_mouse;
|
// c->output.gimbal.cmd.delta_yaw = (float)c->input.pc.data->dr16.mouse.x * c->timer.dt * c->params->pc.sensitivity.sens_mouse;
|
||||||
c->output.gimbal.cmd.delta_pit = (float)c->input.pc.data.mouse.y * c->timer.dt * c->params->pc.sensitivity.sens_mouse;
|
// c->output.gimbal.cmd.delta_pit = (float)c->input.pc.data->dr16.mouse.y * c->timer.dt * c->params->pc.sensitivity.sens_mouse;
|
||||||
for (size_t i = 0; i < CMD_BEHAVIOR_NUM; i++) {
|
// for (size_t i = 0; i < CMD_RCType_TABLE(CMDMACRO_KEYNUM); i++) {
|
||||||
CMD_ModuleMask_t moduleMask = behaviorModuleTable[i];
|
// CMD_ModuleMask_t moduleMask = behaviorModuleTable[i];
|
||||||
if (CMD_PC_IsMaskMatch(c, moduleMask)) {
|
// if (CMD_PC_IsMaskMatch(c, moduleMask)) {
|
||||||
if (CMD_PC_IsBehaviorTriggered(c, i)) {
|
// if (CMD_PC_IsBehaviorTriggered(c, i)) {
|
||||||
behaviorHandlerFuncTable[i].func(c);
|
// behaviorHandlerFuncTable[i].func(c);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
CMD_RCType_TABLE(CMDMACRO_PC_BuildGimbalCommandFromInput);
|
||||||
return CMD_OK;
|
return CMD_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -446,21 +502,48 @@ static int8_t Cmd_PC_BuildShootCommandFromInput(CMD_t *c) {
|
|||||||
if (c == NULL) {
|
if (c == NULL) {
|
||||||
return CMD_ERR_NULL; // 参数错误
|
return CMD_ERR_NULL; // 参数错误
|
||||||
}
|
}
|
||||||
c->output.shoot.cmd.firecmd = false;
|
// c->output.shoot.cmd.firecmd = false;
|
||||||
for (size_t i = 0; i < CMD_BEHAVIOR_NUM; i++) {
|
// for (size_t i = 0; i < CMD_RCType_TABLE(CMDMACRO_KEYNUM); i++) {
|
||||||
CMD_ModuleMask_t moduleMask = behaviorModuleTable[i];
|
// CMD_ModuleMask_t moduleMask = behaviorModuleTable[i];
|
||||||
if (CMD_PC_IsMaskMatch(c, moduleMask)) {
|
// if (CMD_PC_IsMaskMatch(c, moduleMask)) {
|
||||||
if (CMD_PC_IsBehaviorTriggered(c, i)) {
|
// if (CMD_PC_IsBehaviorTriggered(c, i)) {
|
||||||
behaviorHandlerFuncTable[i].func(c);
|
// behaviorHandlerFuncTable[i].func(c);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
memcpy(c->input.pc.lastData.keyboard.key, c->input.pc.data.keyboard.key, sizeof(c->input.pc.data.keyboard.key));
|
// memcpy(c->input.pc.lastData->dr16.keyboard.key, c->input.pc.data->dr16.keyboard.key, sizeof(c->input.pc.data->dr16.keyboard.key));
|
||||||
c->input.pc.lastData.mouse.l_click = c->input.pc.data.mouse.l_click;
|
// c->input.pc.lastData->dr16.mouse.l_click = c->input.pc.data->dr16.mouse.l_click;
|
||||||
c->input.pc.lastData.mouse.r_click = c->input.pc.data.mouse.r_click;
|
// c->input.pc.lastData->dr16.mouse.r_click = c->input.pc.data->dr16.mouse.r_click;
|
||||||
|
CMD_RCType_TABLE(CMDMACRO_PC_BuildShootCommandFromInput);
|
||||||
return CMD_OK;
|
return CMD_OK;
|
||||||
}
|
}
|
||||||
/* Exported functions ------------------------------------------------------- */
|
#else
|
||||||
|
static int8_t Cmd_PC_Get(CMD_Input_PC_t *pc) {
|
||||||
|
pc->online=false;
|
||||||
|
return CMD_OK;
|
||||||
|
}
|
||||||
|
static int8_t Cmd_PC_BuildChassisCommandFromInput(CMD_t *c) {
|
||||||
|
if (c == NULL) {
|
||||||
|
return CMD_ERR_NULL; // 参数错误
|
||||||
|
}
|
||||||
|
|
||||||
|
return CMD_OK;
|
||||||
|
}
|
||||||
|
static int8_t Cmd_PC_BuildGimbalCommandFromInput(CMD_t *c) {
|
||||||
|
if (c == NULL) {
|
||||||
|
return CMD_ERR_NULL; // 参数错误
|
||||||
|
}
|
||||||
|
|
||||||
|
return CMD_OK;
|
||||||
|
}
|
||||||
|
static int8_t Cmd_PC_BuildShootCommandFromInput(CMD_t *c) {
|
||||||
|
if (c == NULL) {
|
||||||
|
return CMD_ERR_NULL; // 参数错误
|
||||||
|
}
|
||||||
|
|
||||||
|
return CMD_OK;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*************************************************************************************************************************************/
|
/*************************************************************************************************************************************/
|
||||||
/****************************************************************NUC******************************************************************/
|
/****************************************************************NUC******************************************************************/
|
||||||
@ -539,9 +622,73 @@ int8_t Cmd_REF_BuildShootCommandFromInput(CMD_t *c) {
|
|||||||
|
|
||||||
return CMD_OK;
|
return CMD_OK;
|
||||||
}
|
}
|
||||||
|
/*************************************************************************************************************************************/
|
||||||
|
/***************************************************************仲裁器****************************************************************/
|
||||||
|
/*************************************************************************************************************************************/
|
||||||
|
|
||||||
|
/* Includes ----------------------------------------------------------------- */
|
||||||
|
/* Private typedef ---------------------------------------------------------- */
|
||||||
|
/* Private define ----------------------------------------------------------- */
|
||||||
|
/* Private macro ------------------------------------------------------------ */
|
||||||
|
/* Private variables -------------------------------------------------------- */
|
||||||
|
/* Private function -------------------------------------------------------- */
|
||||||
|
static inline bool Cmd_isREFOnline(CMD_t *c){return c->input.ref.online;}
|
||||||
|
static inline bool Cmd_isNUCOnline(CMD_t *c){return c->input.nuc.online;}
|
||||||
|
static inline bool Cmd_isRCOnline(CMD_t *c){return c->input.rc.online;}
|
||||||
|
static inline bool Cmd_isPCOnline(CMD_t *c){return c->input.pc.online;}
|
||||||
|
CMD_InputSource_t Cmd_GetHighestPrioritySource(CMD_t *c) {
|
||||||
|
for (int i = 0; i < CMD_SRC_NUM; i++) {
|
||||||
|
CMD_InputSource_t source = c->params->sourcePriorityConfigs[i].source;
|
||||||
|
switch (source) {
|
||||||
|
case CMD_SRC_REF:
|
||||||
|
if (Cmd_isREFOnline(c)) {
|
||||||
|
return CMD_SRC_REF;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case CMD_SRC_NUC:
|
||||||
|
if (Cmd_isNUCOnline(c)) {
|
||||||
|
return CMD_SRC_NUC;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case CMD_SRC_RC:
|
||||||
|
if (Cmd_isRCOnline(c)) {
|
||||||
|
return CMD_SRC_RC;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case CMD_SRC_PC:
|
||||||
|
if (Cmd_isPCOnline(c)) {
|
||||||
|
return CMD_SRC_PC;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return CMD_SRC_ERR;
|
||||||
|
}
|
||||||
|
|
||||||
|
int8_t Cmd_Arbiter(CMD_t *c) {
|
||||||
|
if (c == NULL) {
|
||||||
|
return CMD_ERR_NULL; // 参数错误
|
||||||
|
}
|
||||||
|
CMD_InputSource_t source = Cmd_GetHighestPrioritySource(c);
|
||||||
|
|
||||||
|
c->output.chassis.source = source;
|
||||||
|
c->output.gimbal.source = source;
|
||||||
|
c->output.shoot.source = source;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return CMD_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
int8_t Cmd_Switch_RCorPC(CMD_t *c) {
|
||||||
|
if (c == NULL) {
|
||||||
|
return CMD_ERR_NULL; // 参数错误
|
||||||
|
}
|
||||||
|
|
||||||
|
return CMD_OK;
|
||||||
|
}
|
||||||
|
|
||||||
/*************************************************************************************************************************************/
|
/*************************************************************************************************************************************/
|
||||||
/***************************************************************分发命令***************************************************************/
|
/***************************************************************主结构*****************************************************************/
|
||||||
/*************************************************************************************************************************************/
|
/*************************************************************************************************************************************/
|
||||||
|
|
||||||
/* Includes ----------------------------------------------------------------- */
|
/* Includes ----------------------------------------------------------------- */
|
||||||
@ -553,8 +700,6 @@ typedef struct {
|
|||||||
CMD_BuildCommandFunc gimbalFunc;
|
CMD_BuildCommandFunc gimbalFunc;
|
||||||
CMD_BuildCommandFunc shootFunc;
|
CMD_BuildCommandFunc shootFunc;
|
||||||
} CMD_SourceHandler_t;
|
} CMD_SourceHandler_t;
|
||||||
/* Private define ----------------------------------------------------------- */
|
|
||||||
#include "bsp/time.h"
|
|
||||||
/* Private macro ------------------------------------------------------------ */
|
/* Private macro ------------------------------------------------------------ */
|
||||||
/* Private variables -------------------------------------------------------- */
|
/* Private variables -------------------------------------------------------- */
|
||||||
CMD_SourceHandler_t sourceHandlers[CMD_SRC_NUM] = {
|
CMD_SourceHandler_t sourceHandlers[CMD_SRC_NUM] = {
|
||||||
@ -571,6 +716,7 @@ int8_t Cmd_OFFLINE(CMD_t *c) {
|
|||||||
c->output.chassis.cmd.mode =CHASSIS_MODE_RELAX;
|
c->output.chassis.cmd.mode =CHASSIS_MODE_RELAX;
|
||||||
c->output.gimbal.cmd.mode =GIMBAL_MODE_RELAX;
|
c->output.gimbal.cmd.mode =GIMBAL_MODE_RELAX;
|
||||||
c->output.shoot.cmd.mode =SHOOT_MODE_SAFE;
|
c->output.shoot.cmd.mode =SHOOT_MODE_SAFE;
|
||||||
|
return CMD_OK;
|
||||||
}
|
}
|
||||||
/* Exported functions ------------------------------------------------------- */
|
/* Exported functions ------------------------------------------------------- */
|
||||||
int8_t Cmd_Init(CMD_t *c, CMD_Params_t *params) {
|
int8_t Cmd_Init(CMD_t *c, CMD_Params_t *params) {
|
||||||
@ -579,6 +725,11 @@ int8_t Cmd_Init(CMD_t *c, CMD_Params_t *params) {
|
|||||||
return CMD_ERR_NULL; // 参数错误
|
return CMD_ERR_NULL; // 参数错误
|
||||||
}
|
}
|
||||||
c->params = params;
|
c->params = params;
|
||||||
|
c->input.rc.data=&rc_buffer;
|
||||||
|
#ifndef CMD_NOPC_FLAG
|
||||||
|
c->input.pc.lastData=&pc_lastdata_buffer;
|
||||||
|
c->input.pc.data=&pc_buffer;
|
||||||
|
#endif
|
||||||
return CMD_OK;
|
return CMD_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -19,9 +19,14 @@ extern "C" {
|
|||||||
#define CMD_ERR_ERR (-2) /* 运行时发现了其他错误 */
|
#define CMD_ERR_ERR (-2) /* 运行时发现了其他错误 */
|
||||||
#define CMD_ERR_SOURCE (-3) /* 运行时配置了不存在的输入源 */
|
#define CMD_ERR_SOURCE (-3) /* 运行时配置了不存在的输入源 */
|
||||||
/* Exported macro ----------------------------------------------------------- */
|
/* Exported macro ----------------------------------------------------------- */
|
||||||
|
#define CMD_RCTypeTable_Index 0 /* 0:DR16 1:AT9S 2:VT13 */
|
||||||
|
|
||||||
|
#if CMD_RCTypeTable_Index == 1
|
||||||
|
#define CMD_NOPC_FLAG
|
||||||
|
#endif
|
||||||
/* Exported types ----------------------------------------------------------- */
|
/* Exported types ----------------------------------------------------------- */
|
||||||
|
|
||||||
typedef union rc_inputdata_u rc_inputdata_u;
|
typedef union CMD_RC_Data_t CMD_RC_Data_t;
|
||||||
|
|
||||||
#define CMD_REFEREE_MAX_NUM (3) /* 发送命令限定的最大数量 */
|
#define CMD_REFEREE_MAX_NUM (3) /* 发送命令限定的最大数量 */
|
||||||
|
|
||||||
@ -39,8 +44,8 @@ typedef enum {
|
|||||||
typedef struct {
|
typedef struct {
|
||||||
bool online;
|
bool online;
|
||||||
enum {DR16=0, AT9S} type;
|
enum {DR16=0, AT9S} type;
|
||||||
rc_inputdata_u *data;
|
CMD_RC_Data_t *data;
|
||||||
} CMD_Input_RC_t;
|
} CMD_Input_RC_t;//或者这里直接把CMD_Input_RC_t前向声明了,看哪个好看
|
||||||
|
|
||||||
/* RC part end---------------------------------------- */
|
/* RC part end---------------------------------------- */
|
||||||
|
|
||||||
@ -74,7 +79,6 @@ typedef enum {
|
|||||||
CMD_R_CLICK,
|
CMD_R_CLICK,
|
||||||
CMD_KEY_NUM,
|
CMD_KEY_NUM,
|
||||||
} CMD_PCValue_t;
|
} CMD_PCValue_t;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
CMD_ACTIVE_RISING_EDGE, /* 按下时触发 */
|
CMD_ACTIVE_RISING_EDGE, /* 按下时触发 */
|
||||||
CMD_ACTIVE_FALLING_EDGE, /* 抬起时触发 */
|
CMD_ACTIVE_FALLING_EDGE, /* 抬起时触发 */
|
||||||
@ -116,43 +120,24 @@ typedef struct {
|
|||||||
float move_slow_sense; /* 慢速移动灵敏度 */
|
float move_slow_sense; /* 慢速移动灵敏度 */
|
||||||
} CMD_PC_Sensitivity_t;
|
} CMD_PC_Sensitivity_t;
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
bool online;
|
|
||||||
struct {
|
|
||||||
int16_t x;
|
|
||||||
int16_t y;
|
|
||||||
int16_t z;
|
|
||||||
bool l_click; /* 左键 */
|
|
||||||
bool r_click; /* 右键 */
|
|
||||||
} mouse; /* 鼠标值 */
|
|
||||||
union {
|
|
||||||
bool key[CMD_KEY_NUM]; /* 键盘按键值 */
|
|
||||||
uint16_t bitmask; /* 键盘按键值的位映射 */
|
|
||||||
} keyboard;
|
|
||||||
} CMD_PC_Data_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
struct {
|
|
||||||
bool l_click; /* 左键 */
|
|
||||||
bool r_click; /* 右键 */
|
|
||||||
} mouse; /* 鼠标值 */
|
|
||||||
union {
|
|
||||||
bool key[CMD_KEY_NUM]; /* 键盘按键值 */
|
|
||||||
uint16_t bitmask; /* 键盘按键值的位映射 */
|
|
||||||
} keyboard;
|
|
||||||
} CMD_PC_LastData_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
bool online;
|
|
||||||
CMD_PC_Data_t data;
|
|
||||||
CMD_PC_LastData_t lastData;
|
|
||||||
}CMD_Input_PC_t;
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
CMD_KeyMap_Params_t map; /* 按键映射行为命令 */
|
CMD_KeyMap_Params_t map; /* 按键映射行为命令 */
|
||||||
CMD_PC_Sensitivity_t sensitivity; /* PC灵敏度设置 */
|
CMD_PC_Sensitivity_t sensitivity; /* PC灵敏度设置 */
|
||||||
}CMD_PCParams_t;
|
}CMD_PCParams_t;
|
||||||
|
#ifndef CMD_NOPC_FLAG
|
||||||
|
typedef union CMD_PC_Data_t CMD_PC_Data_t;
|
||||||
|
typedef union CMD_PC_LastData_t CMD_PC_LastData_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
bool online;
|
||||||
|
CMD_PC_Data_t *data;
|
||||||
|
CMD_PC_LastData_t *lastData;
|
||||||
|
}CMD_Input_PC_t;
|
||||||
|
#else
|
||||||
|
typedef struct {
|
||||||
|
bool online;
|
||||||
|
}CMD_Input_PC_t;
|
||||||
|
#endif
|
||||||
/* PC part end---------------------------------------- */
|
/* PC part end---------------------------------------- */
|
||||||
|
|
||||||
/* NUC part begin------------------------------------- */
|
/* NUC part begin------------------------------------- */
|
||||||
|
|||||||
@ -142,7 +142,7 @@ Config_RobotParam_t robot_config = {
|
|||||||
},
|
},
|
||||||
.travel = {
|
.travel = {
|
||||||
.yaw = -1.0f,
|
.yaw = -1.0f,
|
||||||
.pit = 0.85367393f,
|
.pit = 0.6,
|
||||||
},
|
},
|
||||||
.low_pass_cutoff_freq = {
|
.low_pass_cutoff_freq = {
|
||||||
.out = -1.0f,
|
.out = -1.0f,
|
||||||
@ -172,7 +172,6 @@ Config_RobotParam_t robot_config = {
|
|||||||
.num_trig_tooth=5,
|
.num_trig_tooth=5,
|
||||||
.shot_freq=1.0f,
|
.shot_freq=1.0f,
|
||||||
.shot_burst_num=3,
|
.shot_burst_num=3,
|
||||||
.num_multilevel=2,
|
|
||||||
.ratio_multilevel = {0.8f, 1.0f},
|
.ratio_multilevel = {0.8f, 1.0f},
|
||||||
},
|
},
|
||||||
.jamDetection={
|
.jamDetection={
|
||||||
@ -237,7 +236,7 @@ Config_RobotParam_t robot_config = {
|
|||||||
.can = BSP_CAN_2,
|
.can = BSP_CAN_2,
|
||||||
.id = 0x206,
|
.id = 0x206,
|
||||||
.module = MOTOR_M3508,
|
.module = MOTOR_M3508,
|
||||||
.reverse = false,
|
.reverse = true,
|
||||||
.gear = false,
|
.gear = false,
|
||||||
},
|
},
|
||||||
.level=2,
|
.level=2,
|
||||||
@ -253,23 +252,23 @@ Config_RobotParam_t robot_config = {
|
|||||||
},
|
},
|
||||||
.pid={
|
.pid={
|
||||||
.fric_follow = {
|
.fric_follow = {
|
||||||
.k=0.2f,//1
|
.k=1.0f,
|
||||||
.p=1.8f,
|
.p=1.5f,
|
||||||
.i=0.1f,
|
.i=0.3f,
|
||||||
.d=0.05f,
|
.d=0.0f,
|
||||||
.i_limit=0.1f,
|
.i_limit=0.2f,
|
||||||
.out_limit=0.9f,
|
.out_limit=0.9f,
|
||||||
.d_cutoff_freq=30.0f,
|
.d_cutoff_freq=-1.0f,
|
||||||
.range=-1.0f,
|
.range=-1.0f,
|
||||||
},
|
},
|
||||||
.fric_err = {
|
.fric_err = {
|
||||||
.k=0.0f,
|
.k=0.0f,
|
||||||
.p=4.0f,
|
.p=4.0f,
|
||||||
.i=0.4f,
|
.i=0.4f,
|
||||||
.d=0.04f,
|
.d=0.0f,
|
||||||
.i_limit=0.25f,
|
.i_limit=0.25f,
|
||||||
.out_limit=0.01f,
|
.out_limit=0.25f,
|
||||||
.d_cutoff_freq=40.0f,
|
.d_cutoff_freq=-1.0f,
|
||||||
.range=-1.0f,
|
.range=-1.0f,
|
||||||
},
|
},
|
||||||
.trig_2006 = {
|
.trig_2006 = {
|
||||||
@ -347,10 +346,10 @@ Config_RobotParam_t robot_config = {
|
|||||||
},
|
},
|
||||||
.pc.sensitivity={
|
.pc.sensitivity={
|
||||||
|
|
||||||
.move_sense=1.0f,
|
.move_sense=1.6f,
|
||||||
.sens_mouse=0.002f,
|
.sens_mouse=0.06f,
|
||||||
.move_fast_sense=2.0f,
|
.move_fast_sense=2.4f,
|
||||||
.move_slow_sense=0.5f
|
.move_slow_sense=0.8f
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -50,7 +50,7 @@ static int8_t Gimbal_SetMode(Gimbal_t *g, Gimbal_Mode_t mode) {
|
|||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
g->setpoint.eulr.pit = g->feedback.motor.pit.rotor_abs_angle;
|
g->setpoint.eulr.pit = g->feedback.motor.pit.rotor_abs_angle;
|
||||||
g->setpoint.eulr.yaw = g->feedback.imu.eulr.yaw;
|
g->setpoint.eulr.yaw = g->feedback.motor.yaw.rotor_abs_angle;
|
||||||
|
|
||||||
g->mode = mode;
|
g->mode = mode;
|
||||||
return 0;
|
return 0;
|
||||||
@ -67,7 +67,7 @@ static int8_t Gimbal_SetMode(Gimbal_t *g, Gimbal_Mode_t mode) {
|
|||||||
*
|
*
|
||||||
* \return 函数运行结果
|
* \return 函数运行结果
|
||||||
*/
|
*/
|
||||||
int8_t Gimbal_Init(Gimbal_t *g, const Gimbal_Params_t *param,
|
int8_t Gimbal_Init(Gimbal_t *g, Gimbal_Params_t *param,
|
||||||
float target_freq) {
|
float target_freq) {
|
||||||
if (g == NULL)
|
if (g == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
@ -165,7 +165,7 @@ int8_t Gimbal_Control(Gimbal_t *g, Gimbal_CMD_t *g_cmd) {
|
|||||||
float delta_yaw = g_cmd->delta_yaw * g->dt * 1.5f;
|
float delta_yaw = g_cmd->delta_yaw * g->dt * 1.5f;
|
||||||
if (g->param->travel.yaw > 0) {
|
if (g->param->travel.yaw > 0) {
|
||||||
/* 计算当前电机角度与IMU角度的偏差 */
|
/* 计算当前电机角度与IMU角度的偏差 */
|
||||||
float motor_imu_offset = g->feedback.motor.yaw.rotor_abs_angle - g->feedback.imu.eulr.yaw;
|
float motor_imu_offset = g->feedback.motor.yaw.rotor_abs_angle - g->feedback.motor.yaw.rotor_abs_angle;
|
||||||
/* 处理跨越±π的情况 */
|
/* 处理跨越±π的情况 */
|
||||||
if (motor_imu_offset > M_PI) motor_imu_offset -= M_2PI;
|
if (motor_imu_offset > M_PI) motor_imu_offset -= M_2PI;
|
||||||
if (motor_imu_offset < -M_PI) motor_imu_offset += M_2PI;
|
if (motor_imu_offset < -M_PI) motor_imu_offset += M_2PI;
|
||||||
@ -214,7 +214,7 @@ int8_t Gimbal_Control(Gimbal_t *g, Gimbal_CMD_t *g_cmd) {
|
|||||||
|
|
||||||
case GIMBAL_MODE_ABSOLUTE:
|
case GIMBAL_MODE_ABSOLUTE:
|
||||||
yaw_omega_set_point = PID_Calc(&(g->pid.yaw_angle), g->setpoint.eulr.yaw,
|
yaw_omega_set_point = PID_Calc(&(g->pid.yaw_angle), g->setpoint.eulr.yaw,
|
||||||
g->feedback.imu.eulr.yaw, 0.0f, g->dt);
|
g->feedback.motor.yaw.rotor_abs_angle, 0.0f, g->dt);
|
||||||
g->out.yaw = PID_Calc(&(g->pid.pit_omega), yaw_omega_set_point,
|
g->out.yaw = PID_Calc(&(g->pid.pit_omega), yaw_omega_set_point,
|
||||||
g->feedback.imu.gyro.z, 0.f, g->dt);
|
g->feedback.imu.gyro.z, 0.f, g->dt);
|
||||||
|
|
||||||
|
|||||||
@ -141,7 +141,7 @@ typedef struct {
|
|||||||
*
|
*
|
||||||
* \return 函数运行结果
|
* \return 函数运行结果
|
||||||
*/
|
*/
|
||||||
int8_t Gimbal_Init(Gimbal_t *g, const Gimbal_Params_t *param,
|
int8_t Gimbal_Init(Gimbal_t *g, Gimbal_Params_t *param,
|
||||||
float target_freq);
|
float target_freq);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -31,6 +31,7 @@ void Task(void *argument) {
|
|||||||
|
|
||||||
|
|
||||||
/* Includes ----------------------------------------------------------------- */
|
/* Includes ----------------------------------------------------------------- */
|
||||||
|
#include <math.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "shoot.h"
|
#include "shoot.h"
|
||||||
#include "bsp/mm.h"
|
#include "bsp/mm.h"
|
||||||
@ -58,7 +59,6 @@ int8_t Shoot_SetMode(Shoot_t *s, Shoot_Mode_t mode)
|
|||||||
return SHOOT_ERR_NULL; // 参数错误
|
return SHOOT_ERR_NULL; // 参数错误
|
||||||
}
|
}
|
||||||
s->mode=mode;
|
s->mode=mode;
|
||||||
s->anglecalu.num_toShoot=0;
|
|
||||||
return SHOOT_OK;
|
return SHOOT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -189,21 +189,54 @@ int8_t Shoot_CaluTargetRPM(Shoot_t *s, float target_speed)
|
|||||||
*/
|
*/
|
||||||
int8_t Shoot_CaluTargetAngle(Shoot_t *s, Shoot_CMD_t *cmd)
|
int8_t Shoot_CaluTargetAngle(Shoot_t *s, Shoot_CMD_t *cmd)
|
||||||
{
|
{
|
||||||
if (s == NULL || s->anglecalu.num_toShoot == 0) {
|
if (s == NULL || s->var_trig.num_toShoot == 0) {
|
||||||
return SHOOT_ERR_NULL;
|
return SHOOT_ERR_NULL;
|
||||||
}
|
}
|
||||||
float dt = s->timer.now - s->anglecalu.time_lastShoot;
|
float dt = s->timer.now - s->var_trig.time_lastShoot;
|
||||||
float dpos;
|
float dpos;
|
||||||
dpos = CircleError(s->target_variable.trig_angle, s->feedback.trig_agl, M_2PI);
|
dpos = CircleError(s->target_variable.trig_angle, s->var_trig.trig_agl, M_2PI);
|
||||||
if(dt >= 1.0f/s->param->basic.shot_freq && cmd->firecmd && dpos<=1.0f)
|
if(dt >= 1.0f/s->param->basic.shot_freq && cmd->firecmd && dpos<=1.0f)
|
||||||
{
|
{
|
||||||
s->anglecalu.time_lastShoot=s->timer.now;
|
s->var_trig.time_lastShoot=s->timer.now;
|
||||||
CircleAdd(&s->target_variable.trig_angle, M_2PI/s->param->basic.num_trig_tooth, M_2PI);
|
CircleAdd(&s->target_variable.trig_angle, M_2PI/s->param->basic.num_trig_tooth, M_2PI);
|
||||||
s->anglecalu.num_toShoot--;
|
s->var_trig.num_toShoot--;
|
||||||
}
|
}
|
||||||
return SHOOT_OK;
|
return SHOOT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static float Shoot_CaluCoupledWeight(Shoot_t *s, uint8_t fric_index)
|
||||||
|
{
|
||||||
|
if (s == NULL) {
|
||||||
|
return SHOOT_ERR_NULL; // 参数错误
|
||||||
|
}
|
||||||
|
|
||||||
|
float Threshold;
|
||||||
|
switch (s->param->basic.projectileType) {
|
||||||
|
case SHOOT_PROJECTILE_17MM:
|
||||||
|
Threshold=50.0f;
|
||||||
|
break;
|
||||||
|
case SHOOT_PROJECTILE_42MM:
|
||||||
|
Threshold=400.0f;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return 0.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
float err;
|
||||||
|
err=fabs((s->param->basic.ratio_multilevel[fric_index]
|
||||||
|
*s->target_variable.fric_rpm)
|
||||||
|
-s->feedback.fric[fric_index].rotor_speed);
|
||||||
|
if (err<Threshold)
|
||||||
|
{
|
||||||
|
s->var_fric.coupled_control_weights=1.0f-(err*err)/(Threshold*Threshold);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
s->var_fric.coupled_control_weights=0.0f;
|
||||||
|
}
|
||||||
|
return s->var_fric.coupled_control_weights;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief 更新射击模块的电机反馈信息
|
* \brief 更新射击模块的电机反馈信息
|
||||||
*
|
*
|
||||||
@ -216,7 +249,6 @@ int8_t Shoot_UpdateFeedback(Shoot_t *s)
|
|||||||
if (s == NULL) {
|
if (s == NULL) {
|
||||||
return SHOOT_ERR_NULL; // 参数错误
|
return SHOOT_ERR_NULL; // 参数错误
|
||||||
}
|
}
|
||||||
float rpm_sum=0.0f;
|
|
||||||
uint8_t fric_num = s->param->basic.fric_num;
|
uint8_t fric_num = s->param->basic.fric_num;
|
||||||
for(int i = 0; i < fric_num; i++) {
|
for(int i = 0; i < fric_num; i++) {
|
||||||
/* 更新摩擦轮电机反馈 */
|
/* 更新摩擦轮电机反馈 */
|
||||||
@ -227,28 +259,31 @@ int8_t Shoot_UpdateFeedback(Shoot_t *s)
|
|||||||
s->feedback.fric[i]=motor_fed->motor.feedback;
|
s->feedback.fric[i]=motor_fed->motor.feedback;
|
||||||
}
|
}
|
||||||
/* 滤波摩擦轮电机转速反馈 */
|
/* 滤波摩擦轮电机转速反馈 */
|
||||||
s->feedback.fil_fric_rpm[i] = LowPassFilter2p_Apply(&s->filter.fric.in[i], s->feedback.fric[i].rotor_speed);
|
s->var_fric.fil_rpm[i] = LowPassFilter2p_Apply(&s->filter.fric.in[i], s->feedback.fric[i].rotor_speed);
|
||||||
/* 归一化摩擦轮电机转速反馈 */
|
/* 归一化摩擦轮电机转速反馈 */
|
||||||
s->feedback.fric_rpm[i] = s->feedback.fil_fric_rpm[i] / MAX_FRIC_RPM;
|
s->var_fric.normalized_fil_rpm[i] = s->var_fric.fil_rpm[i] / MAX_FRIC_RPM;
|
||||||
if(s->feedback.fric_rpm[i]>1.0f)s->feedback.fric_rpm[i]=1.0f;
|
if(s->var_fric.normalized_fil_rpm[i]>1.0f)s->var_fric.normalized_fil_rpm[i]=1.0f;
|
||||||
if(s->feedback.fric_rpm[i]<-1.0f)s->feedback.fric_rpm[i]=-1.0f;
|
if(s->var_fric.normalized_fil_rpm[i]<-1.0f)s->var_fric.normalized_fil_rpm[i]=-1.0f;
|
||||||
/* 计算平均摩擦轮电机转速反馈 */
|
/* 计算平均摩擦轮电机转速反馈 */
|
||||||
rpm_sum+=s->feedback.fric_rpm[i];
|
s->var_fric.normalized_fil_avgrpm[s->param->motor.fric[i].level-1]+=s->var_fric.normalized_fil_rpm[i];
|
||||||
|
}
|
||||||
|
for (int i=1; i<MAX_NUM_MULTILEVEL; i++)
|
||||||
|
{
|
||||||
|
s->var_fric.normalized_fil_avgrpm[i]=s->var_fric.normalized_fil_avgrpm[i]/fric_num/MAX_NUM_MULTILEVEL;
|
||||||
}
|
}
|
||||||
s->feedback.fric_avgrpm=rpm_sum/fric_num;
|
|
||||||
/* 更新拨弹电机反馈 */
|
/* 更新拨弹电机反馈 */
|
||||||
MOTOR_RM_Update(&s->param->motor.trig);
|
MOTOR_RM_Update(&s->param->motor.trig);
|
||||||
s->feedback.trig = *MOTOR_RM_GetMotor(&s->param->motor.trig);
|
s->feedback.trig = *MOTOR_RM_GetMotor(&s->param->motor.trig);
|
||||||
s->feedback.trig_agl=s->param->basic.extra_deceleration_ratio*s->feedback.trig.gearbox_total_angle;
|
s->var_trig.trig_agl=s->param->basic.extra_deceleration_ratio*s->feedback.trig.gearbox_total_angle;
|
||||||
while(s->feedback.trig_agl<0)s->feedback.trig_agl+=M_2PI;
|
while(s->var_trig.trig_agl<0)s->var_trig.trig_agl+=M_2PI;
|
||||||
while(s->feedback.trig_agl>=M_2PI)s->feedback.trig_agl-=M_2PI;
|
while(s->var_trig.trig_agl>=M_2PI)s->var_trig.trig_agl-=M_2PI;
|
||||||
if (s->feedback.trig.motor.reverse) {
|
if (s->feedback.trig.motor.reverse) {
|
||||||
s->feedback.trig_agl = M_2PI - s->feedback.trig_agl;
|
s->var_trig.trig_agl = M_2PI - s->var_trig.trig_agl;
|
||||||
}
|
}
|
||||||
s->feedback.fil_trig_rpm = LowPassFilter2p_Apply(&s->filter.trig.in, s->feedback.trig.feedback.rotor_speed);
|
s->var_trig.fil_trig_rpm = LowPassFilter2p_Apply(&s->filter.trig.in, s->feedback.trig.feedback.rotor_speed);
|
||||||
s->feedback.trig_rpm = s->feedback.trig.feedback.rotor_speed / MAX_TRIG_RPM;
|
s->var_trig.trig_rpm = s->feedback.trig.feedback.rotor_speed / MAX_TRIG_RPM;
|
||||||
if(s->feedback.trig_rpm>1.0f)s->feedback.trig_rpm=1.0f;
|
if(s->var_trig.trig_rpm>1.0f)s->var_trig.trig_rpm=1.0f;
|
||||||
if(s->feedback.trig_rpm<-1.0f)s->feedback.trig_rpm=-1.0f;
|
if(s->var_trig.trig_rpm<-1.0f)s->var_trig.trig_rpm=-1.0f;
|
||||||
|
|
||||||
s->errtosee = s->feedback.fric[0].rotor_speed - s->feedback.fric[1].rotor_speed;
|
s->errtosee = s->feedback.fric[0].rotor_speed - s->feedback.fric[1].rotor_speed;
|
||||||
return SHOOT_OK;
|
return SHOOT_OK;
|
||||||
@ -268,7 +303,7 @@ int8_t Shoot_RunningFSM(Shoot_t *s, Shoot_CMD_t *cmd)
|
|||||||
return SHOOT_ERR_NULL; // 参数错误
|
return SHOOT_ERR_NULL; // 参数错误
|
||||||
}
|
}
|
||||||
uint8_t fric_num = s->param->basic.fric_num;
|
uint8_t fric_num = s->param->basic.fric_num;
|
||||||
if(!s->online /*|| s->mode==SHOOT_MODE_SAFE*/){
|
if(!s->online || s->mode==SHOOT_MODE_SAFE){
|
||||||
for(int i=0;i<fric_num;i++)
|
for(int i=0;i<fric_num;i++)
|
||||||
{
|
{
|
||||||
MOTOR_RM_Relax(&s->param->motor.fric[i].param);
|
MOTOR_RM_Relax(&s->param->motor.fric[i].param);
|
||||||
@ -283,14 +318,14 @@ int8_t Shoot_RunningFSM(Shoot_t *s, Shoot_CMD_t *cmd)
|
|||||||
for(int i=0;i<fric_num;i++)
|
for(int i=0;i<fric_num;i++)
|
||||||
{ /* 转速归零 */
|
{ /* 转速归零 */
|
||||||
PID_ResetIntegral(&s->pid.fric_follow[i]);
|
PID_ResetIntegral(&s->pid.fric_follow[i]);
|
||||||
s->output.out_follow[i]=PID_Calc(&s->pid.fric_follow[i],0.0f,s->feedback.fric_rpm[i],0,s->timer.dt);
|
s->output.out_follow[i]=PID_Calc(&s->pid.fric_follow[i],0.0f,s->var_fric.normalized_fil_rpm[i],0,s->timer.dt);
|
||||||
s->output.out_fric[i]=s->output.out_follow[i];
|
s->output.out_fric[i]=s->output.out_follow[i];
|
||||||
s->output.lpfout_fric[i] = LowPassFilter2p_Apply(&s->filter.fric.out[i], s->output.out_fric[i]);
|
s->output.lpfout_fric[i] = LowPassFilter2p_Apply(&s->filter.fric.out[i], s->output.out_fric[i]);
|
||||||
MOTOR_RM_SetOutput(&s->param->motor.fric[i].param, s->output.lpfout_fric[i]);
|
MOTOR_RM_SetOutput(&s->param->motor.fric[i].param, s->output.lpfout_fric[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
s->output.outagl_trig =PID_Calc(&s->pid.trig,pos,s->feedback.trig_agl,0,s->timer.dt);
|
s->output.outagl_trig =PID_Calc(&s->pid.trig,pos,s->var_trig.trig_agl,0,s->timer.dt);
|
||||||
s->output.outomg_trig =PID_Calc(&s->pid.trig_omg,s->output.outagl_trig,s->feedback.trig_rpm,0,s->timer.dt);
|
s->output.outomg_trig =PID_Calc(&s->pid.trig_omg,s->output.outagl_trig,s->var_trig.trig_rpm,0,s->timer.dt);
|
||||||
s->output.outlpf_trig =LowPassFilter2p_Apply(&s->filter.trig.out, s->output.outomg_trig);
|
s->output.outlpf_trig =LowPassFilter2p_Apply(&s->filter.trig.out, s->output.outomg_trig);
|
||||||
MOTOR_RM_SetOutput(&s->param->motor.trig, s->output.outlpf_trig);
|
MOTOR_RM_SetOutput(&s->param->motor.trig, s->output.outlpf_trig);
|
||||||
|
|
||||||
@ -307,18 +342,20 @@ int8_t Shoot_RunningFSM(Shoot_t *s, Shoot_CMD_t *cmd)
|
|||||||
case SHOOT_STATE_READY:/*准备射击*/
|
case SHOOT_STATE_READY:/*准备射击*/
|
||||||
for(int i=0;i<fric_num;i++)
|
for(int i=0;i<fric_num;i++)
|
||||||
{
|
{
|
||||||
uint8_t level=s->param->motor.fric->level-1;
|
uint8_t level=s->param->motor.fric[i].level-1;
|
||||||
float fric_rpm=s->param->basic.ratio_multilevel[level]*s->target_variable.fric_rpm/MAX_FRIC_RPM;
|
float target_rpm=s->param->basic.ratio_multilevel[level]
|
||||||
|
*s->target_variable.fric_rpm/MAX_FRIC_RPM;
|
||||||
|
/* 计算耦合控制权重 */
|
||||||
|
float w=Shoot_CaluCoupledWeight(s,i);
|
||||||
/* 计算跟随输出、计算修正输出 */
|
/* 计算跟随输出、计算修正输出 */
|
||||||
a=s->target_variable.fric_rpm/MAX_FRIC_RPM;
|
|
||||||
s->output.out_follow[i]=PID_Calc(&s->pid.fric_follow[i],
|
s->output.out_follow[i]=PID_Calc(&s->pid.fric_follow[i],
|
||||||
fric_rpm,
|
target_rpm,
|
||||||
s->feedback.fric_rpm[i],
|
s->var_fric.normalized_fil_rpm[i],
|
||||||
0,
|
0,
|
||||||
s->timer.dt);
|
s->timer.dt);
|
||||||
s->output.out_err[i]=PID_Calc(&s->pid.fric_err[i],
|
s->output.out_err[i]=w*PID_Calc(&s->pid.fric_err[i],
|
||||||
s->feedback.fric_avgrpm,
|
s->var_fric.normalized_fil_avgrpm[s->param->motor.fric[i].level-1],
|
||||||
s->feedback.fric_rpm[i],
|
s->var_fric.normalized_fil_rpm[i],
|
||||||
0,
|
0,
|
||||||
s->timer.dt);
|
s->timer.dt);
|
||||||
/* 按比例缩放并加和输出 */
|
/* 按比例缩放并加和输出 */
|
||||||
@ -332,12 +369,12 @@ int8_t Shoot_RunningFSM(Shoot_t *s, Shoot_CMD_t *cmd)
|
|||||||
/* 设置拨弹电机输出 */
|
/* 设置拨弹电机输出 */
|
||||||
s->output.outagl_trig =PID_Calc(&s->pid.trig,
|
s->output.outagl_trig =PID_Calc(&s->pid.trig,
|
||||||
pos,
|
pos,
|
||||||
s->feedback.trig_agl,
|
s->var_trig.trig_agl,
|
||||||
0,
|
0,
|
||||||
s->timer.dt);
|
s->timer.dt);
|
||||||
s->output.outomg_trig =PID_Calc(&s->pid.trig_omg,
|
s->output.outomg_trig =PID_Calc(&s->pid.trig_omg,
|
||||||
s->output.outagl_trig,
|
s->output.outagl_trig,
|
||||||
s->feedback.trig_rpm,
|
s->var_trig.trig_rpm,
|
||||||
0,
|
0,
|
||||||
s->timer.dt);
|
s->timer.dt);
|
||||||
s->output.outlpf_trig =LowPassFilter2p_Apply(&s->filter.trig.out, s->output.outomg_trig);
|
s->output.outlpf_trig =LowPassFilter2p_Apply(&s->filter.trig.out, s->output.outomg_trig);
|
||||||
@ -357,16 +394,16 @@ int8_t Shoot_RunningFSM(Shoot_t *s, Shoot_CMD_t *cmd)
|
|||||||
switch(s->mode)
|
switch(s->mode)
|
||||||
{
|
{
|
||||||
case SHOOT_MODE_SINGLE:
|
case SHOOT_MODE_SINGLE:
|
||||||
s->anglecalu.num_toShoot=1;
|
s->var_trig.num_toShoot=1;
|
||||||
break;
|
break;
|
||||||
case SHOOT_MODE_BURST:
|
case SHOOT_MODE_BURST:
|
||||||
s->anglecalu.num_toShoot=s->param->basic.shot_burst_num;
|
s->var_trig.num_toShoot=s->param->basic.shot_burst_num;
|
||||||
break;
|
break;
|
||||||
case SHOOT_MODE_CONTINUE:
|
case SHOOT_MODE_CONTINUE:
|
||||||
s->anglecalu.num_toShoot=6666;
|
s->var_trig.num_toShoot=6666;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
s->anglecalu.num_toShoot=0;
|
s->var_trig.num_toShoot=0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -376,17 +413,20 @@ int8_t Shoot_RunningFSM(Shoot_t *s, Shoot_CMD_t *cmd)
|
|||||||
Shoot_CaluTargetAngle(s, cmd);
|
Shoot_CaluTargetAngle(s, cmd);
|
||||||
for(int i=0;i<fric_num;i++)
|
for(int i=0;i<fric_num;i++)
|
||||||
{
|
{
|
||||||
uint8_t level=s->param->motor.fric->level-1;
|
uint8_t level=s->param->motor.fric[i].level-1;
|
||||||
float fric_rpm=s->param->basic.ratio_multilevel[level]*s->target_variable.fric_rpm/MAX_FRIC_RPM;
|
float target_rpm=s->param->basic.ratio_multilevel[level]
|
||||||
|
*s->target_variable.fric_rpm/MAX_FRIC_RPM;
|
||||||
|
/* 计算耦合控制权重 */
|
||||||
|
float w=Shoot_CaluCoupledWeight(s,i);
|
||||||
/* 计算跟随输出、计算修正输出 */
|
/* 计算跟随输出、计算修正输出 */
|
||||||
s->output.out_follow[i]=PID_Calc(&s->pid.fric_follow[i],
|
s->output.out_follow[i]=PID_Calc(&s->pid.fric_follow[i],
|
||||||
fric_rpm,
|
target_rpm,
|
||||||
s->feedback.fric_rpm[i],
|
s->var_fric.normalized_fil_rpm[i],
|
||||||
0,
|
0,
|
||||||
s->timer.dt);
|
s->timer.dt);
|
||||||
s->output.out_err[i]=PID_Calc(&s->pid.fric_err[i],
|
s->output.out_err[i]=w*PID_Calc(&s->pid.fric_err[i],
|
||||||
s->feedback.fric_avgrpm,
|
s->var_fric.normalized_fil_avgrpm[s->param->motor.fric[i].level-1],
|
||||||
s->feedback.fric_rpm[i],
|
s->var_fric.normalized_fil_rpm[i],
|
||||||
0,
|
0,
|
||||||
s->timer.dt);
|
s->timer.dt);
|
||||||
/* 按比例缩放并加和输出 */
|
/* 按比例缩放并加和输出 */
|
||||||
@ -400,12 +440,12 @@ int8_t Shoot_RunningFSM(Shoot_t *s, Shoot_CMD_t *cmd)
|
|||||||
/* 设置拨弹电机输出 */
|
/* 设置拨弹电机输出 */
|
||||||
s->output.outagl_trig =PID_Calc(&s->pid.trig,
|
s->output.outagl_trig =PID_Calc(&s->pid.trig,
|
||||||
s->target_variable.trig_angle,
|
s->target_variable.trig_angle,
|
||||||
s->feedback.trig_agl,
|
s->var_trig.trig_agl,
|
||||||
0,
|
0,
|
||||||
s->timer.dt);
|
s->timer.dt);
|
||||||
s->output.outomg_trig =PID_Calc(&s->pid.trig_omg,
|
s->output.outomg_trig =PID_Calc(&s->pid.trig_omg,
|
||||||
s->output.outagl_trig,
|
s->output.outagl_trig,
|
||||||
s->feedback.trig_rpm,
|
s->var_trig.trig_rpm,
|
||||||
0,
|
0,
|
||||||
s->timer.dt);
|
s->timer.dt);
|
||||||
s->output.outlpf_trig =LowPassFilter2p_Apply(&s->filter.trig.out, s->output.outomg_trig);
|
s->output.outlpf_trig =LowPassFilter2p_Apply(&s->filter.trig.out, s->output.outomg_trig);
|
||||||
@ -415,7 +455,8 @@ int8_t Shoot_RunningFSM(Shoot_t *s, Shoot_CMD_t *cmd)
|
|||||||
if(!cmd->firecmd)
|
if(!cmd->firecmd)
|
||||||
{
|
{
|
||||||
s->running_state=SHOOT_STATE_READY;
|
s->running_state=SHOOT_STATE_READY;
|
||||||
pos=s->feedback.trig_agl;
|
pos=s->var_trig.trig_agl;
|
||||||
|
s->var_trig.num_toShoot=0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -476,9 +517,9 @@ int8_t Shoot_JamDetectionFSM(Shoot_t *s, Shoot_CMD_t *cmd)
|
|||||||
break;
|
break;
|
||||||
case SHOOT_JAMFSM_STATE_CONFIRMED:/* 确认堵塞 */
|
case SHOOT_JAMFSM_STATE_CONFIRMED:/* 确认堵塞 */
|
||||||
/* 清空待发射弹 */
|
/* 清空待发射弹 */
|
||||||
s->anglecalu.num_toShoot=0;
|
s->var_trig.num_toShoot=0;
|
||||||
/* 修改拨弹盘目标角度 */
|
/* 修改拨弹盘目标角度 */
|
||||||
s->target_variable.trig_angle = s->feedback.trig_agl-(M_2PI/s->param->basic.num_trig_tooth);
|
s->target_variable.trig_angle = s->var_trig.trig_agl-(M_2PI/s->param->basic.num_trig_tooth);
|
||||||
/* 切换状态 */
|
/* 切换状态 */
|
||||||
s->jamdetection.fsmState = SHOOT_JAMFSM_STATE_DEAL;
|
s->jamdetection.fsmState = SHOOT_JAMFSM_STATE_DEAL;
|
||||||
/* 记录处理开始时间 */
|
/* 记录处理开始时间 */
|
||||||
@ -576,7 +617,7 @@ int8_t Shoot_Init(Shoot_t *s, Shoot_Params_t *param, float target_freq)
|
|||||||
s->param->filter.trig.out);
|
s->param->filter.trig.out);
|
||||||
|
|
||||||
/* 归零变量 */
|
/* 归零变量 */
|
||||||
memset(&s->anglecalu,0,sizeof(s->anglecalu));
|
memset(&s->var_trig,0,sizeof(s->var_trig));
|
||||||
return SHOOT_OK;
|
return SHOOT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -597,7 +638,7 @@ int8_t Shoot_Control(Shoot_t *s, Shoot_CMD_t *cmd)
|
|||||||
s->timer.dt = (BSP_TIME_Get_us() - s->timer.lask_wakeup) / 1000000.0f;
|
s->timer.dt = (BSP_TIME_Get_us() - s->timer.lask_wakeup) / 1000000.0f;
|
||||||
s->timer.lask_wakeup = BSP_TIME_Get_us();
|
s->timer.lask_wakeup = BSP_TIME_Get_us();
|
||||||
s->online = cmd->online;
|
s->online = cmd->online;
|
||||||
// Shoot_CaluTargetRPM(s,233);
|
Shoot_CaluTargetRPM(s,233);
|
||||||
|
|
||||||
Shoot_JamDetectionFSM(s, cmd);
|
Shoot_JamDetectionFSM(s, cmd);
|
||||||
// Shoot_CalufeedbackRPM(s);
|
// Shoot_CalufeedbackRPM(s);
|
||||||
|
|||||||
@ -21,7 +21,7 @@ extern "C" {
|
|||||||
#define SHOOT_ERR_MALLOC (-5) /* 内存分配失败 */
|
#define SHOOT_ERR_MALLOC (-5) /* 内存分配失败 */
|
||||||
|
|
||||||
#define MAX_FRIC_RPM 7000.0f
|
#define MAX_FRIC_RPM 7000.0f
|
||||||
#define MAX_TRIG_RPM 5000.0f//这里可能也会影响最高发射频率,待测试
|
#define MAX_TRIG_RPM 2000.0f//这里可能也会影响最高发射频率,待测试
|
||||||
|
|
||||||
#define MAX_FRIC_NUM 6
|
#define MAX_FRIC_NUM 6
|
||||||
#define MAX_NUM_MULTILEVEL 2 /* 多级发射级数 */
|
#define MAX_NUM_MULTILEVEL 2 /* 多级发射级数 */
|
||||||
@ -60,20 +60,27 @@ typedef struct{
|
|||||||
typedef struct {
|
typedef struct {
|
||||||
MOTOR_Feedback_t fric[MAX_FRIC_NUM];/* 摩擦轮电机反馈 */
|
MOTOR_Feedback_t fric[MAX_FRIC_NUM];/* 摩擦轮电机反馈 */
|
||||||
MOTOR_RM_t trig; /* 拨弹电机反馈 */
|
MOTOR_RM_t trig; /* 拨弹电机反馈 */
|
||||||
float trig_agl; /*计算所有减速比后的拨弹盘的角度*/
|
|
||||||
float fil_fric_rpm[MAX_FRIC_NUM]; /* 滤波后的摩擦轮转速 */
|
|
||||||
float fil_trig_rpm; /* 滤波后的拨弹电机转速*/
|
|
||||||
|
|
||||||
float fric_rpm[MAX_FRIC_NUM]; /* 归一化摩擦轮转速 */
|
|
||||||
float fric_avgrpm; /* 归一化摩擦轮平均转速 */
|
|
||||||
float trig_rpm; /* 归一化拨弹电机转速 */
|
|
||||||
}Shoot_Feedback_t;
|
}Shoot_Feedback_t;
|
||||||
|
|
||||||
|
typedef struct{
|
||||||
|
float fil_rpm[MAX_FRIC_NUM]; /* 滤波后的摩擦轮原始转速 */
|
||||||
|
float normalized_fil_rpm[MAX_FRIC_NUM]; /* 归一化摩擦轮转速 */
|
||||||
|
float normalized_fil_avgrpm[MAX_NUM_MULTILEVEL]; /* 归一化摩擦轮平均转速 */
|
||||||
|
float coupled_control_weights; /* 耦合控制权重 */
|
||||||
|
}Shoot_VARSForFricCtrl_t;
|
||||||
|
// float fil_rpm[MAX_FRIC_NUM]; /* 滤波后的摩擦轮原始转速 */
|
||||||
|
// float normalized_fil_rpm[MAX_FRIC_NUM]; /* 归一化且滤波后的摩擦轮转速 */
|
||||||
|
// float normalized_fil_avgrpm; /* 归一化摩擦轮平均转速 */
|
||||||
typedef struct{
|
typedef struct{
|
||||||
float time_lastShoot;/* 上次射击时间 */
|
float time_lastShoot;/* 上次射击时间 */
|
||||||
uint16_t num_toShoot;/* 剩余待发射弹数 */
|
uint16_t num_toShoot;/* 剩余待发射弹数 */
|
||||||
uint16_t num_shooted;/* 已发射弹数 */
|
uint16_t num_shooted;/* 已发射弹数 */
|
||||||
}Shoot_trigAngleCalu_t;
|
|
||||||
|
float trig_agl; /*计算所有减速比后的拨弹盘的角度*/
|
||||||
|
float fil_trig_rpm; /* 滤波后的拨弹电机转速*/
|
||||||
|
float trig_rpm; /* 归一化拨弹电机转速 */
|
||||||
|
}Shoot_VARSForTrigCtrl_t;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
bool detected; /* 卡弹检测结果 */
|
bool detected; /* 卡弹检测结果 */
|
||||||
@ -102,7 +109,6 @@ typedef struct {
|
|||||||
struct{
|
struct{
|
||||||
Shoot_Projectile_t projectileType; /* 发射弹丸类型 */;
|
Shoot_Projectile_t projectileType; /* 发射弹丸类型 */;
|
||||||
size_t fric_num; /* 摩擦轮电机数量 */
|
size_t fric_num; /* 摩擦轮电机数量 */
|
||||||
size_t num_multilevel; /* 多级发射级数 */
|
|
||||||
float ratio_multilevel[MAX_NUM_MULTILEVEL]; /* 多级发射各级速度比例 */
|
float ratio_multilevel[MAX_NUM_MULTILEVEL]; /* 多级发射各级速度比例 */
|
||||||
float extra_deceleration_ratio; /*电机出轴到拨盘的额外减速比;没有写1*/
|
float extra_deceleration_ratio; /*电机出轴到拨盘的额外减速比;没有写1*/
|
||||||
size_t num_trig_tooth; /* 拨弹盘每圈弹丸数量 */
|
size_t num_trig_tooth; /* 拨弹盘每圈弹丸数量 */
|
||||||
@ -159,7 +165,8 @@ typedef struct {
|
|||||||
/* 控制信息*/
|
/* 控制信息*/
|
||||||
Shoot_Running_State_t running_state; /* 运行状态机 */
|
Shoot_Running_State_t running_state; /* 运行状态机 */
|
||||||
Shoot_JamDetection_t jamdetection; /* 卡弹检测控制信息 */
|
Shoot_JamDetection_t jamdetection; /* 卡弹检测控制信息 */
|
||||||
Shoot_trigAngleCalu_t anglecalu; /* 角度计算控制信息 */
|
Shoot_VARSForFricCtrl_t var_fric; /* 摩擦轮控制信息 */
|
||||||
|
Shoot_VARSForTrigCtrl_t var_trig; /* 角度计算控制信息 */
|
||||||
Shoot_Output_t output; /* 输出信息 */
|
Shoot_Output_t output; /* 输出信息 */
|
||||||
/* 目标控制量 */
|
/* 目标控制量 */
|
||||||
struct {
|
struct {
|
||||||
|
|||||||
613
User/module/shoot_Master&Slave.c
Normal file
613
User/module/shoot_Master&Slave.c
Normal file
@ -0,0 +1,613 @@
|
|||||||
|
/*
|
||||||
|
* far♂蛇模块
|
||||||
|
*/
|
||||||
|
|
||||||
|
/********************************* 使用示例 **********************************/
|
||||||
|
/*1.配置config参数以及Config_ShootInit函数参数*/
|
||||||
|
/*2.
|
||||||
|
COMP_AT9S_CMD_t shoot_ctrl_cmd_rc;
|
||||||
|
Shoot_t shoot;
|
||||||
|
Shoot_CMD_t shoot_cmd;
|
||||||
|
|
||||||
|
void Task(void *argument) {
|
||||||
|
|
||||||
|
Config_ShootInit();
|
||||||
|
Shoot_Init(&shoot,&Config_GetRobotParam()->shoot_param,SHOOT_CTRL_FREQ);
|
||||||
|
Shoot_SetMode(&shoot,SHOOT_MODE_SINGLE); 关于模式选择:初始化一个模式
|
||||||
|
|
||||||
|
while (1) {
|
||||||
|
|
||||||
|
shoot_cmd.online =shoot_ctrl_cmd_rc.online;
|
||||||
|
shoot_cmd.ready =shoot_ctrl_cmd_rc.shoot.ready;
|
||||||
|
shoot_cmd.firecmd =shoot_ctrl_cmd_rc.shoot.firecmd;
|
||||||
|
|
||||||
|
shoot.mode =shoot_ctrl_cmd_rc.mode; 关于模式选择:或者用遥控器随时切换模式,二选一
|
||||||
|
|
||||||
|
Chassis_UpdateFeedback(&shoot);
|
||||||
|
Shoot_Control(&shoot,&shoot_cmd);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
/* Includes ----------------------------------------------------------------- */
|
||||||
|
#include <string.h>
|
||||||
|
#include "shoot.h"
|
||||||
|
#include "bsp/mm.h"
|
||||||
|
#include "bsp/time.h"
|
||||||
|
#include "component/filter.h"
|
||||||
|
#include "component/user_math.h"
|
||||||
|
/* Private typedef ---------------------------------------------------------- */
|
||||||
|
/* Private define ----------------------------------------------------------- */
|
||||||
|
/* Private macro ------------------------------------------------------------ */
|
||||||
|
/* Private variables -------------------------------------------------------- */
|
||||||
|
static bool last_firecmd;
|
||||||
|
/* Private function -------------------------------------------------------- */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief 设置射击模式
|
||||||
|
*
|
||||||
|
* \param s 包含射击数据的结构体
|
||||||
|
* \param mode 要设置的模式
|
||||||
|
*
|
||||||
|
* \return 函数运行结果
|
||||||
|
*/
|
||||||
|
int8_t Shoot_SetMode(Shoot_t *s, Shoot_Mode_t mode)
|
||||||
|
{
|
||||||
|
if (s == NULL) {
|
||||||
|
return SHOOT_ERR_NULL; // 参数错误
|
||||||
|
}
|
||||||
|
s->mode=mode;
|
||||||
|
s->anglecalu.num_toShoot=0;
|
||||||
|
return SHOOT_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief 重置PID积分
|
||||||
|
*
|
||||||
|
* \param s 包含射击数据的结构体
|
||||||
|
*
|
||||||
|
* \return 函数运行结果
|
||||||
|
*/
|
||||||
|
int8_t Shoot_ResetIntegral(Shoot_t *s)
|
||||||
|
{
|
||||||
|
if (s == NULL) {
|
||||||
|
return SHOOT_ERR_NULL; // 参数错误
|
||||||
|
}
|
||||||
|
uint8_t fric_num = s->param->basic.fric_num;
|
||||||
|
for(int i=0;i<fric_num;i++)
|
||||||
|
{
|
||||||
|
PID_ResetIntegral(&s->pid.fric_follow[i]);
|
||||||
|
PID_ResetIntegral(&s->pid.fric_err[i]);
|
||||||
|
}
|
||||||
|
PID_ResetIntegral(&s->pid.trig);
|
||||||
|
PID_ResetIntegral(&s->pid.trig_omg);
|
||||||
|
return SHOOT_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief 重置计算模块
|
||||||
|
*
|
||||||
|
* \param s 包含射击数据的结构体
|
||||||
|
*
|
||||||
|
* \return 函数运行结果
|
||||||
|
*/
|
||||||
|
int8_t Shoot_ResetCalu(Shoot_t *s)
|
||||||
|
{
|
||||||
|
if (s == NULL) {
|
||||||
|
return SHOOT_ERR_NULL; // 参数错误
|
||||||
|
}
|
||||||
|
uint8_t fric_num = s->param->basic.fric_num;
|
||||||
|
for(int i=0;i<fric_num;i++)
|
||||||
|
{
|
||||||
|
PID_Reset(&s->pid.fric_follow[i]);
|
||||||
|
PID_Reset(&s->pid.fric_err[i]);
|
||||||
|
LowPassFilter2p_Reset(&s->filter.fric.in[i], 0.0f);
|
||||||
|
LowPassFilter2p_Reset(&s->filter.fric.out[i], 0.0f);
|
||||||
|
}
|
||||||
|
PID_Reset(&s->pid.trig);
|
||||||
|
PID_Reset(&s->pid.trig_omg);
|
||||||
|
LowPassFilter2p_Reset(&s->filter.trig.in, 0.0f);
|
||||||
|
LowPassFilter2p_Reset(&s->filter.trig.out, 0.0f);
|
||||||
|
return SHOOT_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief 重置输出
|
||||||
|
*
|
||||||
|
* \param s 包含射击数据的结构体
|
||||||
|
*
|
||||||
|
* \return 函数运行结果
|
||||||
|
*/
|
||||||
|
int8_t Shoot_ResetOutput(Shoot_t *s)
|
||||||
|
{
|
||||||
|
if (s == NULL) {
|
||||||
|
return SHOOT_ERR_NULL; // 参数错误
|
||||||
|
}
|
||||||
|
uint8_t fric_num = s->param->basic.fric_num;
|
||||||
|
for(int i=0;i<fric_num;i++)
|
||||||
|
{
|
||||||
|
s->output.out_follow[i]=0.0f;
|
||||||
|
s->output.out_err[i]=0.0f;
|
||||||
|
s->output.out_fric[i]=0.0f;
|
||||||
|
s->output.lpfout_fric[i]=0.0f;
|
||||||
|
}
|
||||||
|
s->output.outagl_trig=0.0f;
|
||||||
|
s->output.outomg_trig=0.0f;
|
||||||
|
s->output.outlpf_trig=0.0f;
|
||||||
|
return SHOOT_OK;
|
||||||
|
}
|
||||||
|
//float last_angle=0.0f;
|
||||||
|
//float speed=0.0f;
|
||||||
|
//int8_t Shoot_CalufeedbackRPM(Shoot_t *s)
|
||||||
|
//{
|
||||||
|
// if (s == NULL) {
|
||||||
|
// return SHOOT_ERR_NULL; // 参数错误
|
||||||
|
// }
|
||||||
|
//// static
|
||||||
|
// float err;
|
||||||
|
// err=CircleError(s->feedback.fric[0].rotor_abs_angle,last_angle,M_2PI);
|
||||||
|
// speed=err/s->dt/M_2PI*60.0f;
|
||||||
|
// last_angle=s->feedback.fric->rotor_abs_angle;
|
||||||
|
|
||||||
|
|
||||||
|
// return SHOOT_OK;
|
||||||
|
//}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief 根据目标弹丸速度计算摩擦轮目标转速
|
||||||
|
*
|
||||||
|
* \param s 包含射击数据的结构体
|
||||||
|
* \param target_speed 目标弹丸速度,单位m/s
|
||||||
|
*
|
||||||
|
* \return 函数运行结果
|
||||||
|
*/
|
||||||
|
int8_t Shoot_CaluTargetRPM(Shoot_t *s, float target_speed)
|
||||||
|
{
|
||||||
|
if (s == NULL) {
|
||||||
|
return SHOOT_ERR_NULL; // 参数错误
|
||||||
|
}
|
||||||
|
switch(s->param->basic.projectileType)
|
||||||
|
{
|
||||||
|
case SHOOT_PROJECTILE_17MM:
|
||||||
|
s->target_variable.fric_rpm=5000.0f;
|
||||||
|
break;
|
||||||
|
case SHOOT_PROJECTILE_42MM:
|
||||||
|
s->target_variable.fric_rpm=4000.0f;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return SHOOT_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief 根据发射弹丸数量及发射频率计算拨弹电机目标角度
|
||||||
|
*
|
||||||
|
* \param s 包含发射数据的结构体
|
||||||
|
* \param cmd 包含射击指令的结构体
|
||||||
|
*
|
||||||
|
* \return 函数运行结果
|
||||||
|
*/
|
||||||
|
int8_t Shoot_CaluTargetAngle(Shoot_t *s, Shoot_CMD_t *cmd)
|
||||||
|
{
|
||||||
|
if (s == NULL || s->anglecalu.num_toShoot == 0) {
|
||||||
|
return SHOOT_ERR_NULL;
|
||||||
|
}
|
||||||
|
float dt = s->timer.now - s->anglecalu.time_lastShoot;
|
||||||
|
float dpos;
|
||||||
|
dpos = CircleError(s->target_variable.trig_angle, s->feedback.trig_agl, M_2PI);
|
||||||
|
if(dt >= 1.0f/s->param->basic.shot_freq && cmd->firecmd && dpos<=1.0f)
|
||||||
|
{
|
||||||
|
s->anglecalu.time_lastShoot=s->timer.now;
|
||||||
|
CircleAdd(&s->target_variable.trig_angle, M_2PI/s->param->basic.num_trig_tooth, M_2PI);
|
||||||
|
s->anglecalu.num_toShoot--;
|
||||||
|
}
|
||||||
|
return SHOOT_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief 更新射击模块的电机反馈信息
|
||||||
|
*
|
||||||
|
* \param s 包含射击数据的结构体
|
||||||
|
*
|
||||||
|
* \return 函数运行结果
|
||||||
|
*/
|
||||||
|
int8_t Shoot_UpdateFeedback(Shoot_t *s)
|
||||||
|
{
|
||||||
|
if (s == NULL) {
|
||||||
|
return SHOOT_ERR_NULL; // 参数错误
|
||||||
|
}
|
||||||
|
float rpm_sum=0.0f;
|
||||||
|
uint8_t fric_num = s->param->basic.fric_num;
|
||||||
|
for(int i = 0; i < fric_num; i++) {
|
||||||
|
/* 更新摩擦轮电机反馈 */
|
||||||
|
MOTOR_RM_Update(&s->param->motor.fric[i].param);
|
||||||
|
MOTOR_RM_t *motor_fed = MOTOR_RM_GetMotor(&s->param->motor.fric[i].param);
|
||||||
|
if(motor_fed!=NULL)
|
||||||
|
{
|
||||||
|
s->feedback.fric[i]=motor_fed->motor.feedback;
|
||||||
|
}
|
||||||
|
/* 滤波摩擦轮电机转速反馈 */
|
||||||
|
s->feedback.fil_fric_rpm[i] = LowPassFilter2p_Apply(&s->filter.fric.in[i], s->feedback.fric[i].rotor_speed);
|
||||||
|
/* 归一化摩擦轮电机转速反馈 */
|
||||||
|
s->feedback.fric_rpm[i] = s->feedback.fil_fric_rpm[i] / MAX_FRIC_RPM;
|
||||||
|
if(s->feedback.fric_rpm[i]>1.0f)s->feedback.fric_rpm[i]=1.0f;
|
||||||
|
if(s->feedback.fric_rpm[i]<-1.0f)s->feedback.fric_rpm[i]=-1.0f;
|
||||||
|
/* 计算平均摩擦轮电机转速反馈 */
|
||||||
|
rpm_sum+=s->feedback.fric_rpm[i];
|
||||||
|
}
|
||||||
|
s->feedback.fric_avgrpm=rpm_sum/fric_num;
|
||||||
|
/* 更新拨弹电机反馈 */
|
||||||
|
MOTOR_RM_Update(&s->param->motor.trig);
|
||||||
|
s->feedback.trig = *MOTOR_RM_GetMotor(&s->param->motor.trig);
|
||||||
|
s->feedback.trig_agl=s->param->basic.extra_deceleration_ratio*s->feedback.trig.gearbox_total_angle;
|
||||||
|
while(s->feedback.trig_agl<0)s->feedback.trig_agl+=M_2PI;
|
||||||
|
while(s->feedback.trig_agl>=M_2PI)s->feedback.trig_agl-=M_2PI;
|
||||||
|
if (s->feedback.trig.motor.reverse) {
|
||||||
|
s->feedback.trig_agl = M_2PI - s->feedback.trig_agl;
|
||||||
|
}
|
||||||
|
s->feedback.fil_trig_rpm = LowPassFilter2p_Apply(&s->filter.trig.in, s->feedback.trig.feedback.rotor_speed);
|
||||||
|
s->feedback.trig_rpm = s->feedback.trig.feedback.rotor_speed / MAX_TRIG_RPM;
|
||||||
|
if(s->feedback.trig_rpm>1.0f)s->feedback.trig_rpm=1.0f;
|
||||||
|
if(s->feedback.trig_rpm<-1.0f)s->feedback.trig_rpm=-1.0f;
|
||||||
|
|
||||||
|
s->errtosee = s->feedback.fric[0].rotor_speed - s->feedback.fric[1].rotor_speed;
|
||||||
|
return SHOOT_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief 射击模块运行状态机
|
||||||
|
*
|
||||||
|
* \param s 包含射击数据的结构体
|
||||||
|
* \param cmd 包含射击指令的结构体
|
||||||
|
*
|
||||||
|
* \return 函数运行结果
|
||||||
|
*/float a;
|
||||||
|
int8_t Shoot_RunningFSM(Shoot_t *s, Shoot_CMD_t *cmd)
|
||||||
|
{
|
||||||
|
if (s == NULL || cmd == NULL) {
|
||||||
|
return SHOOT_ERR_NULL; // 参数错误
|
||||||
|
}
|
||||||
|
uint8_t fric_num = s->param->basic.fric_num;
|
||||||
|
if(!s->online /*|| s->mode==SHOOT_MODE_SAFE*/){
|
||||||
|
for(int i=0;i<fric_num;i++)
|
||||||
|
{
|
||||||
|
MOTOR_RM_Relax(&s->param->motor.fric[i].param);
|
||||||
|
}
|
||||||
|
MOTOR_RM_Relax(&s->param->motor.trig);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
static float pos;
|
||||||
|
switch(s->running_state)
|
||||||
|
{
|
||||||
|
case SHOOT_STATE_IDLE:/*熄火等待*/
|
||||||
|
for(int i=0;i<fric_num;i++)
|
||||||
|
{ /* 转速归零 */
|
||||||
|
PID_ResetIntegral(&s->pid.fric_follow[i]);
|
||||||
|
s->output.out_follow[i]=PID_Calc(&s->pid.fric_follow[i],0.0f,s->feedback.fric_rpm[i],0,s->timer.dt);
|
||||||
|
s->output.out_fric[i]=s->output.out_follow[i];
|
||||||
|
s->output.lpfout_fric[i] = LowPassFilter2p_Apply(&s->filter.fric.out[i], s->output.out_fric[i]);
|
||||||
|
MOTOR_RM_SetOutput(&s->param->motor.fric[i].param, s->output.lpfout_fric[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
s->output.outagl_trig =PID_Calc(&s->pid.trig,pos,s->feedback.trig_agl,0,s->timer.dt);
|
||||||
|
s->output.outomg_trig =PID_Calc(&s->pid.trig_omg,s->output.outagl_trig,s->feedback.trig_rpm,0,s->timer.dt);
|
||||||
|
s->output.outlpf_trig =LowPassFilter2p_Apply(&s->filter.trig.out, s->output.outomg_trig);
|
||||||
|
MOTOR_RM_SetOutput(&s->param->motor.trig, s->output.outlpf_trig);
|
||||||
|
|
||||||
|
/* 检查状态机 */
|
||||||
|
if(cmd->ready)
|
||||||
|
{
|
||||||
|
Shoot_ResetCalu(s);
|
||||||
|
Shoot_ResetIntegral(s);
|
||||||
|
Shoot_ResetOutput(s);
|
||||||
|
s->running_state=SHOOT_STATE_READY;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SHOOT_STATE_READY:/*准备射击*/
|
||||||
|
for(int i=0;i<fric_num;i++)
|
||||||
|
{
|
||||||
|
uint8_t level=s->param->motor.fric->level-1;
|
||||||
|
float fric_rpm=s->param->basic.ratio_multilevel[level]*s->target_variable.fric_rpm/MAX_FRIC_RPM;
|
||||||
|
/* 计算跟随输出、计算修正输出 */
|
||||||
|
a=s->target_variable.fric_rpm/MAX_FRIC_RPM;
|
||||||
|
s->output.out_follow[i]=PID_Calc(&s->pid.fric_follow[i],
|
||||||
|
fric_rpm,
|
||||||
|
s->feedback.fric_rpm[i],
|
||||||
|
0,
|
||||||
|
s->timer.dt);
|
||||||
|
s->output.out_err[i]=PID_Calc(&s->pid.fric_err[i],
|
||||||
|
s->feedback.fric_avgrpm,
|
||||||
|
s->feedback.fric_rpm[i],
|
||||||
|
0,
|
||||||
|
s->timer.dt);
|
||||||
|
/* 按比例缩放并加和输出 */
|
||||||
|
ScaleSumTo1(&s->output.out_follow[i], &s->output.out_err[i]);
|
||||||
|
s->output.out_fric[i]=s->output.out_follow[i]+s->output.out_err[i];
|
||||||
|
/* 滤波 */
|
||||||
|
s->output.lpfout_fric[i] = LowPassFilter2p_Apply(&s->filter.fric.out[i], s->output.out_fric[i]);
|
||||||
|
/* 设置输出 */
|
||||||
|
MOTOR_RM_SetOutput(&s->param->motor.fric[i].param, s->output.lpfout_fric[i]);
|
||||||
|
}
|
||||||
|
/* 设置拨弹电机输出 */
|
||||||
|
s->output.outagl_trig =PID_Calc(&s->pid.trig,
|
||||||
|
pos,
|
||||||
|
s->feedback.trig_agl,
|
||||||
|
0,
|
||||||
|
s->timer.dt);
|
||||||
|
s->output.outomg_trig =PID_Calc(&s->pid.trig_omg,
|
||||||
|
s->output.outagl_trig,
|
||||||
|
s->feedback.trig_rpm,
|
||||||
|
0,
|
||||||
|
s->timer.dt);
|
||||||
|
s->output.outlpf_trig =LowPassFilter2p_Apply(&s->filter.trig.out, s->output.outomg_trig);
|
||||||
|
MOTOR_RM_SetOutput(&s->param->motor.trig, s->output.outlpf_trig);
|
||||||
|
|
||||||
|
/* 检查状态机 */
|
||||||
|
if(!cmd->ready)
|
||||||
|
{
|
||||||
|
Shoot_ResetCalu(s);
|
||||||
|
Shoot_ResetOutput(s);
|
||||||
|
s->running_state=SHOOT_STATE_IDLE;
|
||||||
|
}
|
||||||
|
else if(last_firecmd==false&&cmd->firecmd==true)
|
||||||
|
{
|
||||||
|
s->running_state=SHOOT_STATE_FIRE;
|
||||||
|
/* 根据模式设置待发射弹数 */
|
||||||
|
switch(s->mode)
|
||||||
|
{
|
||||||
|
case SHOOT_MODE_SINGLE:
|
||||||
|
s->anglecalu.num_toShoot=1;
|
||||||
|
break;
|
||||||
|
case SHOOT_MODE_BURST:
|
||||||
|
s->anglecalu.num_toShoot=s->param->basic.shot_burst_num;
|
||||||
|
break;
|
||||||
|
case SHOOT_MODE_CONTINUE:
|
||||||
|
s->anglecalu.num_toShoot=6666;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
s->anglecalu.num_toShoot=0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SHOOT_STATE_FIRE:/*射击*/
|
||||||
|
Shoot_CaluTargetAngle(s, cmd);
|
||||||
|
for(int i=0;i<fric_num;i++)
|
||||||
|
{
|
||||||
|
uint8_t level=s->param->motor.fric->level-1;
|
||||||
|
float fric_rpm=s->param->basic.ratio_multilevel[level]*s->target_variable.fric_rpm/MAX_FRIC_RPM;
|
||||||
|
/* 计算跟随输出、计算修正输出 */
|
||||||
|
s->output.out_follow[i]=PID_Calc(&s->pid.fric_follow[i],
|
||||||
|
fric_rpm,
|
||||||
|
s->feedback.fric_rpm[i],
|
||||||
|
0,
|
||||||
|
s->timer.dt);
|
||||||
|
s->output.out_err[i]=PID_Calc(&s->pid.fric_err[i],
|
||||||
|
s->feedback.fric_avgrpm,
|
||||||
|
s->feedback.fric_rpm[i],
|
||||||
|
0,
|
||||||
|
s->timer.dt);
|
||||||
|
/* 按比例缩放并加和输出 */
|
||||||
|
ScaleSumTo1(&s->output.out_follow[i], &s->output.out_err[i]);
|
||||||
|
s->output.out_fric[i]=s->output.out_follow[i]+s->output.out_err[i];
|
||||||
|
/* 滤波 */
|
||||||
|
s->output.lpfout_fric[i] = LowPassFilter2p_Apply(&s->filter.fric.out[i], s->output.out_fric[i]);
|
||||||
|
/* 设置输出 */
|
||||||
|
MOTOR_RM_SetOutput(&s->param->motor.fric[i].param, s->output.lpfout_fric[i]);
|
||||||
|
}
|
||||||
|
/* 设置拨弹电机输出 */
|
||||||
|
s->output.outagl_trig =PID_Calc(&s->pid.trig,
|
||||||
|
s->target_variable.trig_angle,
|
||||||
|
s->feedback.trig_agl,
|
||||||
|
0,
|
||||||
|
s->timer.dt);
|
||||||
|
s->output.outomg_trig =PID_Calc(&s->pid.trig_omg,
|
||||||
|
s->output.outagl_trig,
|
||||||
|
s->feedback.trig_rpm,
|
||||||
|
0,
|
||||||
|
s->timer.dt);
|
||||||
|
s->output.outlpf_trig =LowPassFilter2p_Apply(&s->filter.trig.out, s->output.outomg_trig);
|
||||||
|
MOTOR_RM_SetOutput(&s->param->motor.trig, s->output.outlpf_trig);
|
||||||
|
|
||||||
|
/* 检查状态机 */
|
||||||
|
if(!cmd->firecmd)
|
||||||
|
{
|
||||||
|
s->running_state=SHOOT_STATE_READY;
|
||||||
|
pos=s->feedback.trig_agl;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
s->running_state=SHOOT_STATE_IDLE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* 输出 */
|
||||||
|
MOTOR_RM_Ctrl(&s->param->motor.fric[0].param);
|
||||||
|
if(s->param->basic.fric_num>4)
|
||||||
|
{
|
||||||
|
MOTOR_RM_Ctrl(&s->param->motor.fric[4].param);
|
||||||
|
}
|
||||||
|
MOTOR_RM_Ctrl(&s->param->motor.trig);
|
||||||
|
last_firecmd = cmd->firecmd;
|
||||||
|
return SHOOT_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief 射击模块堵塞检测状态机
|
||||||
|
*
|
||||||
|
* \param s 包含射击数据的结构体
|
||||||
|
* \param cmd 包含射击指令的结构体
|
||||||
|
*
|
||||||
|
* \return 函数运行结果
|
||||||
|
*/
|
||||||
|
int8_t Shoot_JamDetectionFSM(Shoot_t *s, Shoot_CMD_t *cmd)
|
||||||
|
{
|
||||||
|
if (s == NULL) {
|
||||||
|
return SHOOT_ERR_NULL; // 参数错误
|
||||||
|
}
|
||||||
|
if(s->param->jamDetection.enable){
|
||||||
|
switch (s->jamdetection.fsmState) {
|
||||||
|
case SHOOT_JAMFSM_STATE_NORMAL:/* 正常运行 */
|
||||||
|
/* 检测电流是否超过阈值 */
|
||||||
|
if (s->feedback.trig.feedback.torque_current/1000.0f > s->param->jamDetection.threshold) {
|
||||||
|
s->jamdetection.fsmState = SHOOT_JAMFSM_STATE_SUSPECTED;
|
||||||
|
s->jamdetection.lastTime = s->timer.now; /* 记录怀疑开始时间 */
|
||||||
|
}
|
||||||
|
/* 正常运行射击状态机 */
|
||||||
|
Shoot_RunningFSM(s, cmd);
|
||||||
|
break;
|
||||||
|
case SHOOT_JAMFSM_STATE_SUSPECTED:/* 怀疑堵塞 */
|
||||||
|
/* 检测电流是否低于阈值 */
|
||||||
|
if (s->feedback.trig.feedback.torque_current/1000.0f < s->param->jamDetection.threshold) {
|
||||||
|
s->jamdetection.fsmState = SHOOT_JAMFSM_STATE_NORMAL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
/* 检测高阈值状态是否超过设定怀疑时间 */
|
||||||
|
else if ((s->timer.now - s->jamdetection.lastTime) >= s->param->jamDetection.suspectedTime) {
|
||||||
|
s->jamdetection.detected =true;
|
||||||
|
s->jamdetection.fsmState = SHOOT_JAMFSM_STATE_CONFIRMED;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
/* 正常运行射击状态机 */
|
||||||
|
Shoot_RunningFSM(s, cmd);
|
||||||
|
break;
|
||||||
|
case SHOOT_JAMFSM_STATE_CONFIRMED:/* 确认堵塞 */
|
||||||
|
/* 清空待发射弹 */
|
||||||
|
s->anglecalu.num_toShoot=0;
|
||||||
|
/* 修改拨弹盘目标角度 */
|
||||||
|
s->target_variable.trig_angle = s->feedback.trig_agl-(M_2PI/s->param->basic.num_trig_tooth);
|
||||||
|
/* 切换状态 */
|
||||||
|
s->jamdetection.fsmState = SHOOT_JAMFSM_STATE_DEAL;
|
||||||
|
/* 记录处理开始时间 */
|
||||||
|
s->jamdetection.lastTime = s->timer.now;
|
||||||
|
case SHOOT_JAMFSM_STATE_DEAL:/* 堵塞处理 */
|
||||||
|
/* 正常运行射击状态机 */
|
||||||
|
Shoot_RunningFSM(s, cmd);
|
||||||
|
/* 给予0.3秒响应时间并检测电流小于20A,认为堵塞已解除 */
|
||||||
|
if ((s->timer.now - s->jamdetection.lastTime)>=0.3f&&s->feedback.trig.feedback.torque_current/1000.0f < 20.0f) {
|
||||||
|
s->jamdetection.fsmState = SHOOT_JAMFSM_STATE_NORMAL;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
s->jamdetection.fsmState = SHOOT_JAMFSM_STATE_NORMAL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
s->jamdetection.fsmState = SHOOT_JAMFSM_STATE_NORMAL;
|
||||||
|
s->jamdetection.detected = false;
|
||||||
|
Shoot_RunningFSM(s, cmd);
|
||||||
|
}
|
||||||
|
|
||||||
|
return SHOOT_OK;
|
||||||
|
}
|
||||||
|
/* Exported functions ------------------------------------------------------- */
|
||||||
|
/**
|
||||||
|
* \brief 初始化射击模块
|
||||||
|
*
|
||||||
|
* \param s 包含射击数据的结构体
|
||||||
|
* \param param 包含射击参数的结构体
|
||||||
|
* \param target_freq 控制循环频率,单位Hz
|
||||||
|
*
|
||||||
|
* \return 函数运行结果
|
||||||
|
*/
|
||||||
|
int8_t Shoot_Init(Shoot_t *s, Shoot_Params_t *param, float target_freq)
|
||||||
|
{
|
||||||
|
if (s == NULL || param == NULL || target_freq <= 0.0f) {
|
||||||
|
return SHOOT_ERR_NULL; // 参数错误
|
||||||
|
}
|
||||||
|
uint8_t fric_num = param->basic.fric_num;
|
||||||
|
s->param=param;
|
||||||
|
BSP_CAN_Init();
|
||||||
|
/* 初始化摩擦轮PID和滤波器 */
|
||||||
|
for(int i=0;i<fric_num;i++){
|
||||||
|
MOTOR_RM_Register(¶m->motor.fric[i].param);
|
||||||
|
PID_Init(&s->pid.fric_follow[i],
|
||||||
|
KPID_MODE_CALC_D,
|
||||||
|
target_freq,
|
||||||
|
¶m->pid.fric_follow);
|
||||||
|
PID_Init(&s->pid.fric_err[i],
|
||||||
|
KPID_MODE_CALC_D,
|
||||||
|
target_freq,
|
||||||
|
¶m->pid.fric_err);
|
||||||
|
LowPassFilter2p_Init(&s->filter.fric.in[i],
|
||||||
|
target_freq,
|
||||||
|
s->param->filter.fric.in);
|
||||||
|
LowPassFilter2p_Init(&s->filter.fric.out[i],
|
||||||
|
target_freq,
|
||||||
|
s->param->filter.fric.out);
|
||||||
|
}
|
||||||
|
/* 初始化拨弹PID和滤波器 */
|
||||||
|
MOTOR_RM_Register(¶m->motor.trig);
|
||||||
|
switch(s->param->motor.trig.module)
|
||||||
|
{
|
||||||
|
case MOTOR_M3508:
|
||||||
|
PID_Init(&s->pid.trig,
|
||||||
|
KPID_MODE_CALC_D,
|
||||||
|
target_freq,
|
||||||
|
¶m->pid.trig_3508);
|
||||||
|
PID_Init(&s->pid.trig_omg,
|
||||||
|
KPID_MODE_CALC_D,
|
||||||
|
target_freq,
|
||||||
|
¶m->pid.trig_omg_3508);
|
||||||
|
break;
|
||||||
|
case MOTOR_M2006:
|
||||||
|
PID_Init(&s->pid.trig,
|
||||||
|
KPID_MODE_CALC_D,
|
||||||
|
target_freq,
|
||||||
|
¶m->pid.trig_2006);
|
||||||
|
PID_Init(&s->pid.trig_omg,
|
||||||
|
KPID_MODE_CALC_D,
|
||||||
|
target_freq,
|
||||||
|
¶m->pid.trig_omg_2006);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return SHOOT_ERR_MOTOR;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
LowPassFilter2p_Init(&s->filter.trig.in,
|
||||||
|
target_freq,
|
||||||
|
s->param->filter.trig.in);
|
||||||
|
LowPassFilter2p_Init(&s->filter.trig.out,
|
||||||
|
target_freq,
|
||||||
|
s->param->filter.trig.out);
|
||||||
|
|
||||||
|
/* 归零变量 */
|
||||||
|
memset(&s->anglecalu,0,sizeof(s->anglecalu));
|
||||||
|
return SHOOT_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief 射击模块控制主函数
|
||||||
|
*
|
||||||
|
* \param s 包含射击数据的结构体
|
||||||
|
* \param cmd 包含射击指令的结构体
|
||||||
|
*
|
||||||
|
* \return 函数运行结果
|
||||||
|
*/
|
||||||
|
int8_t Shoot_Control(Shoot_t *s, Shoot_CMD_t *cmd)
|
||||||
|
{
|
||||||
|
if (s == NULL || cmd == NULL) {
|
||||||
|
return SHOOT_ERR_NULL; // 参数错误
|
||||||
|
}
|
||||||
|
s->timer.now = BSP_TIME_Get_us() / 1000000.0f;
|
||||||
|
s->timer.dt = (BSP_TIME_Get_us() - s->timer.lask_wakeup) / 1000000.0f;
|
||||||
|
s->timer.lask_wakeup = BSP_TIME_Get_us();
|
||||||
|
s->online = cmd->online;
|
||||||
|
// Shoot_CaluTargetRPM(s,233);
|
||||||
|
|
||||||
|
Shoot_JamDetectionFSM(s, cmd);
|
||||||
|
// Shoot_CalufeedbackRPM(s);
|
||||||
|
return SHOOT_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
243
User/module/shoot_Master&Slave.h
Normal file
243
User/module/shoot_Master&Slave.h
Normal file
@ -0,0 +1,243 @@
|
|||||||
|
/*
|
||||||
|
* far♂蛇模块
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <stddef.h>
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "main.h"
|
||||||
|
#include "component/pid.h"
|
||||||
|
#include "device/motor_rm.h"
|
||||||
|
/* Exported constants ------------------------------------------------------- */
|
||||||
|
#define SHOOT_OK (0) /* 运行正常 */
|
||||||
|
#define SHOOT_ERR_NULL (-1) /* 运行时发现NULL指针 */
|
||||||
|
#define SHOOT_ERR_ERR (-2) /* 运行时发现了其他错误 */
|
||||||
|
#define SHOOT_ERR_MODE (-3) /* 运行时配置了错误的Mode */
|
||||||
|
#define SHOOT_ERR_MOTOR (-4) /* 运行时配置了不存在的电机类型 */
|
||||||
|
#define SHOOT_ERR_MALLOC (-5) /* 内存分配失败 */
|
||||||
|
|
||||||
|
#define MAX_FRIC_RPM 7000.0f
|
||||||
|
#define MAX_TRIG_RPM 5000.0f//这里可能也会影响最高发射频率,待测试
|
||||||
|
|
||||||
|
#define MAX_FRIC_NUM 6
|
||||||
|
#define MAX_NUM_MULTILEVEL 2 /* 多级发射级数 */
|
||||||
|
/* Exported macro ----------------------------------------------------------- */
|
||||||
|
/* Exported types ----------------------------------------------------------- */
|
||||||
|
typedef enum {
|
||||||
|
SHOOT_JAMFSM_STATE_NORMAL = 0,/* 常规状态 */
|
||||||
|
SHOOT_JAMFSM_STATE_SUSPECTED, /* 怀疑状态 */
|
||||||
|
SHOOT_JAMFSM_STATE_CONFIRMED, /* 确认状态 */
|
||||||
|
SHOOT_JAMFSM_STATE_DEAL /* 处理状态 */
|
||||||
|
}Shoot_JamDetectionFSM_State_t;
|
||||||
|
typedef enum {
|
||||||
|
SHOOT_STATE_IDLE = 0,/* 熄火 */
|
||||||
|
SHOOT_STATE_READY, /* 准备射击 */
|
||||||
|
SHOOT_STATE_FIRE /* 射击 */
|
||||||
|
}Shoot_Running_State_t;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
SHOOT_MODE_SAFE = 0,/* 安全模式 */
|
||||||
|
SHOOT_MODE_SINGLE, /* 单发模式 */
|
||||||
|
SHOOT_MODE_BURST, /* 多发模式 */
|
||||||
|
SHOOT_MODE_CONTINUE,/* 连发模式 */
|
||||||
|
SHOOT_MODE_NUM
|
||||||
|
}Shoot_Mode_t;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
SHOOT_PROJECTILE_17MM,
|
||||||
|
SHOOT_PROJECTILE_42MM,
|
||||||
|
}Shoot_Projectile_t;
|
||||||
|
|
||||||
|
typedef struct{
|
||||||
|
MOTOR_RM_Param_t param;
|
||||||
|
uint8_t level; /* 电机属于第几级发射;1起始 */
|
||||||
|
}Shoot_MOTOR_RM_Param_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
MOTOR_Feedback_t fric[MAX_FRIC_NUM];/* 摩擦轮电机反馈 */
|
||||||
|
MOTOR_RM_t trig; /* 拨弹电机反馈 */
|
||||||
|
float trig_agl; /*计算所有减速比后的拨弹盘的角度*/
|
||||||
|
float fil_fric_rpm[MAX_FRIC_NUM]; /* 滤波后的摩擦轮转速 */
|
||||||
|
float fil_trig_rpm; /* 滤波后的拨弹电机转速*/
|
||||||
|
|
||||||
|
float fric_rpm[MAX_FRIC_NUM]; /* 归一化摩擦轮转速 */
|
||||||
|
float fric_avgrpm; /* 归一化摩擦轮平均转速 */
|
||||||
|
float trig_rpm; /* 归一化拨弹电机转速 */
|
||||||
|
}Shoot_Feedback_t;
|
||||||
|
|
||||||
|
typedef struct{
|
||||||
|
float time_lastShoot;/* 上次射击时间 */
|
||||||
|
uint16_t num_toShoot;/* 剩余待发射弹数 */
|
||||||
|
uint16_t num_shooted;/* 已发射弹数 */
|
||||||
|
}Shoot_trigAngleCalu_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
bool detected; /* 卡弹检测结果 */
|
||||||
|
float lastTime;/* 用于记录怀疑状态或处理状态的开始时间 */
|
||||||
|
Shoot_JamDetectionFSM_State_t fsmState; /* 卡弹检测状态机 */
|
||||||
|
}Shoot_JamDetection_t;
|
||||||
|
typedef struct {
|
||||||
|
float out_follow[MAX_FRIC_NUM];
|
||||||
|
float out_err[MAX_FRIC_NUM];
|
||||||
|
float out_fric[MAX_FRIC_NUM];
|
||||||
|
float lpfout_fric[MAX_FRIC_NUM];
|
||||||
|
|
||||||
|
float outagl_trig;
|
||||||
|
float outomg_trig;
|
||||||
|
float outlpf_trig;
|
||||||
|
}Shoot_Output_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
bool online; /* 在线标志 */
|
||||||
|
Shoot_Mode_t mode;/* 射击模式 */
|
||||||
|
bool ready; /* 准备射击 */
|
||||||
|
bool firecmd; /* 射击 */
|
||||||
|
}Shoot_CMD_t;
|
||||||
|
/* 底盘参数的结构体,包含所有初始化用的参数,通常是const,存好几组 */
|
||||||
|
typedef struct {
|
||||||
|
struct{
|
||||||
|
Shoot_Projectile_t projectileType; /* 发射弹丸类型 */;
|
||||||
|
size_t fric_num; /* 摩擦轮电机数量 */
|
||||||
|
size_t num_multilevel; /* 多级发射级数 */
|
||||||
|
float ratio_multilevel[MAX_NUM_MULTILEVEL]; /* 多级发射各级速度比例 */
|
||||||
|
float extra_deceleration_ratio; /*电机出轴到拨盘的额外减速比;没有写1*/
|
||||||
|
size_t num_trig_tooth; /* 拨弹盘每圈弹丸数量 */
|
||||||
|
float shot_freq; /* 射击频率,单位Hz */
|
||||||
|
size_t shot_burst_num; /* 多发模式一次射击的数量 */
|
||||||
|
}basic;/* 发射基础参数 */
|
||||||
|
struct {
|
||||||
|
bool enable; /* 是否启用卡弹检测 */
|
||||||
|
float threshold; /* 卡弹检测阈值,单位A (dji2006建议设置为120A,dji3508建议设置为235A,根据实际测试调整)*/
|
||||||
|
float suspectedTime;/* 卡弹怀疑时间,单位秒 */
|
||||||
|
}jamDetection;/* 卡弹检测参数 */
|
||||||
|
struct {
|
||||||
|
Shoot_MOTOR_RM_Param_t fric[MAX_FRIC_NUM];
|
||||||
|
MOTOR_RM_Param_t trig;
|
||||||
|
}motor; /* 电机参数 */
|
||||||
|
struct{
|
||||||
|
KPID_Params_t fric_follow; /* 摩擦轮电机PID控制参数,用于跟随目标速度 */
|
||||||
|
KPID_Params_t fric_err; /* 摩擦轮电机PID控制参数,用于消除转速误差 */
|
||||||
|
KPID_Params_t trig_2006; /* 拨弹电机PID控制参数 */
|
||||||
|
KPID_Params_t trig_omg_2006;/* 拨弹电机PID控制参数 */
|
||||||
|
KPID_Params_t trig_3508; /* 拨弹电机PID控制参数 */
|
||||||
|
KPID_Params_t trig_omg_3508;/* 拨弹电机PID控制参数 */
|
||||||
|
}pid; /* PID参数 */
|
||||||
|
struct {
|
||||||
|
struct{
|
||||||
|
float in; /* 反馈值滤波器截止频率 */
|
||||||
|
float out; /* 输出值滤波器截止频率 */
|
||||||
|
}fric;
|
||||||
|
struct{
|
||||||
|
float in; /* 反馈值滤波器截止频率 */
|
||||||
|
float out; /* 输出值滤波器截止频率 */
|
||||||
|
}trig;
|
||||||
|
} filter;/* 滤波器截止频率参数 */
|
||||||
|
} Shoot_Params_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
float now; /* 当前时间,单位秒 */
|
||||||
|
uint64_t lask_wakeup; /* 上次唤醒时间,单位微秒 */
|
||||||
|
float dt; /* 两次唤醒间隔时间,单位秒 */
|
||||||
|
}Shoot_Timer_t;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 运行的主结构体,所有这个文件里的函数都在操作这个结构体
|
||||||
|
* 包含了初始化参数,中间变量,输出变量
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
bool online; /*在线检测*/
|
||||||
|
Shoot_Timer_t timer; /* 计时器 */
|
||||||
|
Shoot_Params_t *param; /* 发射参数 */
|
||||||
|
/* 模块通用 */
|
||||||
|
Shoot_Mode_t mode; /* 射击模式 */
|
||||||
|
/* 反馈信息 */
|
||||||
|
Shoot_Feedback_t feedback;
|
||||||
|
/* 控制信息*/
|
||||||
|
Shoot_Running_State_t running_state; /* 运行状态机 */
|
||||||
|
Shoot_JamDetection_t jamdetection; /* 卡弹检测控制信息 */
|
||||||
|
Shoot_trigAngleCalu_t anglecalu; /* 角度计算控制信息 */
|
||||||
|
Shoot_Output_t output; /* 输出信息 */
|
||||||
|
/* 目标控制量 */
|
||||||
|
struct {
|
||||||
|
float fric_rpm; /* 目标摩擦轮转速 */
|
||||||
|
float trig_angle;/* 目标拨弹位置 */
|
||||||
|
}target_variable;
|
||||||
|
|
||||||
|
/* 反馈控制用的PID */
|
||||||
|
struct {
|
||||||
|
KPID_t fric_follow[MAX_FRIC_NUM];/* 摩擦轮PID主结构体 */
|
||||||
|
KPID_t fric_err[MAX_FRIC_NUM]; /* 摩擦轮PID主结构体 */
|
||||||
|
KPID_t trig; /* 拨弹PID主结构体 */
|
||||||
|
KPID_t trig_omg; /* 拨弹PID主结构体 */
|
||||||
|
} pid;
|
||||||
|
|
||||||
|
/* 滤波器 */
|
||||||
|
struct {
|
||||||
|
struct{
|
||||||
|
LowPassFilter2p_t in[MAX_FRIC_NUM]; /* 反馈值滤波器 */
|
||||||
|
LowPassFilter2p_t out[MAX_FRIC_NUM];/* 输出值滤波器 */
|
||||||
|
}fric;
|
||||||
|
struct{
|
||||||
|
LowPassFilter2p_t in; /* 反馈值滤波器 */
|
||||||
|
LowPassFilter2p_t out;/* 输出值滤波器 */
|
||||||
|
}trig;
|
||||||
|
} filter;
|
||||||
|
|
||||||
|
float errtosee; /*调试用*/
|
||||||
|
|
||||||
|
} Shoot_t;
|
||||||
|
|
||||||
|
/* Exported functions prototypes -------------------------------------------- */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief 初始化发射
|
||||||
|
*
|
||||||
|
* \param s 包含发射数据的结构体
|
||||||
|
* \param param 包含发射参数的结构体指针
|
||||||
|
* \param target_freq 任务预期的运行频率
|
||||||
|
*
|
||||||
|
* \return 函数运行结果
|
||||||
|
*/
|
||||||
|
int8_t Shoot_Init(Shoot_t *s, Shoot_Params_t *param, float target_freq);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief 设置发射模式
|
||||||
|
*
|
||||||
|
* \param s 包含发射数据的结构体
|
||||||
|
* \param mode 包含发射模式的枚举
|
||||||
|
*
|
||||||
|
* \return 函数运行结果
|
||||||
|
*/
|
||||||
|
int8_t Shoot_SetMode(Shoot_t *s, Shoot_Mode_t mode);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief 更新反馈
|
||||||
|
*
|
||||||
|
* \param s 包含发射数据的结构体
|
||||||
|
*
|
||||||
|
* \return 函数运行结果
|
||||||
|
*/
|
||||||
|
int8_t Shoot_UpdateFeedback(Shoot_t *s);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief 初始化发射
|
||||||
|
*
|
||||||
|
* \param s 包含发射数据的结构体
|
||||||
|
* \param cmd 包含发射命令的结构体
|
||||||
|
*
|
||||||
|
* \return 函数运行结果
|
||||||
|
*/
|
||||||
|
int8_t Shoot_Control(Shoot_t *s, Shoot_CMD_t *cmd);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -6,6 +6,7 @@
|
|||||||
/* Includes ----------------------------------------------------------------- */
|
/* Includes ----------------------------------------------------------------- */
|
||||||
#include "task/user_task.h"
|
#include "task/user_task.h"
|
||||||
/* USER INCLUDE BEGIN */
|
/* USER INCLUDE BEGIN */
|
||||||
|
#include "device/dr16.h"
|
||||||
#include "device/at9s_pro.h"
|
#include "device/at9s_pro.h"
|
||||||
#include "module/config.h"
|
#include "module/config.h"
|
||||||
#include "module/chassis.h"
|
#include "module/chassis.h"
|
||||||
@ -20,7 +21,6 @@
|
|||||||
/* Private macro ------------------------------------------------------------ */
|
/* Private macro ------------------------------------------------------------ */
|
||||||
/* Private variables -------------------------------------------------------- */
|
/* Private variables -------------------------------------------------------- */
|
||||||
/* USER STRUCT BEGIN */
|
/* USER STRUCT BEGIN */
|
||||||
DEVICE_AT9S_t at9s_out;
|
|
||||||
Shoot_CMD_t cmd_for_shoot;
|
Shoot_CMD_t cmd_for_shoot;
|
||||||
Chassis_CMD_t cmd_for_chassis;
|
Chassis_CMD_t cmd_for_chassis;
|
||||||
Gimbal_CMD_t cmd_for_gimbal;
|
Gimbal_CMD_t cmd_for_gimbal;
|
||||||
@ -47,7 +47,6 @@ void Task_cmd(void *argument) {
|
|||||||
while (1) {
|
while (1) {
|
||||||
tick += delay_tick; /* 计算下一个唤醒时刻 */
|
tick += delay_tick; /* 计算下一个唤醒时刻 */
|
||||||
/* USER CODE BEGIN */
|
/* USER CODE BEGIN */
|
||||||
osMessageQueueGet(task_runtime.msgq.cmd.rc, &at9s_out, NULL, 0);
|
|
||||||
Cmd_GenerateCommand(&cmd);
|
Cmd_GenerateCommand(&cmd);
|
||||||
cmd_for_shoot=cmd.output.shoot.cmd;
|
cmd_for_shoot=cmd.output.shoot.cmd;
|
||||||
cmd_for_chassis=cmd.output.chassis.cmd;
|
cmd_for_chassis=cmd.output.chassis.cmd;
|
||||||
@ -58,70 +57,6 @@ void Task_cmd(void *argument) {
|
|||||||
osMessageQueuePut(task_runtime.msgq.shoot.cmd, &cmd_for_shoot, 0, 0);
|
osMessageQueuePut(task_runtime.msgq.shoot.cmd, &cmd_for_shoot, 0, 0);
|
||||||
osMessageQueueReset(task_runtime.msgq.chassis.cmd);
|
osMessageQueueReset(task_runtime.msgq.chassis.cmd);
|
||||||
osMessageQueuePut(task_runtime.msgq.chassis.cmd, &cmd_for_chassis, 0, 0);
|
osMessageQueuePut(task_runtime.msgq.chassis.cmd, &cmd_for_chassis, 0, 0);
|
||||||
|
|
||||||
// switch (at9s_out.data.key_G) {
|
|
||||||
// case AT9S_CMD_SW_DOWN:
|
|
||||||
// cmd_for_gimbal.mode = GIMBAL_MODE_RELAX;
|
|
||||||
// cmd_for_gimbal.delta_yaw = 0.0f;
|
|
||||||
// cmd_for_gimbal.delta_pit = 0.0f;
|
|
||||||
// break;
|
|
||||||
// case AT9S_CMD_SW_MID:
|
|
||||||
// cmd_for_gimbal.mode = GIMBAL_MODE_ABSOLUTE;
|
|
||||||
// cmd_for_gimbal.delta_yaw = -at9s_out.data.ch_l_x * 2.0f;
|
|
||||||
// cmd_for_gimbal.delta_pit = -at9s_out.data.ch_l_y * 1.5f;
|
|
||||||
// break;
|
|
||||||
// case AT9S_CMD_SW_UP:
|
|
||||||
// cmd_for_gimbal.mode = GIMBAL_MODE_ABSOLUTE;
|
|
||||||
// cmd_for_gimbal.delta_yaw = -at9s_out.data.ch_l_x * 2.0f;
|
|
||||||
// cmd_for_gimbal.delta_pit = -at9s_out.data.ch_l_y * 1.5f;
|
|
||||||
// break;
|
|
||||||
// default:
|
|
||||||
// cmd_for_gimbal.mode = GIMBAL_MODE_RELAX;
|
|
||||||
// cmd_for_gimbal.delta_yaw = 0.0f;
|
|
||||||
// cmd_for_gimbal.delta_pit = 0.0f;
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// switch (at9s_out.data.key_C) {
|
|
||||||
// case AT9S_CMD_SW_DOWN:
|
|
||||||
// cmd_for_shoot.online = at9s_out.online;
|
|
||||||
// cmd_for_shoot.ready = true;
|
|
||||||
// cmd_for_shoot.firecmd = true;
|
|
||||||
// break;
|
|
||||||
// case AT9S_CMD_SW_MID:
|
|
||||||
// cmd_for_shoot.online = at9s_out.online;
|
|
||||||
// cmd_for_shoot.ready = true;
|
|
||||||
// cmd_for_shoot.firecmd = false;
|
|
||||||
// break;
|
|
||||||
// case AT9S_CMD_SW_UP:
|
|
||||||
// cmd_for_shoot.online = at9s_out.online;
|
|
||||||
// cmd_for_shoot.ready = false;
|
|
||||||
// cmd_for_shoot.firecmd = false;
|
|
||||||
// break;
|
|
||||||
// default:
|
|
||||||
// cmd_for_shoot.online = at9s_out.online;
|
|
||||||
// cmd_for_shoot.ready = false;
|
|
||||||
// cmd_for_shoot.firecmd = false;
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
// switch (at9s_from_rc.data.key_E) {
|
|
||||||
// case AT9S_CMD_SW_DOWN:
|
|
||||||
// cmd_for_chassis.mode = CHASSIS_MODE_RELAX;
|
|
||||||
// break;
|
|
||||||
// case AT9S_CMD_SW_MID:
|
|
||||||
// cmd_for_chassis.mode = CHASSIS_MODE_FOLLOW_GIMBAL;
|
|
||||||
// break;
|
|
||||||
// case AT9S_CMD_SW_UP:
|
|
||||||
// cmd_for_chassis.mode = CHASSIS_MODE_ROTOR;
|
|
||||||
// break;
|
|
||||||
// default:
|
|
||||||
// cmd_for_chassis.mode = CHASSIS_MODE_RELAX;
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
// cmd_for_chassis.ctrl_vec.vx = at9s_from_rc.data.ch_l_y;
|
|
||||||
// cmd_for_chassis.ctrl_vec.vy = at9s_from_rc.data.ch_l_x;
|
|
||||||
// cmd_for_chassis.ctrl_vec.wz = at9s_from_rc.data.ch_r_x;
|
|
||||||
|
|
||||||
/* USER CODE END */
|
/* USER CODE END */
|
||||||
osDelayUntil(tick); /* 运行结束,等待下一次唤醒 */
|
osDelayUntil(tick); /* 运行结束,等待下一次唤醒 */
|
||||||
}
|
}
|
||||||
|
|||||||
@ -35,7 +35,7 @@ void Task_ctrl_chassis(void *argument) {
|
|||||||
/* USER CODE INIT BEGIN */
|
/* USER CODE INIT BEGIN */
|
||||||
Config_RobotParam_t *cfg = Config_GetRobotParam();
|
Config_RobotParam_t *cfg = Config_GetRobotParam();
|
||||||
Chassis_Init(&chassis, &cfg->chassis_param, (float)CTRL_CHASSIS_FREQ);
|
Chassis_Init(&chassis, &cfg->chassis_param, (float)CTRL_CHASSIS_FREQ);
|
||||||
chassis.mech_zero=4.13f;
|
chassis.mech_zero=0.57f;
|
||||||
/* USER CODE INIT END */
|
/* USER CODE INIT END */
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
|
|||||||
@ -6,7 +6,6 @@
|
|||||||
/* Includes ----------------------------------------------------------------- */
|
/* Includes ----------------------------------------------------------------- */
|
||||||
#include "task/user_task.h"
|
#include "task/user_task.h"
|
||||||
/* USER INCLUDE BEGIN */
|
/* USER INCLUDE BEGIN */
|
||||||
#include "component/at9s_pro_cmd.h"
|
|
||||||
#include "module/shoot.h"
|
#include "module/shoot.h"
|
||||||
#include "module/config.h"
|
#include "module/config.h"
|
||||||
/* USER INCLUDE END */
|
/* USER INCLUDE END */
|
||||||
@ -34,7 +33,6 @@ void Task_ctrl_shoot(void *argument) {
|
|||||||
uint32_t tick = osKernelGetTickCount(); /* 控制任务运行频率的计时 */
|
uint32_t tick = osKernelGetTickCount(); /* 控制任务运行频率的计时 */
|
||||||
/* USER CODE INIT BEGIN */
|
/* USER CODE INIT BEGIN */
|
||||||
Shoot_Init(&shoot,&Config_GetRobotParam()->shoot_param,CTRL_SHOOT_FREQ);
|
Shoot_Init(&shoot,&Config_GetRobotParam()->shoot_param,CTRL_SHOOT_FREQ);
|
||||||
Shoot_SetMode(&shoot,SHOOT_MODE_BURST);
|
|
||||||
/* USER CODE INIT END */
|
/* USER CODE INIT END */
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
@ -42,6 +40,7 @@ void Task_ctrl_shoot(void *argument) {
|
|||||||
/* USER CODE BEGIN */
|
/* USER CODE BEGIN */
|
||||||
osMessageQueueGet(task_runtime.msgq.shoot.cmd, &shoot_cmd, NULL, 0);
|
osMessageQueueGet(task_runtime.msgq.shoot.cmd, &shoot_cmd, NULL, 0);
|
||||||
Shoot_UpdateFeedback(&shoot);
|
Shoot_UpdateFeedback(&shoot);
|
||||||
|
Shoot_SetMode(&shoot,shoot_cmd.mode);
|
||||||
Shoot_Control(&shoot,&shoot_cmd);
|
Shoot_Control(&shoot,&shoot_cmd);
|
||||||
|
|
||||||
/* USER CODE END */
|
/* USER CODE END */
|
||||||
|
|||||||
@ -7,8 +7,8 @@
|
|||||||
#include "task/user_task.h"
|
#include "task/user_task.h"
|
||||||
|
|
||||||
/* USER INCLUDE BEGIN */
|
/* USER INCLUDE BEGIN */
|
||||||
|
#include "device/dr16.h"
|
||||||
#include "device/at9s_pro.h"
|
#include "device/at9s_pro.h"
|
||||||
#include "component/at9s_pro_cmd.h"
|
|
||||||
#include "module/gimbal.h"
|
#include "module/gimbal.h"
|
||||||
#include "module/shoot.h"
|
#include "module/shoot.h"
|
||||||
#include "module/chassis.h"
|
#include "module/chassis.h"
|
||||||
@ -46,10 +46,10 @@ void Task_Init(void *argument) {
|
|||||||
// 创建消息队列
|
// 创建消息队列
|
||||||
/* USER MESSAGE BEGIN */
|
/* USER MESSAGE BEGIN */
|
||||||
task_runtime.msgq.user_msg= osMessageQueueNew(2u, 10, NULL);
|
task_runtime.msgq.user_msg= osMessageQueueNew(2u, 10, NULL);
|
||||||
task_runtime.msgq.cmd.rc= osMessageQueueNew(3u, sizeof(DEVICE_AT9S_t), NULL);
|
task_runtime.msgq.cmd.rc= osMessageQueueNew(3u, sizeof(AT9S_t), NULL);
|
||||||
task_runtime.msgq.cmd.pc= osMessageQueueNew(3u, sizeof(DEVICE_AT9S_t), NULL);
|
task_runtime.msgq.cmd.pc= osMessageQueueNew(3u, sizeof(DR16_t), NULL);
|
||||||
task_runtime.msgq.chassis.cmd= osMessageQueueNew(3u, sizeof(COMP_AT9S_CMD_t), NULL);
|
|
||||||
task_runtime.msgq.chassis.yaw = osMessageQueueNew(2u, sizeof(float), NULL);
|
task_runtime.msgq.chassis.yaw = osMessageQueueNew(2u, sizeof(float), NULL);
|
||||||
|
task_runtime.msgq.chassis.cmd= osMessageQueueNew(3u, sizeof(Chassis_CMD_t), NULL);
|
||||||
task_runtime.msgq.gimbal.imu= osMessageQueueNew(2u, sizeof(Gimbal_IMU_t), NULL);
|
task_runtime.msgq.gimbal.imu= osMessageQueueNew(2u, sizeof(Gimbal_IMU_t), NULL);
|
||||||
task_runtime.msgq.gimbal.cmd= osMessageQueueNew(2u, sizeof(Gimbal_CMD_t), NULL);
|
task_runtime.msgq.gimbal.cmd= osMessageQueueNew(2u, sizeof(Gimbal_CMD_t), NULL);
|
||||||
task_runtime.msgq.shoot.cmd = osMessageQueueNew(2u, sizeof(Shoot_CMD_t), NULL);
|
task_runtime.msgq.shoot.cmd = osMessageQueueNew(2u, sizeof(Shoot_CMD_t), NULL);
|
||||||
|
|||||||
@ -3,14 +3,13 @@
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// #define AT9S
|
#define AT9S
|
||||||
#define AT9S
|
// #define DR16
|
||||||
/* Includes ----------------------------------------------------------------- */
|
/* Includes ----------------------------------------------------------------- */
|
||||||
#include "task/user_task.h"
|
#include "task/user_task.h"
|
||||||
/* USER INCLUDE BEGIN */
|
/* USER INCLUDE BEGIN */
|
||||||
#ifdef AT9S
|
#ifdef AT9S
|
||||||
#include "device/at9s_pro.h"
|
#include "device/at9s_pro.h"
|
||||||
#include "component/at9s_pro_cmd.h"
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef DR16
|
#ifdef DR16
|
||||||
@ -24,9 +23,8 @@
|
|||||||
/* Private variables -------------------------------------------------------- */
|
/* Private variables -------------------------------------------------------- */
|
||||||
/* USER STRUCT BEGIN */
|
/* USER STRUCT BEGIN */
|
||||||
#ifdef AT9S
|
#ifdef AT9S
|
||||||
uint8_t cmd_buffer[DEVICE_AT9S_FRAME_LEN];
|
uint8_t cmd_buffer[AT9S_FRAME_LEN];
|
||||||
DEVICE_AT9S_t at9s;
|
AT9S_t at9s;
|
||||||
COMP_AT9S_CMD_t rc_cmd;
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef DR16
|
#ifdef DR16
|
||||||
DR16_t dr16;
|
DR16_t dr16;
|
||||||
@ -47,8 +45,8 @@ void Task_rc(void *argument) {
|
|||||||
uint32_t tick = osKernelGetTickCount(); /* 控制任务运行频率的计时 */
|
uint32_t tick = osKernelGetTickCount(); /* 控制任务运行频率的计时 */
|
||||||
/* USER CODE INIT BEGIN */
|
/* USER CODE INIT BEGIN */
|
||||||
#ifdef AT9S
|
#ifdef AT9S
|
||||||
DEVICE_AT9S_Init(&at9s);
|
AT9S_Init(&at9s);
|
||||||
DEVICE_AT9S_StartDmaRecv(cmd_buffer);
|
AT9S_StartDmaRecv(cmd_buffer);
|
||||||
#endif
|
#endif
|
||||||
#ifdef DR16
|
#ifdef DR16
|
||||||
DR16_Init(&dr16);
|
DR16_Init(&dr16);
|
||||||
@ -59,9 +57,9 @@ void Task_rc(void *argument) {
|
|||||||
tick += delay_tick; /* 计算下一个唤醒时刻 */
|
tick += delay_tick; /* 计算下一个唤醒时刻 */
|
||||||
/* USER CODE BEGIN */
|
/* USER CODE BEGIN */
|
||||||
#ifdef AT9S
|
#ifdef AT9S
|
||||||
if (DEVICE_AT9S_WaitDmaCplt(10)) {
|
if (AT9S_WaitDmaCplt(10)) {
|
||||||
DEVICE_AT9S_ParseRaw(cmd_buffer, &at9s);
|
AT9S_ParseRaw(cmd_buffer, &at9s);
|
||||||
DEVICE_AT9S_StartDmaRecv(cmd_buffer);
|
AT9S_StartDmaRecv(cmd_buffer);
|
||||||
}
|
}
|
||||||
osMessageQueuePut(task_runtime.msgq.cmd.rc, &at9s, 0, 0);
|
osMessageQueuePut(task_runtime.msgq.cmd.rc, &at9s, 0, 0);
|
||||||
#endif
|
#endif
|
||||||
@ -72,6 +70,7 @@ void Task_rc(void *argument) {
|
|||||||
} else {
|
} else {
|
||||||
DR16_Offline(&dr16);
|
DR16_Offline(&dr16);
|
||||||
}
|
}
|
||||||
|
osMessageQueuePut(task_runtime.msgq.cmd.rc, &dr16, 0, 0);
|
||||||
#endif
|
#endif
|
||||||
/* USER CODE END */
|
/* USER CODE END */
|
||||||
osDelayUntil(tick); /* 运行结束,等待下一次唤醒 */
|
osDelayUntil(tick); /* 运行结束,等待下一次唤醒 */
|
||||||
|
|||||||
@ -32,6 +32,7 @@ void OnProjectLoad (void) {
|
|||||||
//
|
//
|
||||||
// User settings
|
// User settings
|
||||||
//
|
//
|
||||||
|
Edit.SysVar (VAR_HSS_SPEED, "200 Hz");
|
||||||
File.Open ("D:/CUBEMX/hero/god-yuan-hero/build/Debug/hero.elf");
|
File.Open ("D:/CUBEMX/hero/god-yuan-hero/build/Debug/hero.elf");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,42 +1,67 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Breakpoint=D:/CUBEMX/hero/god-yuan-hero/User/module/shoot.c:364:7, State=BP_STATE_DISABLED
|
||||||
|
GraphedExpression="(((shoot).feedback).fric[0]).rotor_speed", Color=#e56a6f, Show=0
|
||||||
|
GraphedExpression="(((shoot).feedback).fric[1]).rotor_speed", Color=#35792b, Show=0
|
||||||
|
GraphedExpression="(((shoot).feedback).fric[3]).rotor_speed", Color=#769dda, Show=0
|
||||||
|
GraphedExpression="(((shoot).feedback).fric[2]).rotor_speed", Color=#b14f0d, Show=0
|
||||||
|
GraphedExpression="(((shoot).feedback).fric[4]).rotor_speed", Color=#b3c38e, Show=0
|
||||||
|
GraphedExpression="(((shoot).feedback).fric[5]).rotor_speed", Color=#ab7b05, Show=0
|
||||||
|
GraphedExpression="((((shoot).feedback).trig).feedback).rotor_speed", Color=#7fd3b7
|
||||||
|
GraphedExpression="((((shoot).feedback).trig).feedback).rotor_abs_angle", Color=#50328f
|
||||||
|
OpenDocument="memcpy.c", FilePath="/build/gnu-tools-for-stm32_13.3.rel1.20250523-0900/src/newlib/newlib/libc/string/memcpy.c", Line=0
|
||||||
|
OpenDocument="startup_stm32f407xx.s", FilePath="D:/CUBEMX/hero/god-yuan-hero/startup_stm32f407xx.s", Line=48
|
||||||
|
OpenDocument="motor_dm.h", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/device/motor_dm.h", Line=45
|
||||||
|
OpenDocument="can.h", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/bsp/can.h", Line=0
|
||||||
|
OpenDocument="shoot.h", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/module/shoot.h", Line=78
|
||||||
|
OpenDocument="ctrl_gimbal.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/task/ctrl_gimbal.c", Line=14
|
||||||
OpenDocument="main.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/Core/Src/main.c", Line=60
|
OpenDocument="main.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/Core/Src/main.c", Line=60
|
||||||
OpenDocument="rc.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/task/rc.c", Line=0
|
OpenDocument="rc.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/task/rc.c", Line=0
|
||||||
OpenDocument="tasks.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/Middlewares/Third_Party/FreeRTOS/Source/tasks.c", Line=3627
|
OpenDocument="tasks.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/Middlewares/Third_Party/FreeRTOS/Source/tasks.c", Line=3419
|
||||||
OpenDocument="shoot.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/module/shoot.c", Line=0
|
OpenDocument="shoot.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/module/shoot.c", Line=346
|
||||||
OpenDocument="config.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/module/config.c", Line=0
|
OpenDocument="config.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/module/config.c", Line=0
|
||||||
OpenDocument="config.h", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/module/config.h", Line=0
|
OpenDocument="config.h", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/module/config.h", Line=0
|
||||||
OpenDocument="cmd.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/task/cmd.c", Line=79
|
OpenDocument="cmd.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/task/cmd.c", Line=22
|
||||||
OpenDocument="cmd.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/module/cmd.c", Line=174
|
OpenDocument="cmd.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/module/cmd.c", Line=80
|
||||||
OpenDocument="startup_stm32f407xx.s", FilePath="D:/CUBEMX/hero/god-yuan-hero/startup_stm32f407xx.s", Line=48
|
OpenDocument="stm32f4xx_hal_can.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c", Line=1994
|
||||||
OpenDocument="stm32f4xx_hal_msp.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/Core/Src/stm32f4xx_hal_msp.c", Line=28
|
OpenDocument="stm32f4xx_hal_msp.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/Core/Src/stm32f4xx_hal_msp.c", Line=28
|
||||||
OpenDocument="usart.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/Core/Src/usart.c", Line=179
|
OpenDocument="usart.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/Core/Src/usart.c", Line=179
|
||||||
OpenDocument="ctrl_shoot.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/task/ctrl_shoot.c", Line=0
|
OpenDocument="ctrl_chassis.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/task/ctrl_chassis.c", Line=6
|
||||||
OpenDocument="ctrl_gimbal.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/task/ctrl_gimbal.c", Line=14
|
OpenDocument="gimbal.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/module/gimbal.c", Line=0
|
||||||
OpenDocument="ctrl_chassis.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/task/ctrl_chassis.c", Line=7
|
OpenDocument="ctrl_shoot.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/task/ctrl_shoot.c", Line=2
|
||||||
OpenDocument="user_task.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/task/user_task.c", Line=0
|
OpenDocument="user_task.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/task/user_task.c", Line=0
|
||||||
OpenDocument="stm32f4xx_it.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/Core/Src/stm32f4xx_it.c", Line=83
|
OpenDocument="stm32f4xx_it.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/Core/Src/stm32f4xx_it.c", Line=83
|
||||||
OpenToolbar="Debug", Floating=0, x=0, y=0
|
OpenToolbar="Debug", Floating=0, x=0, y=0
|
||||||
OpenWindow="Registers 1", DockArea=RIGHT, x=0, y=1, w=726, h=541, TabPos=1, TopOfStack=0, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, FilteredItems=[], RefreshRate=1
|
OpenWindow="Registers 1", DockArea=RIGHT, x=0, y=1, w=726, h=521, TabPos=2, TopOfStack=0, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, FilteredItems=[], RefreshRate=1
|
||||||
OpenWindow="Source Files", DockArea=LEFT, x=0, y=0, w=301, h=919, TabPos=0, TopOfStack=1, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
|
OpenWindow="Source Files", DockArea=LEFT, x=0, y=0, w=301, h=919, TabPos=0, TopOfStack=1, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
|
||||||
OpenWindow="Disassembly", DockArea=RIGHT, x=0, y=0, w=726, h=377, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
|
OpenWindow="Disassembly", DockArea=RIGHT, x=0, y=0, w=726, h=397, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
|
||||||
OpenWindow="Watched Data 1", DockArea=RIGHT, x=0, y=1, w=726, h=541, TabPos=0, TopOfStack=1, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
|
OpenWindow="Watched Data 1", DockArea=RIGHT, x=0, y=1, w=726, h=521, TabPos=1, TopOfStack=1, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
|
||||||
OpenWindow="Functions", DockArea=LEFT, x=0, y=0, w=301, h=919, TabPos=1, TopOfStack=0, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
|
OpenWindow="Functions", DockArea=LEFT, x=0, y=0, w=301, h=919, TabPos=1, TopOfStack=0, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
|
||||||
OpenWindow="Data Sampling", DockArea=BOTTOM, x=1, y=0, w=1276, h=536, TabPos=0, TopOfStack=1, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, VisibleTab=0, UniformSampleSpacing=0
|
OpenWindow="Data Sampling", DockArea=BOTTOM, x=1, y=0, w=587, h=536, TabPos=0, TopOfStack=1, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, VisibleTab=0, UniformSampleSpacing=0
|
||||||
OpenWindow="Timeline", DockArea=BOTTOM, x=0, y=0, w=1283, h=555, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=1, DataPaneShown=1, PowerPaneShown=0, CodePaneShown=0, PinCursor="Cursor Movable", TimePerDiv="2 s / Div", TimeStampFormat="Time", DataGraphDrawAsPoints=0, DataGraphLegendShown=1, DataGraphUniformSampleSpacing=0, DataGraphLegendPosition="889;0", DataGraphShowNamesAtCursor=0, PowerGraphDrawAsPoints=0, PowerGraphLegendShown=0, PowerGraphAvgFilterTime=Off, PowerGraphAvgFilterLen=Off, PowerGraphUniformSampleSpacing=0, PowerGraphLegendPosition="1059;-69", CodeGraphLegendShown=0, CodeGraphLegendPosition="1075;0"
|
OpenWindow="Timeline", DockArea=BOTTOM, x=0, y=0, w=1972, h=555, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=1, DataPaneShown=1, PowerPaneShown=0, CodePaneShown=0, PinCursor="Cursor Movable", TimePerDiv="2 s / Div", TimeStampFormat="Time", DataGraphDrawAsPoints=0, DataGraphLegendShown=1, DataGraphUniformSampleSpacing=0, DataGraphLegendPosition="0;165", DataGraphShowNamesAtCursor=0, PowerGraphDrawAsPoints=0, PowerGraphLegendShown=0, PowerGraphAvgFilterTime=Off, PowerGraphAvgFilterLen=Off, PowerGraphUniformSampleSpacing=0, PowerGraphLegendPosition="1059;-69", CodeGraphLegendShown=0, CodeGraphLegendPosition="1074;0"
|
||||||
OpenWindow="Console", DockArea=BOTTOM, x=1, y=0, w=1276, h=536, TabPos=1, TopOfStack=0, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
|
OpenWindow="Console", DockArea=BOTTOM, x=1, y=0, w=587, h=536, TabPos=1, TopOfStack=0, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
|
||||||
|
OpenWindow="Watched Data 2", DockArea=RIGHT, x=0, y=1, w=726, h=521, TabPos=0, TopOfStack=0, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
|
||||||
SmartViewPlugin="", Page="", Toolbar="Hidden", Window="SmartView 1"
|
SmartViewPlugin="", Page="", Toolbar="Hidden", Window="SmartView 1"
|
||||||
|
TableHeader="Watched Data 2", SortCol="Expression", SortOrder="ASCENDING", VisibleCols=["Expression";"Value";"Location";"Refresh"], ColWidths=[100;100;100;426]
|
||||||
|
TableHeader="Watched Data 1", SortCol="Expression", SortOrder="ASCENDING", VisibleCols=["Expression";"Value";"Location";"Refresh"], ColWidths=[250;282;91;100]
|
||||||
TableHeader="Registers 1", SortCol="Name", SortOrder="ASCENDING", VisibleCols=["Name";"Value";"Description"], ColWidths=[120;144;462]
|
TableHeader="Registers 1", SortCol="Name", SortOrder="ASCENDING", VisibleCols=["Name";"Value";"Description"], ColWidths=[120;144;462]
|
||||||
TableHeader="Functions", SortCol="Name", SortOrder="ASCENDING", VisibleCols=["Name";"Address";"Size";"#Insts";"Source"], ColWidths=[1594;104;100;100;100]
|
TableHeader="Functions", SortCol="Name", SortOrder="ASCENDING", VisibleCols=["Name";"Address";"Size";"#Insts";"Source"], ColWidths=[1594;104;100;100;100]
|
||||||
TableHeader="Power Sampling", SortCol="None", SortOrder="ASCENDING", VisibleCols=["Index";"Time";"Ch 0"], ColWidths=[100;100;100]
|
TableHeader="Power Sampling", SortCol="None", SortOrder="ASCENDING", VisibleCols=["Index";"Time";"Ch 0"], ColWidths=[100;100;100]
|
||||||
TableHeader="RegisterSelectionDialog", SortCol="None", SortOrder="ASCENDING", VisibleCols=[], ColWidths=[]
|
TableHeader="RegisterSelectionDialog", SortCol="None", SortOrder="ASCENDING", VisibleCols=[], ColWidths=[]
|
||||||
TableHeader="Source Files", SortCol="File", SortOrder="ASCENDING", VisibleCols=["File";"Status";"Size";"#Insts";"Path"], ColWidths=[215;100;100;100;1014]
|
TableHeader="Source Files", SortCol="File", SortOrder="ASCENDING", VisibleCols=["File";"Status";"Size";"#Insts";"Path"], ColWidths=[215;100;100;100;1014]
|
||||||
TableHeader="Watched Data 1", SortCol="Expression", SortOrder="ASCENDING", VisibleCols=["Expression";"Value";"Location";"Refresh"], ColWidths=[250;282;91;103]
|
TableHeader="Data Sampling Table", SortCol="None", SortOrder="ASCENDING", VisibleCols=["Index";"Time";" (((shoot).feedback).fric[0]).rotor_speed";" (((shoot).feedback).fric[1]).rotor_speed";" (((shoot).feedback).fric[3]).rotor_speed";" (((shoot).feedback).fric[2]).rotor_speed";" (((shoot).feedback).fric[4]).rotor_speed";" (((shoot).feedback).fric[5]).rotor_speed";" ((((shoot).feedback).trig).feedback).rotor_speed";" ((((shoot).feedback).trig).feedback).rotor_abs_angle"], ColWidths=[100;100;100;100;100;100;100;100;100;100]
|
||||||
TableHeader="Data Sampling Table", SortCol="None", SortOrder="ASCENDING", VisibleCols=["Index";"Time"], ColWidths=[100;100]
|
TableHeader="Data Sampling Setup", SortCol="Expression", SortOrder="ASCENDING", VisibleCols=["Expression";"Type";"Value";"Min";"Max";"Average";"# Changes";"Min. Change";"Max. Change"], ColWidths=[118;100;134;104;114;114;110;126;126]
|
||||||
TableHeader="Data Sampling Setup", SortCol="Expression", SortOrder="ASCENDING", VisibleCols=["Expression";"Type";"Value";"Min";"Max";"Average";"# Changes";"Min. Change";"Max. Change"], ColWidths=[118;100;100;100;100;100;110;126;422]
|
|
||||||
TableHeader="TargetExceptionDialog", SortCol="Name", SortOrder="ASCENDING", VisibleCols=["Name";"Value";"Address";"Description"], ColWidths=[200;100;100;366]
|
TableHeader="TargetExceptionDialog", SortCol="Name", SortOrder="ASCENDING", VisibleCols=["Name";"Value";"Address";"Description"], ColWidths=[200;100;100;366]
|
||||||
WatchedExpression="0x20008DD8", Window=Watched Data 1
|
WatchedExpression="0x20008DD8", Window=Watched Data 1
|
||||||
WatchedExpression="cmd", RefreshRate=5, Window=Watched Data 1
|
WatchedExpression="cmd", RefreshRate=5, Window=Watched Data 1
|
||||||
WatchedExpression="robot_config", RefreshRate=5, Window=Watched Data 1
|
WatchedExpression="robot_config", RefreshRate=5, Window=Watched Data 1
|
||||||
WatchedExpression="shoot", RefreshRate=5, Window=Watched Data 1
|
WatchedExpression="shoot", RefreshRate=5, Window=Watched Data 1
|
||||||
WatchedExpression="at9s", Window=Watched Data 1
|
WatchedExpression="at9s", RefreshRate=5, Window=Watched Data 1
|
||||||
|
WatchedExpression="dr16", RefreshRate=5, Window=Watched Data 1
|
||||||
|
WatchedExpression="shoot_cmd", RefreshRate=5, Window=Watched Data 1
|
||||||
|
WatchedExpression="chassis", RefreshRate=5, Window=Watched Data 1
|
||||||
|
WatchedExpression="chassis_cmd", RefreshRate=5, Window=Watched Data 1
|
||||||
|
WatchedExpression="gimbal_cmd", RefreshRate=5, Window=Watched Data 1
|
||||||
|
WatchedExpression="gimbal", RefreshRate=5, Window=Watched Data 1
|
||||||
|
WatchedExpression="at9s_out", RefreshRate=5, Window=Watched Data 1
|
||||||
Loading…
Reference in New Issue
Block a user