第一集:《猴王出世》

This commit is contained in:
yxming66 2025-09-30 03:40:48 +08:00
parent 120b90290f
commit 5bce20b00d
25 changed files with 8899 additions and 8459 deletions

3
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"C_Cpp.errorSquiggles": "disabled"
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1098,6 +1098,30 @@
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>66</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\module\config.c</PathWithFileName>
<FilenameWithoutPath>config.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>67</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\module\config.h</PathWithFileName>
<FilenameWithoutPath>config.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
@ -1108,7 +1132,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>66</FileNumber>
<FileNumber>68</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1120,7 +1144,7 @@
</File>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>67</FileNumber>
<FileNumber>69</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1132,7 +1156,7 @@
</File>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>68</FileNumber>
<FileNumber>70</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1144,7 +1168,7 @@
</File>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>69</FileNumber>
<FileNumber>71</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1156,7 +1180,7 @@
</File>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>70</FileNumber>
<FileNumber>72</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>

View File

@ -1378,6 +1378,16 @@
<FileType>5</FileType>
<FilePath>..\User\module\shoot_control.h</FilePath>
</File>
<File>
<FileName>config.c</FileName>
<FileType>1</FileType>
<FilePath>..\User\module\config.c</FilePath>
</File>
<File>
<FileName>config.h</FileName>
<FileType>5</FileType>
<FilePath>..\User\module\config.h</FilePath>
</File>
</Files>
</Group>
<Group>

Binary file not shown.

50
MDK-ARM/shoot/config.d Normal file
View File

@ -0,0 +1,50 @@
shoot/config.o: ..\User\module\config.c ..\User\module\config.h \
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdint.h \
..\User\component\pid.h ..\User\component\filter.h \
..\User\component\user_math.h \
D:\cangming\ARM\ARMCLANG\Bin\..\include\float.h \
D:\cangming\ARM\ARMCLANG\Bin\..\include\math.h \
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdbool.h \
D:\cangming\ARM\ARMCLANG\Bin\..\include\stddef.h \
..\User\device\motor.h ..\User\device\device.h \
..\User\device\motor_rm.h ..\User\bsp\can.h ..\Core\Inc\can.h \
..\Core\Inc\main.h ..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h \
..\Core\Inc\stm32f4xx_hal_conf.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_def.h \
..\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h \
..\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f407xx.h \
..\Drivers\CMSIS\Include\core_cm4.h \
..\Drivers\CMSIS\Include\cmsis_version.h \
..\Drivers\CMSIS\Include\cmsis_compiler.h \
..\Drivers\CMSIS\Include\cmsis_armclang.h \
..\Drivers\CMSIS\Include\mpu_armv7.h \
..\Drivers\CMSIS\Device\ST\STM32F4xx\Include\system_stm32f4xx.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc_ex.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio_ex.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_exti.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma_ex.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_cortex.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_can.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ex.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ramfunc.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr_ex.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.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\include\FreeRTOS.h \
..\Core\Inc\FreeRTOSConfig.h \
..\Middlewares\Third_Party\FreeRTOS\Source\include\projdefs.h \
..\Middlewares\Third_Party\FreeRTOS\Source\include\portable.h \
..\Middlewares\Third_Party\FreeRTOS\Source\include\deprecated_definitions.h \
..\Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F\portmacro.h \
..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h \
..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h \
..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h \
..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h \
..\User\module\shoot_control.h ..\Core\Inc\main.h

BIN
MDK-ARM/shoot/config.o Normal file

Binary file not shown.

Binary file not shown.

View File

@ -22,7 +22,7 @@ Dialog DLL: TCM.DLL V1.48.0.0
<h2>Project:</h2>
D:\CUBEMX\shoot\MDK-ARM\shoot.uvprojx
Project File Date: 09/25/2025
Project File Date: 09/30/2025
<h2>Output:</h2>
*** Using Compiler 'V6.16', folder: 'D:\cangming\ARM\ARMCLANG\Bin'
@ -52,7 +52,7 @@ Package Vendor: Keil
* Component: ARM::CMSIS:CORE:5.4.0
Include file: CMSIS\Core\Include\tz_context.h
Build Time Elapsed: 00:00:01
Build Time Elapsed: 00:00:00
</pre>
</body>
</html>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -48,6 +48,7 @@
"shoot\filter.o"
"shoot\pid.o"
"shoot\shoot_control.o"
"shoot\config.o"
"shoot\init.o"
"shoot\rc.o"
"shoot\shoot_ctrl.o"

File diff suppressed because it is too large Load Diff

View File

@ -29,17 +29,14 @@ shoot/shoot_control.o: ..\User\module\shoot_control.c \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr_ex.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h \
..\User\component\at9s_pro_cmd.h \
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdbool.h \
..\User\device\at9s_pro.h \
..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h \
..\User\component\pid.h ..\User\component\filter.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 \
..\Core\Inc\can.h ..\Core\Inc\main.h ..\User\component\pid.h \
..\User\component\filter.h ..\User\device\motor_rm.h \
..\User\device\motor.h ..\User\bsp\can.h ..\User\bsp\bsp.h \
..\User\bsp\mm.h \
D:\cangming\ARM\ARMCLANG\Bin\..\include\math.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\include\FreeRTOS.h \
..\Core\Inc\FreeRTOSConfig.h \
@ -51,5 +48,4 @@ shoot/shoot_control.o: ..\User\module\shoot_control.c \
..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h \
..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h \
..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h \
..\User\bsp\dwt.h ..\User\device\vofa.h ..\User\bsp\uart.h \
..\Core\Inc\usart.h
..\User\bsp\dwt.h

Binary file not shown.

View File

@ -11,10 +11,12 @@ shoot/shoot_ctrl.o: ..\User\task\shoot_ctrl.c ..\User\task\user_task.h \
..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h \
..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h \
..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h \
..\User\device\motor_rm.h ..\User\device\motor.h \
..\User\device\device.h \
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdbool.h ..\User\bsp\can.h \
..\Core\Inc\can.h ..\Core\Inc\main.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_control.h ..\Core\Inc\main.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h \
..\Core\Inc\stm32f4xx_hal_conf.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc.h \
@ -42,11 +44,10 @@ shoot/shoot_ctrl.o: ..\User\task\shoot_ctrl.c ..\User\task\user_task.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr_ex.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h \
..\User\bsp\bsp.h ..\User\bsp\mm.h \
..\User\component\pid.h ..\User\component\filter.h \
..\User\device\motor_rm.h ..\User\device\motor.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_os2.h \
..\User\component\at9s_pro_cmd.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\module\shoot_control.h ..\Core\Inc\main.h ..\User\bsp\dwt.h
..\User\module\config.h

Binary file not shown.

View File

@ -1277,7 +1277,7 @@ I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
I (D:\cangming\ARM\ARMCLANG\include\string.h)(0x6035A4A8)
F (..\User\component\user_math.h)(0x68D3FFDB)()
F (..\User\component\at9s_pro_cmd.c)(0x68D4BAA3)(-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 -O1 -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 ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -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 ../User -I./RTE/_shoot -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 shoot/at9s_pro_cmd.o -MD)
F (..\User\component\at9s_pro_cmd.c)(0x68DAC603)(-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 -O1 -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 ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -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 ../User -I./RTE/_shoot -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 shoot/at9s_pro_cmd.o -MD)
I (..\User\component\at9s_pro_cmd.h)(0x68D4B9F6)
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
@ -1309,8 +1309,8 @@ I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
F (..\User\component\pid.h)(0x68D3FFDB)()
F (..\User\module\shoot_control.c)(0x68D942C6)(-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 -O1 -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 ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -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 ../User -I./RTE/_shoot -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 shoot/shoot_control.o -MD)
I (..\User\module\shoot_control.h)(0x68D4B42D)
F (..\User\module\shoot_control.c)(0x68DAD521)(-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 -O1 -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 ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -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 ../User -I./RTE/_shoot -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 shoot/shoot_control.o -MD)
I (..\User\module\shoot_control.h)(0x68DAD1CF)
I (..\Core\Inc\main.h)(0x68D1384A)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h)(0x68AD823F)
I (..\Core\Inc\stm32f4xx_hal_conf.h)(0x68D1384A)
@ -1341,20 +1341,17 @@ I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ramfunc.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_uart.h)(0x68AD823F)
I (..\User\component\at9s_pro_cmd.h)(0x68D4B9F6)
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
I (..\User\device\at9s_pro.h)(0x68CE6AC0)
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
I (..\User\component\pid.h)(0x68D3FFDB)
I (..\User\component\filter.h)(0x68D3FFDB)
I (..\User\component\user_math.h)(0x68D3FFDB)
I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
I (..\User\device\device.h)(0x68D400B4)
I (..\Core\Inc\can.h)(0x68D13849)
I (..\User\component\pid.h)(0x68D3FFDB)
I (..\User\component\filter.h)(0x68D3FFDB)
I (..\User\device\motor_rm.h)(0x68D3FFBB)
I (..\User\device\motor.h)(0x68D3FFBB)
I (..\User\device\device.h)(0x68D400B4)
I (..\User\bsp\can.h)(0x68D3FFDB)
I (..\Core\Inc\can.h)(0x68D13849)
I (..\User\bsp\bsp.h)(0x68D3FFDB)
I (..\User\bsp\mm.h)(0x68D3FFDB)
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os.h)(0x68AD8208)
@ -1367,11 +1364,67 @@ 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\task.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 (..\User\bsp\dwt.h)(0x68D3FFDB)
I (..\User\device\vofa.h)(0x68D3FFBB)
I (..\User\bsp\uart.h)(0x68D3FFDB)
I (..\Core\Inc\usart.h)(0x68D13849)
F (..\User\module\shoot_control.h)(0x68D4B42D)()
F (..\User\module\shoot_control.h)(0x68DAD1CF)()
F (..\User\module\config.c)(0x68DADA5D)(-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 -O1 -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 ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -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 ../User -I./RTE/_shoot -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 shoot/config.o -MD)
I (..\User\module\config.h)(0x68DABE70)
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
I (..\User\component\pid.h)(0x68D3FFDB)
I (..\User\component\filter.h)(0x68D3FFDB)
I (..\User\component\user_math.h)(0x68D3FFDB)
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 (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
I (..\User\device\motor.h)(0x68D3FFBB)
I (..\User\device\device.h)(0x68D400B4)
I (..\User\device\motor_rm.h)(0x68D3FFBB)
I (..\User\bsp\can.h)(0x68D3FFDB)
I (..\Core\Inc\can.h)(0x68D13849)
I (..\Core\Inc\main.h)(0x68D1384A)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h)(0x68AD823F)
I (..\Core\Inc\stm32f4xx_hal_conf.h)(0x68D1384A)
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_pwr.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr_ex.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h)(0x68AD823F)
I (..\User\bsp\bsp.h)(0x68D3FFDB)
I (..\User\bsp\mm.h)(0x68D3FFDB)
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os.h)(0x68AD8208)
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\FreeRTOS.h)(0x68AD8208)
I (..\Core\Inc\FreeRTOSConfig.h)(0x68D13FA3)
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\projdefs.h)(0x68AD8208)
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\portable.h)(0x68AD8208)
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\deprecated_definitions.h)(0x68AD8208)
I (..\Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F\portmacro.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\list.h)(0x68AD8208)
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
I (..\User\module\shoot_control.h)(0x68DAD1CF)
F (..\User\module\config.h)(0x68DABE70)()
F (..\User\task\init.c)(0x68D4AE2D)(-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 -O1 -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 ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -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 ../User -I./RTE/_shoot -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 shoot/init.o -MD)
I (..\User\task\user_task.h)(0x68D3E4B9)
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
@ -1414,7 +1467,7 @@ I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
I (..\User\device\device.h)(0x68D400B4)
I (..\User\component\at9s_pro_cmd.h)(0x68D4B9F6)
F (..\User\task\shoot_ctrl.c)(0x68D79CA7)(-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 -O1 -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 ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -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 ../User -I./RTE/_shoot -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 shoot/shoot_ctrl.o -MD)
F (..\User\task\shoot_ctrl.c)(0x68DAC248)(-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 -O1 -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 ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -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 ../User -I./RTE/_shoot -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 shoot/shoot_ctrl.o -MD)
I (..\User\task\user_task.h)(0x68D3E4B9)
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
@ -1428,12 +1481,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\task.h)(0x68AD8208)
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68AD8208)
I (..\User\device\motor_rm.h)(0x68D3FFBB)
I (..\User\device\motor.h)(0x68D3FFBB)
I (..\User\device\device.h)(0x68D400B4)
I (..\User\component\at9s_pro_cmd.h)(0x68D4B9F6)
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
I (..\User\bsp\can.h)(0x68D3FFDB)
I (..\Core\Inc\can.h)(0x68D13849)
I (..\User\device\at9s_pro.h)(0x68CE6AC0)
I (..\User\component\user_math.h)(0x68D3FFDB)
I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
I (..\User\device\device.h)(0x68D400B4)
I (..\User\module\shoot_control.h)(0x68DAD1CF)
I (..\Core\Inc\main.h)(0x68D1384A)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h)(0x68AD823F)
I (..\Core\Inc\stm32f4xx_hal_conf.h)(0x68D1384A)
@ -1462,16 +1517,16 @@ I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ramfunc.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_uart.h)(0x68AD823F)
I (..\User\component\pid.h)(0x68D3FFDB)
I (..\User\component\filter.h)(0x68D3FFDB)
I (..\User\device\motor_rm.h)(0x68D3FFBB)
I (..\User\device\motor.h)(0x68D3FFBB)
I (..\User\bsp\can.h)(0x68D3FFDB)
I (..\Core\Inc\can.h)(0x68D13849)
I (..\User\bsp\bsp.h)(0x68D3FFDB)
I (..\User\bsp\mm.h)(0x68D3FFDB)
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os.h)(0x68AD8208)
I (..\User\component\at9s_pro_cmd.h)(0x68D4B9F6)
I (..\User\device\at9s_pro.h)(0x68CE6AC0)
I (..\User\component\user_math.h)(0x68D3FFDB)
I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
I (..\User\module\shoot_control.h)(0x68D4B42D)
I (..\User\bsp\dwt.h)(0x68D3FFDB)
I (..\User\module\config.h)(0x68DABE70)
F (..\User\task\user_task.c)(0x68D1407D)(-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 -O1 -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 ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -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 ../User -I./RTE/_shoot -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 shoot/user_task.o -MD)
I (..\User\task\user_task.h)(0x68D3E4B9)
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)

View File

@ -56,10 +56,10 @@ int8_t COMP_AT9S_CMD_ParseRc(const DEVICE_AT9S_t *rc, COMP_AT9S_CMD_t *at9s_cmd)
if(rc->data.key_C == AT9S_CMD_SW_DOWN)at9s_cmd->ai = true;
else at9s_cmd->ai = false;
if(rc->data.key_G == AT9S_CMD_SW_DOWN) at9s_cmd->shoot.ready = false;
else if(rc->data.key_G == AT9S_CMD_SW_MID||rc->data.key_G == AT9S_CMD_SW_UP) at9s_cmd->shoot.ready = true;
if(rc->data.key_C == AT9S_CMD_SW_DOWN) at9s_cmd->shoot.ready = false;
else if(rc->data.key_C == AT9S_CMD_SW_MID||rc->data.key_C == AT9S_CMD_SW_UP) at9s_cmd->shoot.ready = true;
if(rc->data.key_G == AT9S_CMD_SW_UP)at9s_cmd->shoot.firecmd = true;
if(rc->data.key_C == AT9S_CMD_SW_UP)at9s_cmd->shoot.firecmd = true;
else at9s_cmd->shoot.firecmd = false;
at9s_cmd->online = rc->online;

94
User/module/config.c Normal file
View File

@ -0,0 +1,94 @@
/*
*
*/
/* Includes ----------------------------------------------------------------- */
#include "module/config.h"
#include "bsp/can.h"
/* Private typedef ---------------------------------------------------------- */
/* Private define ----------------------------------------------------------- */
/* Private macro ------------------------------------------------------------ */
/* Private variables -------------------------------------------------------- */
/* Exported variables ------------------------------------------------------- */
// 机器人参数配置
Config_RobotParam_t robot_config = {
.shoot_param = {
.trig_step_angle=M_2PI/8,
.fric_motor_param[0] = {
.can = BSP_CAN_2,
.id = 0x201,
.module = MOTOR_M3508,
.reverse = false,
.gear=false,
},
.fric_motor_param[1] = {
.can = BSP_CAN_2,
.id = 0x202,
.module = MOTOR_M3508,
.reverse = true,
.gear=false,
},
.trig_motor_param = {
.can = BSP_CAN_2,
.id = 0x203,
.module = MOTOR_M2006,
.reverse = false,
.gear=true,
},
.fric_follow = {
.k=1.0f,
.p=1.8f,
.i=0.0f,
.d=0.0f,
.i_limit=0.0f,
.out_limit=0.9f,
.d_cutoff_freq=30.0f,
.range=-1.0f,
},
.fric_err = {
.k=1.0f,
.p=4.0f,
.i=0.4f,
.d=0.04f,
.i_limit=0.25f,
.out_limit=0.25f,
.d_cutoff_freq=40.0f,
.range=-1.0f,
},
.trig = {
.k=1.0f,
.p=1.2f,
.i=0.0f,
.d=0.05f,
.i_limit=0.2f,
.out_limit=0.9f,
.d_cutoff_freq=30.0f,
.range=-1.0f,
},
.filter.fric = {
.in = 30.0f,
.out = 30.0f,
},
.filter.trig = {
.in = 30.0f,
.out = 30.0f,
},
}
};
/* Private function prototypes ---------------------------------------------- */
/* Exported functions ------------------------------------------------------- */
/**
* @brief
* @return
*/
Config_RobotParam_t* Config_GetRobotParam(void) {
return &robot_config;
}

31
User/module/config.h Normal file
View File

@ -0,0 +1,31 @@
/*
*
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#include "component/pid.h"
#include "device/motor.h"
#include "device/motor_rm.h"
#include "module/shoot_control.h"
typedef struct {
Shoot_Params_t shoot_param;
} Config_RobotParam_t;
/* Exported functions prototypes -------------------------------------------- */
/**
* @brief
* @return
*/
Config_RobotParam_t* Config_GetRobotParam(void);
#ifdef __cplusplus
}
#endif

View File

@ -2,42 +2,13 @@
#include "shoot_control.h"
#include "can.h"
#include "component/pid.h"
#include "component/filter.h"
#include "component/at9s_pro_cmd.h"
#include "device/motor_rm.h"
#include <math.h>
#include "bsp/dwt.h"
#include "device/vofa.h"
#define MAX_RPM_3508 7000.0f
uint32_t shoot_ctrl_cnt_last;
float shoot_ctrl_dt;
bool last_firecmd=false;
//要一个函数实现任意几个电机达到同样目标转速
KPID_t pid_shoot_3508_rpm[2];
KPID_Params_t pid_shoot_3508_rpm_params ={1.0f, 1.8f, 0.0f, 0.0f, 0.0f, 0.9f ,0.0f,-1.0};
KPID_t pid_shoot_3508_errrpm[2];
KPID_Params_t pid_shoot_3508_errrpm_params ={1.0f, 4.0f, 0.40f, 0.04f, 0.25f, 0.25f ,40.0f,-1.0};
KPID_t pid_shoot_3508_stop[2];
KPID_Params_t pid_shoot_3508_stop_params ={1, 1.2f, 0.5f, 0.01f, 0.0f, 0.0f ,0.0f,-1.0};
static LowPassFilter2p_t spd_lpf[2];
static LowPassFilter2p_t out_lpf[2];
typedef enum {
SHOOT_STATE_IDLE = 0, // 熄火
SHOOT_STATE_READY, // 准备射击
SHOOT_STATE_FIRE // 射击
} ShootState_t;
ShootState_t shoot_state = SHOOT_STATE_IDLE;
//状态机 熄火-准备射击-射击
MOTOR_RM_Param_t shoot_motor_param[2];
MOTOR_RM_t* shoot_motor_feedback[2];
static inline void ScaleSumTo1(float *a, float *b) {
float sum = *a + *b;
@ -48,139 +19,145 @@ static inline void ScaleSumTo1(float *a, float *b) {
}
}
void shoot_motor_Init(float freq)
int8_t Shoot_Init(shoot_t *c, Shoot_Params_t *param, float target_freq)
{
// VOFA_init(VOFA_PROTOCOL_JUSTFLOAT);
if (c == NULL || param == NULL || target_freq <= 0.0f) {
return -1; // 参数错误
}
c->param=param;
DWT_Init(168);
BSP_CAN_Init();
shoot_motor_param[0].can=BSP_CAN_2;
shoot_motor_param[0].id=0x201;
shoot_motor_param[0].module=MOTOR_M3508;
shoot_motor_param[0].reverse=false;
shoot_motor_param[0].gear=false;
MOTOR_RM_Register(&shoot_motor_param[0]);
shoot_motor_param[1].can=BSP_CAN_2;
shoot_motor_param[1].id=0x202;
shoot_motor_param[1].module=MOTOR_M3508;
shoot_motor_param[1].reverse=true;
shoot_motor_param[1].gear=false;
MOTOR_RM_Register(&shoot_motor_param[1]);
for(int i=0;i<2;i++)
{
PID_Init(&pid_shoot_3508_rpm[i], KPID_MODE_CALC_D, freq,&pid_shoot_3508_rpm_params);
PID_Init(&pid_shoot_3508_errrpm[i], KPID_MODE_CALC_D, freq,&pid_shoot_3508_errrpm_params);
PID_Init(&pid_shoot_3508_stop[i], KPID_MODE_CALC_D, freq,&pid_shoot_3508_stop_params);
LowPassFilter2p_Init(&spd_lpf[i], 1000.0f, 30.0f);
LowPassFilter2p_Init(&out_lpf[i], 1000.0f, 30.0f);
for(int i=0;i<SHOOT_FRIC_NUM;i++){
MOTOR_RM_Register(&param->fric_motor_param[i]);
PID_Init(&c->pid.fric_follow[i], KPID_MODE_CALC_D, target_freq,&param->fric_follow);
LowPassFilter2p_Init(&c->filter.fric.in[i], target_freq, c->param->filter.fric.in);
LowPassFilter2p_Init(&c->filter.fric.out[i], target_freq, c->param->filter.fric.out);
}
MOTOR_RM_Register(&param->trig_motor_param);
PID_Init(&c->pid.trig, KPID_MODE_CALC_D, target_freq,&param->trig);
LowPassFilter2p_Init(&c->filter.trig.in, target_freq, c->param->filter.trig.in);
LowPassFilter2p_Init(&c->filter.trig.out, target_freq, c->param->filter.trig.out);
return 0;
}
}
float target_rpm=1000.0f;
float shoot_out[2]={0,0};
float shoot_errout[2];
float shoot_errlpfout[2];
float filtered_rpm[2];
float errtosee;
void shoot_control(COMP_AT9S_CMD_t *rc)
int8_t Chassis_UpdateFeedback(shoot_t *c)
{
MOTOR_RM_UpdateAll();
errtosee = shoot_motor_feedback[0]->feedback.rotor_speed - shoot_motor_feedback[1]->feedback.rotor_speed;
if(rc->online)
{
float rel_rpm[2];
for(int i=0;i<2;i++)
{
filtered_rpm[i] = LowPassFilter2p_Apply(&spd_lpf[i], shoot_motor_feedback[i]->feedback.rotor_speed);
rel_rpm[i]=filtered_rpm[i]/MAX_RPM_3508;
if(rel_rpm[i]>1.0f)rel_rpm[i]=1.0f;
if(rel_rpm[i]<-1.0f)rel_rpm[i]=-1.0f;
}
float err_out[2];
double rpm_avg;
switch(shoot_state)
{
case SHOOT_STATE_IDLE:
//位置闭写成环
for(int i=0;i<2;i++)
{
PID_ResetIntegral(&pid_shoot_3508_errrpm[i]);
MOTOR_RM_Relax(&shoot_motor_param[i]);
if (c == NULL) {
return -1; // 参数错误
}
if(rc->shoot.ready)
float rpm_sum=0.0f;
for(int i = 0; i < SHOOT_FRIC_NUM; i++) {
MOTOR_RM_Update(&c->param->fric_motor_param[i]);
MOTOR_RM_t *motor_fed = MOTOR_RM_GetMotor(&c->param->fric_motor_param[i]);
if(motor_fed!=NULL)
{
shoot_state=SHOOT_STATE_READY;
c->feedback.fric[i]=motor_fed->motor.feedback;
}
c->feedback.fil_fric_rpm[i] = LowPassFilter2p_Apply(&c->filter.fric.in[i], c->feedback.fric[i].rotor_speed);
c->feedback.fric_rpm[i] = c->feedback.fil_fric_rpm[i] / MAX_FRIC_RPM;
if(c->feedback.fric_rpm[i]>1.0f)c->feedback.fric_rpm[i]=1.0f;
if(c->feedback.fric_rpm[i]<-1.0f)c->feedback.fric_rpm[i]=-1.0f;
rpm_sum+=c->feedback.fric_rpm[i];
}
c->feedback.fric_avgrpm=rpm_sum/SHOOT_FRIC_NUM;
MOTOR_RM_Update(&c->param->trig_motor_param);
c->feedback.trig = MOTOR_RM_GetMotor(&c->param->trig_motor_param);
//
c->feedback.fil_trig_rpm = LowPassFilter2p_Apply(&c->filter.trig.in, c->feedback.trig->feedback.rotor_speed);
c->feedback.trig_rpm = c->feedback.trig->feedback.rotor_speed / MAX_TRIG_RPM;
if(c->feedback.trig_rpm>1.0f)c->feedback.trig_rpm=1.0f; //如果单环效果好就删
if(c->feedback.trig_rpm<-1.0f)c->feedback.trig_rpm=-1.0f;
//
c->errtosee = c->feedback.fric[0].rotor_speed - c->feedback.fric[1].rotor_speed;
return 0;
}
int8_t Shoot_Control(shoot_t *c, const Shoot_CMD_t *cmd)
{
if (c == NULL || cmd == NULL) {
return -1; // 参数错误
}
c->dt = DWT_GetDeltaT(&c->lask_wakeup);
// c->running_state = cmd->state;
c->online = cmd->online;
if(!c->online /*|| c->mode==SHOOT_MODE_SAFE*/){
for(int i=0;i<SHOOT_FRIC_NUM;i++)
{
MOTOR_RM_Relax(&c->param->fric_motor_param[i]);
}
MOTOR_RM_Relax(&c->param->trig_motor_param);
}
else{
switch(c->running_state)
{
case SHOOT_STATE_IDLE:/*熄火等待*/
for(int i=0;i<SHOOT_FRIC_NUM;i++)
{
PID_ResetIntegral(&c->pid.fric_follow[i]);
c->output.out_follow[i]=PID_Calc(&c->pid.fric_follow[i],0.0f,c->feedback.fric_rpm[i],0,c->dt);
c->output.out_fric[i]=c->output.out_follow[i];
c->output.lpfout_fric[i] = LowPassFilter2p_Apply(&c->filter.fric.out[i], c->output.out_fric[i]);
MOTOR_RM_SetOutput(&c->param->fric_motor_param[i], c->output.lpfout_fric[i]);
}
c->output.out_trig=PID_Calc(&c->pid.trig,c->target_variable.target_angle,c->feedback.trig->gearbox_total_angle,0,c->dt);
MOTOR_RM_SetOutput(&c->param->trig_motor_param, c->output.out_trig);
if(cmd->ready)
{
c->running_state=SHOOT_STATE_READY;
}
break;
case SHOOT_STATE_READY:
for(int i=0;i<2;i++)
{
shoot_motor_feedback[i] = MOTOR_RM_GetMotor(&shoot_motor_param[i]);
shoot_ctrl_dt=DWT_GetDeltaT(&shoot_ctrl_cnt_last);
shoot_out[i]=PID_Calc(&pid_shoot_3508_rpm[i],target_rpm/MAX_RPM_3508,rel_rpm[i],0,shoot_ctrl_dt);
for(int i=0;i<2;i++){
rpm_avg=(rel_rpm[0]+rel_rpm[1])/2.0f;
case SHOOT_STATE_READY:/*准备射击*/
for(int i=0;i<SHOOT_FRIC_NUM;i++)
{ /* 计算跟随输出->计算修正输出->加和、滤波、输出 */
c->output.out_follow[i]=PID_Calc(&c->pid.fric_follow[i],c->target_variable.target_rpm/MAX_FRIC_RPM,c->feedback.fric_rpm[i],0,c->dt);
c->output.out_err[i]=PID_Calc(&c->pid.fric_err[i],c->feedback.fric_avgrpm,c->feedback.fric_rpm[i],0,c->dt);
ScaleSumTo1(&c->output.out_follow[i], &c->output.out_err[i]);
c->output.out_fric[i]=c->output.out_follow[i]+c->output.out_err[i];
c->output.lpfout_fric[i] = LowPassFilter2p_Apply(&c->filter.fric.out[i], c->output.out_fric[i]);
MOTOR_RM_SetOutput(&c->param->fric_motor_param[i], c->output.lpfout_fric[i]);
}
shoot_errout[i]=PID_Calc(&pid_shoot_3508_errrpm[i],rpm_avg,rel_rpm[i],0,shoot_ctrl_dt);
/*若输出和大于1按比例缩放写成math里的函数*/
shoot_errlpfout[i] = LowPassFilter2p_Apply(&out_lpf[i], shoot_errout[i]);
ScaleSumTo1(&shoot_out[i], &shoot_errlpfout[i]);
err_out[i] = shoot_out[i] + shoot_errout[i];
// err_out[i] = LowPassFilter2p_Apply(&out_lpf[i], err_out[i]);
MOTOR_RM_SetOutput(&shoot_motor_param[i], err_out[i]);
}
if(!rc->shoot.ready)
c->output.out_trig=PID_Calc(&c->pid.trig,c->target_variable.target_angle,c->feedback.trig->gearbox_total_angle,0,c->dt);
MOTOR_RM_SetOutput(&c->param->trig_motor_param, c->output.out_trig);
if(!cmd->ready)
{
shoot_state=SHOOT_STATE_IDLE;
c->running_state=SHOOT_STATE_IDLE;
}
else if(last_firecmd==false&&rc->shoot.firecmd==true)//可以加一个到达目标速度的判断
else if(cmd->last_firecmd==false&&cmd->firecmd==true)//可以加一个到达目标速度的判断
{
shoot_state=SHOOT_STATE_FIRE;
c->running_state=SHOOT_STATE_FIRE;
c->target_variable.target_angle+=c->param->trig_step_angle;
}
break;
case SHOOT_STATE_FIRE:
for(int i=0;i<2;i++)
// c->target_variable.target_angle+=c->param->trig_step_angle;
for(int i=0;i<SHOOT_FRIC_NUM;i++)
{
shoot_motor_feedback[i] = MOTOR_RM_GetMotor(&shoot_motor_param[i]);
shoot_ctrl_dt=DWT_GetDeltaT(&shoot_ctrl_cnt_last);
shoot_out[i]=PID_Calc(&pid_shoot_3508_rpm[i],target_rpm/MAX_RPM_3508,rel_rpm[i],0,shoot_ctrl_dt);
for(int i=0;i<2;i++){
rpm_avg=(rel_rpm[0]+rel_rpm[1])/2.0f;
c->output.out_follow[i]=PID_Calc(&c->pid.fric_follow[i],c->target_variable.target_rpm/MAX_FRIC_RPM,c->feedback.fric_rpm[i],0,c->dt);
c->output.out_err[i]=PID_Calc(&c->pid.fric_err[i],c->feedback.fric_avgrpm,c->feedback.fric_rpm[i],0,c->dt);
ScaleSumTo1(&c->output.out_follow[i], &c->output.out_err[i]);
c->output.out_fric[i]=c->output.out_follow[i]+c->output.out_err[i];
c->output.lpfout_fric[i] = LowPassFilter2p_Apply(&c->filter.fric.out[i], c->output.out_fric[i]);
MOTOR_RM_SetOutput(&c->param->fric_motor_param[i], c->output.lpfout_fric[i]);
}
shoot_errout[i]=PID_Calc(&pid_shoot_3508_errrpm[i],rpm_avg,rel_rpm[i],0,shoot_ctrl_dt);
/*若输出和大于1按比例缩放写成math里的函数*/
ScaleSumTo1(&shoot_out[i], &shoot_errout[i]);
err_out[i] = shoot_out[i];
MOTOR_RM_SetOutput(&shoot_motor_param[i], err_out[i]);
c->output.out_trig=PID_Calc(&c->pid.trig,c->target_variable.target_angle,c->feedback.trig->gearbox_total_angle,0,c->dt);
MOTOR_RM_SetOutput(&c->param->trig_motor_param, c->output.out_trig);
if(!cmd->firecmd)
{
c->running_state=SHOOT_STATE_READY;
}
shoot_state=SHOOT_STATE_READY;
break;
default:
shoot_state=SHOOT_STATE_IDLE;
c->running_state=SHOOT_STATE_IDLE;
break;
}
last_firecmd=rc->shoot.firecmd;
}else{
shoot_state=SHOOT_STATE_IDLE;
for(int i=0;i<2;i++)
{
PID_Reset(&pid_shoot_3508_rpm[i]);
PID_Reset(&pid_shoot_3508_stop[i]);
MOTOR_RM_Relax(&shoot_motor_param[0]);
}
}
MOTOR_RM_Ctrl(&shoot_motor_param[0]);
MOTOR_RM_Ctrl(&c->param->fric_motor_param[0]);
return 0;
}
@ -188,3 +165,5 @@ void shoot_control(COMP_AT9S_CMD_t *rc)

View File

@ -1,11 +1,187 @@
/*
* far蛇模组
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#ifndef SHOOT_CONTROL_H
#define SHOOT_CONTROL_H
#include "main.h"
#include "component/at9s_pro_cmd.h"
void shoot_motor_Init(float freq);
void shoot_control(COMP_AT9S_CMD_t *rc);
#include <stdbool.h>
#include "component/pid.h"
#include "device/motor_rm.h"
/* Exported constants ------------------------------------------------------- */
#define SHOOT_OK (0) /* 运行正常 */
#define SHOOT_ERR (-1) /* 运行时发现了其他错误 */
#define SHOOT_ERR_NULL (-2) /* 运行时发现NULL指针 */
#define SHOOT_ERR_MODE (-3) /* 运行时配置了错误的CMD_ChassisMode_t */
#define SHOOT_ERR_TYPE (-4) /* 运行时配置了错误的Chassis_Type_t */
#define SHOOT_FRIC_NUM (2) /* 摩擦轮数量 */
#define MAX_FRIC_RPM 7000.0f
#define MAX_TRIG_RPM 1000.0f
/* Exported macro ----------------------------------------------------------- */
/* Exported types ----------------------------------------------------------- */
typedef enum {
SHOOT_STATE_IDLE = 0, // 熄火
SHOOT_STATE_READY, // 准备射击
SHOOT_STATE_FIRE // 射击
} Shoot_State_t;
typedef enum {
SHOOT_MODE_SAFE = 0, // 安全模式
SHOOT_MODE_SINGLE, // 单发模式
SHOOT_MODE_BURST, // 多发模式
SHOOT_MODE_CONTINUE // 连发模式
} Shoot_Mode_t;
typedef struct {
bool online;
bool ready; /* 准备射击 */
bool firecmd; /* 射击指令 */
bool last_firecmd;
} Shoot_CMD_t;
typedef struct {
MOTOR_Feedback_t fric[SHOOT_FRIC_NUM]; /* 摩擦轮电机反馈 */
MOTOR_RM_t *trig; /* 拨弹电机反馈 */
float fil_fric_rpm[SHOOT_FRIC_NUM]; /* 滤波后的摩擦轮转速 */
float fil_trig_rpm; /* 滤波后的拨弹电机转速*/
float fric_rpm[SHOOT_FRIC_NUM]; /* 归一化摩擦轮转速 */
float fric_avgrpm; /* 归一化摩擦轮平均转速*/
float trig_rpm; /* 归一化拨弹电机转速*/
}Shoot_Feedback_t;
typedef struct {
float out_follow[SHOOT_FRIC_NUM];
float out_err[SHOOT_FRIC_NUM];
float out_fric[SHOOT_FRIC_NUM];
float lpfout_fric[SHOOT_FRIC_NUM];
float out_trig;
float lpfout_trig;
}Shoot_Output_t;
/* 底盘参数的结构体包含所有初始化用的参数通常是const存好几组 */
typedef struct {
float trig_step_angle; /* 每次拨弹电机转动的角度 */
MOTOR_RM_Param_t fric_motor_param[SHOOT_FRIC_NUM];
MOTOR_RM_Param_t trig_motor_param;
KPID_Params_t fric_follow; /* 摩擦轮电机PID控制参数用于跟随目标速度 */
KPID_Params_t fric_err; /* 摩擦轮电机PID控制参数用于消除转速误差 */
KPID_Params_t trig; /* 拨弹电机PID控制参数 */
/* 低通滤波器截止频率 */
struct {
struct{
float in; /* 反馈值滤波器 */
float out; /* 输出值滤波器 */
}fric;
struct{
float in; /* 反馈值滤波器 */
float out; /* 输出值滤波器 */
}trig;
} filter;
} Shoot_Params_t;
/*
*
*
*/
typedef struct {
bool online;
uint32_t lask_wakeup;
float dt;
Shoot_Params_t *param; /* */
/* 模块通用 */
Shoot_State_t running_state; /* 运行状态机 */
Shoot_Mode_t mode;
/* 反馈信息 */
Shoot_Feedback_t feedback;
/* 控制信息*/
Shoot_Output_t output;
/* 目标控制量 */
struct {
float target_rpm; /* 目标摩擦轮转速 */
float target_angle; /* 目标拨弹位置 */
}target_variable;
/* 反馈控制用的PID */
struct {
KPID_t fric_follow[SHOOT_FRIC_NUM]; /* */
KPID_t fric_err[SHOOT_FRIC_NUM]; /* */
KPID_t trig;
} pid;
/* 滤波器 */
struct {
struct{
LowPassFilter2p_t in[SHOOT_FRIC_NUM]; /* 反馈值滤波器 */
LowPassFilter2p_t out[SHOOT_FRIC_NUM]; /* 输出值滤波器 */
}fric;
struct{
LowPassFilter2p_t in; /* 反馈值滤波器 */
LowPassFilter2p_t out; /* 输出值滤波器 */
}trig;
} filter;
float errtosee; /*调试用*/
} shoot_t;
/* Exported functions prototypes -------------------------------------------- */
/**
* \brief
*
* \param c
* \param param
* \param target_freq
*
* \return
*/
int8_t Shoot_Init(shoot_t *c, Shoot_Params_t *param, float target_freq);
/**
* \brief
*
* \param c
*
* \return
*/
int8_t Chassis_UpdateFeedback(shoot_t *c);
/**
* \brief
*
* \param c
* \param cmd
*
* \return
*/
int8_t Shoot_Control(shoot_t *c, const Shoot_CMD_t *cmd);
#ifdef __cplusplus
}
#endif

View File

@ -6,11 +6,10 @@
/* Includes ----------------------------------------------------------------- */
#include "task/user_task.h"
/* USER INCLUDE BEGIN */
#include "device/motor_rm.h"
#include "device/motor.h"
#include "component/at9s_pro_cmd.h"
#include "module/shoot_control.h"
#include "bsp/dwt.h"
#include "module/config.h"
/* USER INCLUDE END */
/* Private typedef ---------------------------------------------------------- */
@ -18,6 +17,8 @@
/* Private macro ------------------------------------------------------------ */
/* Private variables -------------------------------------------------------- */
COMP_AT9S_CMD_t shoot_ctrl_cmd_rc;
shoot_t shoot_c;
Shoot_CMD_t shoot_cmd;
/* USER STRUCT BEGIN */
/* USER STRUCT END */
@ -35,14 +36,18 @@ void Task_shoot_ctrl(void *argument) {
uint32_t tick = osKernelGetTickCount(); /* 控制任务运行频率的计时 */
/* USER CODE INIT BEGIN */
shoot_motor_Init(SHOOT_CTRL_FREQ);
Shoot_Init(&shoot_c,&Config_GetRobotParam()->shoot_param,SHOOT_CTRL_FREQ);
/* USER CODE INIT END */
while (1) {
tick += delay_tick; /* 计算下一个唤醒时刻 */
/* USER CODE BEGIN */
osMessageQueueGet(task_runtime.msgq.shoot.rc_cmd, &shoot_ctrl_cmd_rc, NULL, 0);
shoot_control(&shoot_ctrl_cmd_rc);
shoot_cmd.ready=shoot_ctrl_cmd_rc.shoot.ready;
shoot_cmd.firecmd=shoot_ctrl_cmd_rc.shoot.firecmd;
shoot_cmd.online=shoot_ctrl_cmd_rc.online;
Chassis_UpdateFeedback(&shoot_c);
Shoot_Control(&shoot_c,&shoot_cmd);
/* USER CODE END */
osDelayUntil(tick); /* 运行结束,等待下一次唤醒 */
}