还差热量计算

This commit is contained in:
yxming66 2025-10-10 22:21:33 +08:00
parent 4faae4f680
commit 4ab41bf908
20 changed files with 3439 additions and 3307 deletions

View File

@ -3,6 +3,8 @@
"files.associations": {
"pid.h": "c",
"main.h": "c",
"motor_rm.h": "c"
"motor_rm.h": "c",
"filter.h": "c",
"user_math.h": "c"
}
}

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

View File

@ -28,7 +28,64 @@ Project File Date: 10/10/2025
*** Using Compiler 'V6.16', folder: 'D:\cangming\ARM\ARMCLANG\Bin'
Build target 'shoot'
Note: source file '..\User\bsp\can.c' - object file renamed from 'shoot\can.o' to 'shoot\can_1.o'.
"shoot\shoot.axf" - 0 Error(s), 0 Warning(s).
compiling pid.c...
../User/task/shoot_ctrl.c(9): warning: In file included from...
../User\component/at9s_pro_cmd.h(9): warning: In file included from...
../User\device/at9s_pro.h(17): warning: '__packed__' attribute ignored [-Wignored-attributes]
typedef __packed struct
^
../User\component/user_math.h(33): note: expanded from macro '__packed'
#define __packed __attribute__((__packed__))
^
1 warning generated.
compiling shoot_ctrl.c...
../User/task/rc.c(8): warning: In file included from...
../User\device/at9s_pro.h(17): warning: '__packed__' attribute ignored [-Wignored-attributes]
typedef __packed struct
^
../User\component/user_math.h(33): note: expanded from macro '__packed'
#define __packed __attribute__((__packed__))
^
1 warning generated.
compiling rc.c...
../User/task/init.c(10): warning: In file included from...
../User\component/at9s_pro_cmd.h(9): warning: In file included from...
../User\device/at9s_pro.h(17): warning: '__packed__' attribute ignored [-Wignored-attributes]
typedef __packed struct
^
../User\component/user_math.h(33): note: expanded from macro '__packed'
#define __packed __attribute__((__packed__))
^
1 warning generated.
compiling init.c...
../User/component/at9s_pro_cmd.c(2): warning: In file included from...
../User/component/at9s_pro_cmd.h(9): warning: In file included from...
../User\device/at9s_pro.h(17): warning: '__packed__' attribute ignored [-Wignored-attributes]
typedef __packed struct
^
../User\component/user_math.h(33): note: expanded from macro '__packed'
#define __packed __attribute__((__packed__))
^
1 warning generated.
compiling at9s_pro_cmd.c...
compiling user_math.c...
compiling filter.c...
compiling config.c...
../User/device/AT9S_Pro.c(2): warning: In file included from...
../User/device/AT9S_Pro.h(17): warning: '__packed__' attribute ignored [-Wignored-attributes]
typedef __packed struct
^
../User\component/user_math.h(33): note: expanded from macro '__packed'
#define __packed __attribute__((__packed__))
^
1 warning generated.
compiling AT9S_Pro.c...
compiling motor_rm.c...
compiling shoot_control.c...
linking...
Program Size: Code=32304 RO-data=660 RW-data=280 ZI-data=23744
FromELF: creating hex file...
"shoot\shoot.axf" - 0 Error(s), 5 Warning(s).
<h2>Software Packages used:</h2>

File diff suppressed because it is too large Load Diff

View File

@ -3,7 +3,7 @@
<title>Static Call Graph - [shoot\shoot.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image shoot\shoot.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 6160001: Last Updated: Fri Oct 10 12:05:48 2025
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 6160001: Last Updated: Fri Oct 10 22:04:16 2025
<BR><P>
<H3>Maximum Stack Usage = 312 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
@ -723,6 +723,8 @@ Global Symbols
</UL>
<BR>[Called By]<UL><LI><a href="#[f9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MOTOR_RM_Register
<LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BSP_CAN_CreateIdQueue
<LI><a href="#[b3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Config_ShootInit
<LI><a href="#[117]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Shoot_Init
</UL>
<P><STRONG><a name="[89]"></a>BSP_Malloc</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, mm.o(.text.BSP_Malloc))
@ -815,7 +817,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Task_rc
</UL>
<P><STRONG><a name="[ae]"></a>Chassis_UpdateFeedback</STRONG> (Thumb, 480 bytes, Stack size 64 bytes, shoot_control.o(.text.Chassis_UpdateFeedback))
<P><STRONG><a name="[ae]"></a>Chassis_UpdateFeedback</STRONG> (Thumb, 496 bytes, Stack size 64 bytes, shoot_control.o(.text.Chassis_UpdateFeedback))
<BR><BR>[Stack]<UL><LI>Max Depth = 312<LI>Call Chain = Chassis_UpdateFeedback &rArr; MOTOR_RM_Update &rArr; BSP_CAN_GetMessage &rArr; osMutexAcquire &rArr; xQueueTakeMutexRecursive &rArr; xQueueSemaphoreTake &rArr; xTaskResumeAll &rArr; xTaskIncrementTick
</UL>
<BR>[Calls]<UL><LI><a href="#[af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;LowPassFilter2p_Apply
@ -839,10 +841,11 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Task_shoot_ctrl
</UL>
<P><STRONG><a name="[b3]"></a>Config_ShootInit</STRONG> (Thumb, 190 bytes, Stack size 32 bytes, config.o(.text.Config_ShootInit))
<BR><BR>[Stack]<UL><LI>Max Depth = 152<LI>Call Chain = Config_ShootInit &rArr; BSP_Malloc &rArr; pvPortMalloc &rArr; xTaskResumeAll &rArr; xTaskIncrementTick
<P><STRONG><a name="[b3]"></a>Config_ShootInit</STRONG> (Thumb, 154 bytes, Stack size 24 bytes, config.o(.text.Config_ShootInit))
<BR><BR>[Stack]<UL><LI>Max Depth = 144<LI>Call Chain = Config_ShootInit &rArr; BSP_Malloc &rArr; pvPortMalloc &rArr; xTaskResumeAll &rArr; xTaskIncrementTick
</UL>
<BR>[Calls]<UL><LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BSP_Malloc
<LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BSP_Free
</UL>
<BR>[Called By]<UL><LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Task_shoot_ctrl
</UL>
@ -1528,7 +1531,11 @@ Global Symbols
<P><STRONG><a name="[6]"></a>SVC_Handler</STRONG> (Thumb, 36 bytes, Stack size 0 bytes, port.o(.text.SVC_Handler))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f407xx.o(RESET)
</UL>
<P><STRONG><a name="[111]"></a>Shoot_CaluTargetAngle</STRONG> (Thumb, 160 bytes, Stack size 32 bytes, shoot_control.o(.text.Shoot_CaluTargetAngle))
<P><STRONG><a name="[11d]"></a>ScaleSumTo1</STRONG> (Thumb, 54 bytes, Stack size 0 bytes, user_math.o(.text.ScaleSumTo1))
<BR><BR>[Called By]<UL><LI><a href="#[118]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Shoot_RunningFSM
</UL>
<P><STRONG><a name="[111]"></a>Shoot_CaluTargetAngle</STRONG> (Thumb, 192 bytes, Stack size 32 bytes, shoot_control.o(.text.Shoot_CaluTargetAngle))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = Shoot_CaluTargetAngle
</UL>
<BR>[Calls]<UL><LI><a href="#[10a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CircleError
@ -1538,7 +1545,7 @@ Global Symbols
</UL>
<P><STRONG><a name="[113]"></a>Shoot_Control</STRONG> (Thumb, 108 bytes, Stack size 24 bytes, shoot_control.o(.text.Shoot_Control))
<BR><BR>[Stack]<UL><LI>Max Depth = 232<LI>Call Chain = Shoot_Control &rArr; Shoot_JamDetectionFSM &rArr; Shoot_RunningFSM &rArr; MOTOR_RM_Ctrl &rArr; BSP_CAN_TransmitStdDataFrame &rArr; BSP_CAN_Transmit &rArr; BSP_CAN_TxQueuePush
<BR><BR>[Stack]<UL><LI>Max Depth = 240<LI>Call Chain = Shoot_Control &rArr; Shoot_JamDetectionFSM &rArr; Shoot_RunningFSM &rArr; MOTOR_RM_Ctrl &rArr; BSP_CAN_TransmitStdDataFrame &rArr; BSP_CAN_Transmit &rArr; BSP_CAN_TxQueuePush
</UL>
<BR>[Calls]<UL><LI><a href="#[114]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BSP_TIME_Get_us
<LI><a href="#[115]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ul2f
@ -1547,13 +1554,14 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Task_shoot_ctrl
</UL>
<P><STRONG><a name="[117]"></a>Shoot_Init</STRONG> (Thumb, 582 bytes, Stack size 48 bytes, shoot_control.o(.text.Shoot_Init))
<P><STRONG><a name="[117]"></a>Shoot_Init</STRONG> (Thumb, 606 bytes, Stack size 48 bytes, shoot_control.o(.text.Shoot_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 288 + Unknown Stack Size
<LI>Call Chain = Shoot_Init &rArr; BSP_CAN_Init &rArr; osMutexNew &rArr; xQueueCreateMutexStatic &rArr; prvInitialiseMutex &rArr; xQueueGenericSend &rArr; xTaskResumeAll &rArr; xTaskIncrementTick
</UL>
<BR>[Calls]<UL><LI><a href="#[f2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;LowPassFilter2p_Init
<LI><a href="#[f9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MOTOR_RM_Register
<LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BSP_Malloc
<LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BSP_Free
<LI><a href="#[90]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BSP_CAN_Init
<LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
<LI><a href="#[10c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PID_Init
@ -1561,8 +1569,8 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Task_shoot_ctrl
</UL>
<P><STRONG><a name="[116]"></a>Shoot_JamDetectionFSM</STRONG> (Thumb, 292 bytes, Stack size 8 bytes, shoot_control.o(.text.Shoot_JamDetectionFSM))
<BR><BR>[Stack]<UL><LI>Max Depth = 208<LI>Call Chain = Shoot_JamDetectionFSM &rArr; Shoot_RunningFSM &rArr; MOTOR_RM_Ctrl &rArr; BSP_CAN_TransmitStdDataFrame &rArr; BSP_CAN_Transmit &rArr; BSP_CAN_TxQueuePush
<P><STRONG><a name="[116]"></a>Shoot_JamDetectionFSM</STRONG> (Thumb, 304 bytes, Stack size 16 bytes, shoot_control.o(.text.Shoot_JamDetectionFSM))
<BR><BR>[Stack]<UL><LI>Max Depth = 216<LI>Call Chain = Shoot_JamDetectionFSM &rArr; Shoot_RunningFSM &rArr; MOTOR_RM_Ctrl &rArr; BSP_CAN_TransmitStdDataFrame &rArr; BSP_CAN_Transmit &rArr; BSP_CAN_TxQueuePush
</UL>
<BR>[Calls]<UL><LI><a href="#[118]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Shoot_RunningFSM
</UL>
@ -1596,6 +1604,7 @@ Global Symbols
<BR><BR>[Stack]<UL><LI>Max Depth = 200<LI>Call Chain = Shoot_RunningFSM &rArr; MOTOR_RM_Ctrl &rArr; BSP_CAN_TransmitStdDataFrame &rArr; BSP_CAN_Transmit &rArr; BSP_CAN_TxQueuePush
</UL>
<BR>[Calls]<UL><LI><a href="#[af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;LowPassFilter2p_Apply
<LI><a href="#[11d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ScaleSumTo1
<LI><a href="#[fc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MOTOR_RM_SetOutput
<LI><a href="#[fb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MOTOR_RM_Relax
<LI><a href="#[f7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MOTOR_RM_Ctrl
@ -1603,7 +1612,6 @@ Global Symbols
<LI><a href="#[11a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Shoot_ResetIntegral
<LI><a href="#[119]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Shoot_ResetCalu
<LI><a href="#[111]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Shoot_CaluTargetAngle
<LI><a href="#[11d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ScaleSumTo1
<LI><a href="#[11b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PID_ResetIntegral
<LI><a href="#[108]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PID_Calc
</UL>
@ -1677,7 +1685,7 @@ Global Symbols
</UL>
<BR>[Address Reference Count : 1]<UL><LI> init.o(.text.Task_Init)
</UL>
<P><STRONG><a name="[64]"></a>Task_shoot_ctrl</STRONG> (Thumb, 260 bytes, Stack size 0 bytes, shoot_ctrl.o(.text.Task_shoot_ctrl))
<P><STRONG><a name="[64]"></a>Task_shoot_ctrl</STRONG> (Thumb, 164 bytes, Stack size 0 bytes, shoot_ctrl.o(.text.Task_shoot_ctrl))
<BR><BR>[Stack]<UL><LI>Max Depth = 312 + Unknown Stack Size
<LI>Call Chain = Task_shoot_ctrl &rArr; Chassis_UpdateFeedback &rArr; MOTOR_RM_Update &rArr; BSP_CAN_GetMessage &rArr; osMutexAcquire &rArr; xQueueTakeMutexRecursive &rArr; xQueueSemaphoreTake &rArr; xTaskResumeAll &rArr; xTaskIncrementTick
</UL>
@ -3171,10 +3179,6 @@ Local Symbols
<BR><BR>[Called By]<UL><LI><a href="#[10c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PID_Init
<LI><a href="#[108]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PID_Calc
</UL>
<P><STRONG><a name="[11d]"></a>ScaleSumTo1</STRONG> (Thumb, 54 bytes, Stack size 0 bytes, shoot_control.o(.text.ScaleSumTo1))
<BR><BR>[Called By]<UL><LI><a href="#[118]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Shoot_RunningFSM
</UL>
<P>
<H3>
Undefined Global Symbols

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,5 @@
shoot/shoot_control.o: ..\User\module\shoot_control.c \
D:\cangming\ARM\ARMCLANG\Bin\..\include\string.h \
..\User\module\shoot_control.h ..\Core\Inc\main.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h \
..\Core\Inc\stm32f4xx_hal_conf.h \
@ -48,4 +49,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 \
D:\cangming\ARM\ARMCLANG\Bin\..\include\string.h ..\User\bsp\time.h
..\User\bsp\time.h

Binary file not shown.

Binary file not shown.

View File

@ -1181,7 +1181,7 @@ I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68AD8208)
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
I (D:\cangming\ARM\ARMCLANG\include\string.h)(0x6035A4A8)
I (..\User\bsp\time.h)(0x68DFDF27)
I (..\User\component\user_math.h)(0x68E86971)
I (..\User\component\user_math.h)(0x68E9125E)
I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
F (..\User\device\motor_rm.h)(0x68DFDF0A)()
@ -1230,7 +1230,7 @@ I (..\User\device\AT9S_Pro.h)(0x68CE6AC0)
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)(0x68E86971)
I (..\User\component\user_math.h)(0x68E9125E)
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)
@ -1268,15 +1268,15 @@ 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)(0x68DFDF27)
F (..\User\device\AT9S_Pro.h)(0x68CE6AC0)()
F (..\User\component\user_math.c)(0x68E881BF)(-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_math.o -MD)
I (..\User\component\user_math.h)(0x68E86971)
F (..\User\component\user_math.c)(0x68E9125E)(-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_math.o -MD)
I (..\User\component\user_math.h)(0x68E9125E)
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\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)(0x68E86971)()
F (..\User\component\user_math.h)(0x68E9125E)()
F (..\User\component\at9s_pro_cmd.c)(0x68E869ED)(-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)
@ -1284,7 +1284,7 @@ I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
I (..\User\device\at9s_pro.h)(0x68CE6AC0)
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)(0x68E86971)
I (..\User\component\user_math.h)(0x68E9125E)
I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
I (..\User\device\device.h)(0x68E86971)
@ -1292,7 +1292,7 @@ I (D:\cangming\ARM\ARMCLANG\include\string.h)(0x6035A4A8)
F (..\User\component\at9s_pro_cmd.h)(0x68D4B9F6)()
F (..\User\component\filter.c)(0x68DFDF27)(-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/filter.o -MD)
I (..\User\component\filter.h)(0x68DFDF27)
I (..\User\component\user_math.h)(0x68E86971)
I (..\User\component\user_math.h)(0x68E9125E)
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)
@ -1303,14 +1303,15 @@ F (..\User\component\pid.c)(0x68E86971)(-xc -std=c99 --target=arm-arm-none-eabi
I (..\User\component\pid.h)(0x68E86971)
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
I (..\User\component\filter.h)(0x68DFDF27)
I (..\User\component\user_math.h)(0x68E86971)
I (..\User\component\user_math.h)(0x68E9125E)
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)
F (..\User\component\pid.h)(0x68E86971)()
F (..\User\module\shoot_control.c)(0x68E8858C)(-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)(0x68E882B7)
F (..\User\module\shoot_control.c)(0x68E9116B)(-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 (D:\cangming\ARM\ARMCLANG\include\string.h)(0x6035A4A8)
I (..\User\module\shoot_control.h)(0x68E9116B)
I (..\Core\Inc\main.h)(0x68D1384A)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h)(0x68AD823F)
I (..\Core\Inc\stm32f4xx_hal_conf.h)(0x68D1384A)
@ -1344,7 +1345,7 @@ 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)(0x68E86971)
I (..\User\component\filter.h)(0x68DFDF27)
I (..\User\component\user_math.h)(0x68E86971)
I (..\User\component\user_math.h)(0x68E9125E)
I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
I (..\User\device\motor_rm.h)(0x68DFDF0A)
@ -1365,15 +1366,14 @@ 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 (D:\cangming\ARM\ARMCLANG\include\string.h)(0x6035A4A8)
I (..\User\bsp\time.h)(0x68DFDF27)
F (..\User\module\shoot_control.h)(0x68E882B7)()
F (..\User\module\config.c)(0x68E885C4)(-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)
F (..\User\module\shoot_control.h)(0x68E9116B)()
F (..\User\module\config.c)(0x68E9116B)(-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)(0x68E869ED)
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
I (..\User\component\pid.h)(0x68E86971)
I (..\User\component\filter.h)(0x68DFDF27)
I (..\User\component\user_math.h)(0x68E86971)
I (..\User\component\user_math.h)(0x68E9125E)
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)
@ -1424,7 +1424,7 @@ 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)(0x68E882B7)
I (..\User\module\shoot_control.h)(0x68E9116B)
F (..\User\module\config.h)(0x68E869ED)()
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)
@ -1443,7 +1443,7 @@ I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68AD8208)
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 (..\User\component\user_math.h)(0x68E86971)
I (..\User\component\user_math.h)(0x68E9125E)
I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
I (..\User\device\device.h)(0x68E86971)
@ -1462,13 +1462,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\list.h)(0x68AD8208)
I (..\User\device\at9s_pro.h)(0x68CE6AC0)
I (..\User\component\user_math.h)(0x68E86971)
I (..\User\component\user_math.h)(0x68E9125E)
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)(0x68E86971)
I (..\User\component\at9s_pro_cmd.h)(0x68D4B9F6)
F (..\User\task\shoot_ctrl.c)(0x68E8725A)(-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)(0x68E90844)(-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)
@ -1485,11 +1485,11 @@ I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68AD8208)
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 (..\User\component\user_math.h)(0x68E86971)
I (..\User\component\user_math.h)(0x68E9125E)
I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
I (..\User\device\device.h)(0x68E86971)
I (..\User\module\shoot_control.h)(0x68E882B7)
I (..\User\module\shoot_control.h)(0x68E9116B)
I (..\Core\Inc\main.h)(0x68D1384A)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h)(0x68AD823F)
I (..\Core\Inc\stm32f4xx_hal_conf.h)(0x68D1384A)

Binary file not shown.

View File

@ -4,30 +4,40 @@
Breakpoint=D:/CUBEMX/shoot/User/device/motor_rm.c:146:32, State=BP_STATE_DISABLED
Breakpoint=D:/CUBEMX/shoot/User/device/motor_rm.c:149:49, State=BP_STATE_DISABLED
Breakpoint=D:/CUBEMX/shoot/User/module/shoot_control.c:120:26, State=BP_STATE_DISABLED
GraphedExpression="dpos", Color=#e56a6f, Show=0
GraphedExpression="((((shoot).pid).trig).last).out", Color=#e56a6f, Show=0
GraphedExpression="((((shoot).pid).trig_omg).last).out", Color=#35792b, Show=0
GraphedExpression="((shoot).target_variable).target_angle", Color=#769dda, Show=0
GraphedExpression="((shoot).feedback).trig_agl", Color=#b14f0d, Show=0
GraphedExpression="((((shoot).feedback).trig).feedback).rotor_abs_angle", Color=#b3c38e, Show=0
GraphedExpression="((((shoot).feedback).trig).feedback).torque_current", Color=#ab7b05, Show=0
OpenDocument="motor_rm.c", FilePath="D:/CUBEMX/shoot/User/device/motor_rm.c", Line=231
OpenDocument="shoot_control.h", FilePath="D:/CUBEMX/shoot/User/module/shoot_control.h", Line=83
OpenDocument="cmsis_os2.c", FilePath="D:/CUBEMX/shoot/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.c", Line=885
OpenDocument="test.cpp", FilePath="D:/CUBEMX/shoot/User/module/test.cpp", Line=0
OpenDocument="stm32f4xx_it.c", FilePath="D:/CUBEMX/shoot/Core/Src/stm32f4xx_it.c", Line=82
OpenDocument="main.c", FilePath="D:/CUBEMX/shoot/Core/Src/main.c", Line=46
OpenDocument="startup_stm32f407xx.s", FilePath="D:/CUBEMX/shoot/MDK-ARM/startup_stm32f407xx.s", Line=161
OpenDocument="tasks.c", FilePath="D:/CUBEMX/shoot/Middlewares/Third_Party/FreeRTOS/Source/tasks.c", Line=3637
OpenDocument="config.h", FilePath="D:/CUBEMX/shoot/User/module/config.h", Line=0
OpenDocument="mm.c", FilePath="D:/CUBEMX/shoot/User/bsp/mm.c", Line=0
OpenDocument="shoot_ctrl.c", FilePath="D:/CUBEMX/shoot/User/task/shoot_ctrl.c", Line=14
OpenDocument="shoot_control.c", FilePath="D:/CUBEMX/shoot/User/module/shoot_control.c", Line=427
OpenDocument="shoot_control.h", FilePath="D:/CUBEMX/shoot/User/module/shoot_control.h", Line=132
OpenDocument="shoot_ctrl.c", FilePath="D:/CUBEMX/shoot/User/task/shoot_ctrl.c", Line=16
OpenDocument="shoot_control.c", FilePath="D:/CUBEMX/shoot/User/module/shoot_control.c", Line=436
OpenDocument="pid.c", FilePath="D:/CUBEMX/shoot/User/component/pid.c", Line=111
OpenDocument="config.c", FilePath="D:/CUBEMX/shoot/User/module/config.c", Line=108
OpenDocument="queue.c", FilePath="D:/CUBEMX/shoot/Middlewares/Third_Party/FreeRTOS/Source/queue.c", Line=2062
OpenDocument="filter.c", FilePath="D:/CUBEMX/shoot/User/component/filter.c", Line=49
OpenDocument="port.c", FilePath="D:/CUBEMX/shoot/Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.c", Line=402
OpenDocument="rc.c", FilePath="D:/CUBEMX/shoot/User/task/rc.c", Line=0
OpenDocument="motor.h", FilePath="D:/CUBEMX/shoot/User/device/motor.h", Line=21
OpenDocument="motor_rm.c", FilePath="D:/CUBEMX/shoot/User/device/motor_rm.c", Line=148
OpenDocument="pid.h", FilePath="D:/CUBEMX/shoot/User/component/pid.h", Line=0
OpenToolbar="Debug", Floating=0, x=0, y=0
OpenWindow="Registers 1", DockArea=RIGHT, x=0, y=1, w=726, h=675, 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=657, TabPos=1, 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="Disassembly", DockArea=RIGHT, x=0, y=0, w=726, h=243, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
OpenWindow="Watched Data 1", DockArea=RIGHT, x=0, y=1, w=726, h=675, TabPos=0, TopOfStack=1, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
OpenWindow="Disassembly", DockArea=RIGHT, x=0, y=0, w=726, h=261, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
OpenWindow="Watched Data 1", DockArea=RIGHT, x=0, y=1, w=726, h=657, TabPos=0, 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="Data Sampling", DockArea=BOTTOM, x=0, y=0, w=2560, h=536, TabPos=0, TopOfStack=1, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, VisibleTab=0, UniformSampleSpacing=0
OpenWindow="Timeline", DockArea=FLOATING, x=997, y=976, w=1552, h=555, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=1, DataPaneShown=1, PowerPaneShown=0, CodePaneShown=0, PinCursor="Cursor Movable", TimePerDiv="1 s / Div", TimeStampFormat="Time", DataGraphDrawAsPoints=0, DataGraphLegendShown=1, DataGraphUniformSampleSpacing=0, DataGraphLegendPosition="1094;240", DataGraphShowNamesAtCursor=0, PowerGraphDrawAsPoints=0, PowerGraphLegendShown=0, PowerGraphAvgFilterTime=Off, PowerGraphAvgFilterLen=Off, PowerGraphUniformSampleSpacing=0, PowerGraphLegendPosition="70;20", CodeGraphLegendShown=0, CodeGraphLegendPosition="80;20"
OpenWindow="Timeline", DockArea=FLOATING, x=997, y=976, w=1552, h=555, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=1, DataPaneShown=1, PowerPaneShown=0, CodePaneShown=0, PinCursor="Cursor Movable", TimePerDiv="1 s / Div", TimeStampFormat="Time", DataGraphDrawAsPoints=0, DataGraphLegendShown=1, DataGraphUniformSampleSpacing=0, DataGraphLegendPosition="974;0", DataGraphShowNamesAtCursor=0, PowerGraphDrawAsPoints=0, PowerGraphLegendShown=0, PowerGraphAvgFilterTime=Off, PowerGraphAvgFilterLen=Off, PowerGraphUniformSampleSpacing=0, PowerGraphLegendPosition="70;20", CodeGraphLegendShown=0, CodeGraphLegendPosition="80;20"
OpenWindow="Console", DockArea=BOTTOM, x=0, y=0, w=2560, h=536, TabPos=1, TopOfStack=0, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
SmartViewPlugin="", Page="", Toolbar="Hidden", Window="SmartView 1"
TableHeader="Registers 1", SortCol="Name", SortOrder="ASCENDING", VisibleCols=["Name";"Value";"Description"], ColWidths=[100;144;482]
@ -37,8 +47,8 @@ TableHeader="Task List", SortCol="None", SortOrder="ASCENDING", VisibleCols=["Na
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;734]
TableHeader="Watched Data 1", SortCol="Expression", SortOrder="ASCENDING", VisibleCols=["Expression";"Value";"Location";"Refresh"], ColWidths=[250;282;91;100]
TableHeader="Data Sampling Table", SortCol="None", SortOrder="ASCENDING", VisibleCols=["Index";"Time";" dpos"], ColWidths=[100;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;100;100;100;100;110;126;1706]
TableHeader="Data Sampling Table", SortCol="None", SortOrder="ASCENDING", VisibleCols=["Index";"Time";" ((((shoot).pid).trig).last).out";" ((((shoot).pid).trig_omg).last).out";" ((shoot).target_variable).target_angle";" ((shoot).feedback).trig_agl";" ((((shoot).feedback).trig).feedback).rotor_abs_angle";" ((((shoot).feedback).trig).feedback).torque_current"], ColWidths=[100;100;100;100;100;100;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;144;100;114;134;110;126;1614]
TableHeader="TargetExceptionDialog", SortCol="Name", SortOrder="ASCENDING", VisibleCols=["Name";"Value";"Address";"Description"], ColWidths=[200;100;100;340]
WatchedExpression="shoot_ctrl_cmd_rc", RefreshRate=5, Window=Watched Data 1
WatchedExpression="shoot_cmd", RefreshRate=5, Window=Watched Data 1
@ -47,4 +57,5 @@ WatchedExpression="pos", RefreshRate=5, Window=Watched Data 1
WatchedExpression="feedback_current", Window=Watched Data 1
WatchedExpression="dpos", Window=Watched Data 1
WatchedExpression="robot_config", RefreshRate=5, Window=Watched Data 1
WatchedExpression="a", RefreshRate=1, Window=Watched Data 1
WatchedExpression="shoot.param->fric_motor_param[1]", Window=Watched Data 1
WatchedExpression="shoot.param->fric_motor_param[2]", Window=Watched Data 1

View File

@ -119,6 +119,20 @@ inline float CalculateRpm(float bullet_speed, float fric_radius, bool is17mm) {
return 60.0f * (float)bullet_speed / (M_2PI * fric_radius);
}
/**
* @brief
*
* @param a 1
* @param b 2
*/
inline void ScaleSumTo1(float *a, float *b) {
float sum = *a + *b;
if (sum > 1.0f) {
float scale = 1.0f / sum;
*a *= scale;
*b *= scale;
}
}
// /**
// * @brief 断言失败处理
// *

View File

@ -120,6 +120,13 @@ void CircleReverse(float *origin);
*/
float CalculateRpm(float bullet_speed, float fric_radius, bool is17mm);
/**
* @brief
*
* @param a 1
* @param b 2
*/
void ScaleSumTo1(float *a, float *b);
#ifdef __cplusplus
}
#endif

View File

@ -19,11 +19,12 @@ Config_RobotParam_t robot_config = {
.shoot_param = {
.proj=SHOOT_PROJECTILE_17MM,
.fric_num=6,
.extra_deceleration_ratio=1.0f,
.num_trig_tooth=8,
.shot_freq=20.0f,
.shot_burst_num=1,
.shot_burst_num=5,
.num_multilevel=2,
.jam_enable=true,
.jam_threshold=120.0f,
@ -32,7 +33,7 @@ Config_RobotParam_t robot_config = {
.can = BSP_CAN_2,
.id = 0x207,
.module = MOTOR_M2006,
.reverse = true,
.reverse = false,
.gear=true,
},
.fric_follow = {
@ -76,22 +77,22 @@ Config_RobotParam_t robot_config = {
.range=-1.0f,
},
.trig_3508 = {
.k=0.0f,
.p=0.0f,
.i=0.0f,
.d=0.00f,
.i_limit=0.0f,
.out_limit=0.0f,
.k=0.5f,
.p=1.8f,
.i=0.3f,
.d=0.1f,
.i_limit=0.15f,
.out_limit=1.0f,
.d_cutoff_freq=-1.0f,
.range=M_2PI,
},
.trig_omg_3508 = {
.k=0.0f,
.p=0.0f,
.k=1.0f,
.p=1.0f,
.i=0.0f,
.d=0.0f,
.i_limit=0.0f,
.out_limit=0.0f,
.out_limit=1.0f,
.d_cutoff_freq=-1.0f,
.range=-1.0f,
},
@ -118,40 +119,40 @@ Config_RobotParam_t* Config_GetRobotParam(void) {
}
/**
* @brief
* @brief
* @return
*/
int8_t Config_ShootInit(void) {
int fric_num = robot_config.shoot_param.fric_num;
int num_multilevel = robot_config.shoot_param.num_multilevel;
robot_config.shoot_param.fric_motor_param = (Shoot_MOTOR_RM_Param_t *)BSP_Malloc(fric_num * sizeof(Shoot_MOTOR_RM_Param_t));
if (robot_config.shoot_param.fric_motor_param == NULL) {
BSP_Free(robot_config.shoot_param.fric_motor_param);
return -1; // 内存分配失败
}
robot_config.shoot_param.ratio_multilevel = (float *)BSP_Malloc(num_multilevel * sizeof(float));
if (robot_config.shoot_param.ratio_multilevel == NULL) {
BSP_Free(robot_config.shoot_param.ratio_multilevel);
return -1; // 内存分配失败
}
// 初始化摩擦轮参数
/* 初始化摩擦轮电机参数 */
for (uint8_t i = 0; i < fric_num; i++) {
robot_config.shoot_param.fric_motor_param[i].param = (MOTOR_RM_Param_t){
.can = BSP_CAN_2,
.id = 0x201 + i,
.module = MOTOR_M3508,
.reverse = (i == 0||1) ? true : false,
/*设置电机反装example***********************
.reverse = (i == 0||1||3||5) ? true : false,*/
.reverse = (i == 0) ? true : false,
.gear = false,
};
}
/*规定电机属于哪级发射example************************
robot_config.shoot_param.fric_motor_param[0].level=1;*/
robot_config.shoot_param.fric_motor_param[0].level=1;
robot_config.shoot_param.fric_motor_param[1].level=1;
if(num_multilevel==1){
robot_config.shoot_param.ratio_multilevel[0]=1.0f;
}
else if(num_multilevel>1){
robot_config.shoot_param.ratio_multilevel[0]=1.0f;
robot_config.shoot_param.ratio_multilevel[1]=1.1f;
}
/*规定各级摩擦轮转速比example*********************
robot_config.shoot_param.ratio_multilevel[0]=1.0f;*/
robot_config.shoot_param.ratio_multilevel[0]=1.0f;
return SHOOT_OK;
}

View File

@ -2,30 +2,48 @@
* 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 "shoot_control.h"
#include <string.h>
#include "can.h"
#include "component/filter.h"
#include "component/user_math.h"
#include <math.h>
#include "shoot_control.h"
#include "bsp/mm.h"
#include "bsp/time.h"
#include "component/filter.h"
#include "component/user_math.h"
/* Private typedef ---------------------------------------------------------- */
/* Private define ----------------------------------------------------------- */
#define WONDERFUL_COMPENSATION_FORHERO 0.010478f//给英雄做的补偿
/* Private macro ------------------------------------------------------------ */
/* Private variables -------------------------------------------------------- */
static bool last_firecmd;
/* Private function -------------------------------------------------------- */
static inline void ScaleSumTo1(float *a, float *b) {
float sum = *a + *b;
if (sum > 1.0f) {
float scale = 1.0f / sum;
*a *= scale;
*b *= scale;
}
}
/**
* \brief
@ -134,7 +152,15 @@ int8_t Shoot_CaluTargetRPM(Shoot_t *s, float target_speed)
if (s == NULL) {
return SHOOT_ERR_NULL; // 参数错误
}
s->target_variable.target_rpm=4000.0f/MAX_FRIC_RPM;
switch(s->param->proj)
{
case SHOOT_PROJECTILE_17MM:
s->target_variable.target_rpm=5000.0f/MAX_FRIC_RPM;
break;
case SHOOT_PROJECTILE_42MM:
s->target_variable.target_rpm=5000.0f/MAX_FRIC_RPM;
break;
}
return SHOOT_OK;
}
@ -158,6 +184,8 @@ int8_t Shoot_CaluTargetAngle(Shoot_t *s, Shoot_CMD_t *cmd)
{
s->anglecalu.time_last_shoot=s->now;
CircleAdd(&s->target_variable.target_angle, M_2PI/s->param->num_trig_tooth, M_2PI);
if(s->param->trig_motor_param.module==MOTOR_M3508){
s->target_variable.target_angle+=WONDERFUL_COMPENSATION_FORHERO;}
s->anglecalu.num_to_shoot--;
}
return SHOOT_OK;
@ -199,8 +227,11 @@ int8_t Chassis_UpdateFeedback(Shoot_t *s)
MOTOR_RM_Update(&s->param->trig_motor_param);
s->feedback.trig = *MOTOR_RM_GetMotor(&s->param->trig_motor_param);
s->feedback.trig_agl=s->param->extra_deceleration_ratio*s->feedback.trig.gearbox_total_angle;
while(s->feedback.trig_agl>M_2PI)s->feedback.trig_agl-=M_2PI;
while(s->feedback.trig_agl<-M_2PI)s->feedback.trig_agl+=M_2PI;
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;
@ -402,56 +433,62 @@ int8_t Shoot_JamDetectionFSM(Shoot_t *s, Shoot_CMD_t *cmd)
if (s == NULL) {
return SHOOT_ERR_NULL; // 参数错误
}
if(s->param->jam_enable){
switch (s->jamdetection.jamfsm_state) {
case SHOOT_JAMFSM_STATE_NORMAL:/* 正常运行 */
/* 检测电流是否超过阈值 */
if (s->feedback.trig.feedback.torque_current/1000.0f > s->param->jam_threshold) {
s->jamdetection.jamfsm_state = SHOOT_JAMFSM_STATE_SUSPECTED;
s->jamdetection.jam_last_time = s->now; /* 记录怀疑开始时间 */
}
/* 正常运行射击状态机 */
Shoot_RunningFSM(s, cmd);
break;
switch (s->jamdetection.jamfsm_state) {
case SHOOT_JAMFSM_STATE_NORMAL:/* 正常运行 */
/* 检测电流是否超过阈值 */
if (s->feedback.trig.feedback.torque_current/1000.0f > s->param->jam_threshold) {
s->jamdetection.jamfsm_state = SHOOT_JAMFSM_STATE_SUSPECTED;
s->jamdetection.jam_last_time = s->now; /* 记录怀疑开始时间 */
}
/* 正常运行射击状态机 */
Shoot_RunningFSM(s, cmd);
break;
case SHOOT_JAMFSM_STATE_SUSPECTED:/* 怀疑堵塞 */
/* 检测电流是否低于阈值 */
if (s->feedback.trig.feedback.torque_current/1000.0f < s->param->jam_threshold) {
s->jamdetection.jamfsm_state = SHOOT_JAMFSM_STATE_NORMAL;
break;
}
/* 检测高阈值状态是否超过设定怀疑时间 */
else if ((s->now - s->jamdetection.jam_last_time) >= s->param->jam_suspected_time) {
s->jamdetection.jam_detected =true;
s->jamdetection.jamfsm_state = SHOOT_JAMFSM_STATE_CONFIRMED;
break;
}
/* 正常运行射击状态机 */
Shoot_RunningFSM(s, cmd);
break;
case SHOOT_JAMFSM_STATE_SUSPECTED:/* 怀疑堵塞 */
/* 检测电流是否低于阈值 */
if (s->feedback.trig.feedback.torque_current/1000.0f < s->param->jam_threshold) {
case SHOOT_JAMFSM_STATE_CONFIRMED:/* 确认堵塞 */
/* 清空待发射弹 */
s->anglecalu.num_to_shoot=0;
/* 修改拨弹盘目标角度 */
s->target_variable.target_angle = s->feedback.trig_agl-(M_2PI/s->param->num_trig_tooth);
/* 切换状态 */
s->jamdetection.jamfsm_state = SHOOT_JAMFSM_STATE_DEAL;
/* 记录处理开始时间 */
s->jamdetection.jam_last_time = s->now;
case SHOOT_JAMFSM_STATE_DEAL:/* 堵塞处理 */
/* 正常运行射击状态机 */
Shoot_RunningFSM(s, cmd);
/* 给予0.3秒响应时间并检测电流小于20A认为堵塞已解除 */
if ((s->now - s->jamdetection.jam_last_time)>=0.3f&&s->feedback.trig.feedback.torque_current/1000.0f < 20.0f) {
s->jamdetection.jamfsm_state = SHOOT_JAMFSM_STATE_NORMAL;
}
break;
default:
s->jamdetection.jamfsm_state = SHOOT_JAMFSM_STATE_NORMAL;
break;
}
/* 检测高阈值状态是否超过设定怀疑时间 */
else if ((s->now - s->jamdetection.jam_last_time) >= s->param->jam_suspected_time) {
s->jamdetection.jam_detected =true;
s->jamdetection.jamfsm_state = SHOOT_JAMFSM_STATE_CONFIRMED;
break;
}
/* 正常运行射击状态机 */
Shoot_RunningFSM(s, cmd);
break;
case SHOOT_JAMFSM_STATE_CONFIRMED:/* 确认堵塞 */
/* 清空待发射弹 */
s->anglecalu.num_to_shoot=0;
/* 修改拨弹盘目标角度 */
s->target_variable.target_angle = s->feedback.trig_agl-(0.5f*M_2PI/s->param->num_trig_tooth);
/* 切换状态 */
s->jamdetection.jamfsm_state = SHOOT_JAMFSM_STATE_DEAL;
/* 记录处理开始时间 */
s->jamdetection.jam_last_time = s->now;
case SHOOT_JAMFSM_STATE_DEAL:/* 堵塞处理 */
/* 正常运行射击状态机 */
Shoot_RunningFSM(s, cmd);
/* 给予0.3秒响应时间并检测电流小于20A认为堵塞已解除 */
if ((s->now - s->jamdetection.jam_last_time)>=0.3f&&s->feedback.trig.feedback.torque_current/1000.0f < 20.0f) {
s->jamdetection.jamfsm_state = SHOOT_JAMFSM_STATE_NORMAL;
}
break;
default:
s->jamdetection.jamfsm_state = SHOOT_JAMFSM_STATE_NORMAL;
break;
}
}
else{
s->jamdetection.jamfsm_state = SHOOT_JAMFSM_STATE_NORMAL;
s->jamdetection.jam_detected = false;
Shoot_RunningFSM(s, cmd);
}
return SHOOT_OK;
@ -472,10 +509,12 @@ int8_t Shoot_Init(Shoot_t *s, Shoot_Params_t *param, float target_freq)
return SHOOT_ERR_NULL; // 参数错误
}
uint8_t fric_num = param->fric_num;
/* 分配内存 */
s->param=param;
s->feedback.fric = (MOTOR_Feedback_t *) BSP_Malloc((size_t)fric_num * sizeof(MOTOR_Feedback_t));
s->feedback.fil_fric_rpm = (float *) BSP_Malloc((size_t)fric_num * sizeof(float));
s->feedback.fric_rpm = (float *) BSP_Malloc((size_t)fric_num * sizeof(float));
s->feedback.fric = (MOTOR_Feedback_t *) BSP_Malloc(fric_num * sizeof(MOTOR_Feedback_t));
s->feedback.fil_fric_rpm = (float *) BSP_Malloc(fric_num * sizeof(float));
s->feedback.fric_rpm = (float *) BSP_Malloc(fric_num * sizeof(float));
s->output.out_follow = (float *) BSP_Malloc(fric_num * sizeof(float));
s->output.out_err = (float *) BSP_Malloc(fric_num * sizeof(float));
s->output.out_fric = (float *) BSP_Malloc(fric_num * sizeof(float));
@ -485,13 +524,24 @@ int8_t Shoot_Init(Shoot_t *s, Shoot_Params_t *param, float target_freq)
s->filter.fric.in = (LowPassFilter2p_t *)BSP_Malloc(fric_num * sizeof(LowPassFilter2p_t));
s->filter.fric.out = (LowPassFilter2p_t *)BSP_Malloc(fric_num * sizeof(LowPassFilter2p_t));
/* 内存分配失败 */
if (s->feedback.fric == NULL || s->feedback.fil_fric_rpm == NULL || s->feedback.fric_rpm == NULL ||
s->output.out_follow == NULL || s->output.out_err == NULL || s->output.out_fric == NULL ||
s->output.lpfout_fric == NULL || s->param->fric_motor_param == NULL || s->pid.fric_follow == NULL ||
s->pid.fric_err == NULL || s->filter.fric.in == NULL || s->filter.fric.out == NULL) {
return SHOOT_ERR_MALLOC;}/* 内存分配失败 */
BSP_Free(s->feedback.fric);
BSP_Free(s->feedback.fil_fric_rpm);
BSP_Free(s->feedback.fric_rpm);
BSP_Free(s->output.out_follow);
BSP_Free(s->output.out_err);
BSP_Free(s->output.out_fric);
BSP_Free(s->output.lpfout_fric);
BSP_Free(s->param->fric_motor_param);
BSP_Free(s->pid.fric_follow);
BSP_Free(s->pid.fric_err);
BSP_Free(s->filter.fric.in);
BSP_Free(s->filter.fric.out);
return SHOOT_ERR_MALLOC;}
BSP_CAN_Init();
/* 初始化摩擦轮PID和滤波器 */
@ -541,11 +591,10 @@ int8_t Shoot_Control(Shoot_t *s, Shoot_CMD_t *cmd)
if (s == NULL || cmd == NULL) {
return SHOOT_ERR_NULL; // 参数错误
}
s->now = BSP_TIME_Get_us() / 1000000.0f;
s->dt = (BSP_TIME_Get_us() - s->lask_wakeup) / 1000000.0f;
s->lask_wakeup = BSP_TIME_Get_us();
s->online = cmd->online;
//电机在线检测函数
s->now =BSP_TIME_Get_us() / 1000000.0f;
s->dt =(BSP_TIME_Get_us() - s->lask_wakeup) / 1000000.0f;
s->lask_wakeup =BSP_TIME_Get_us();
s->online =cmd->online;
Shoot_JamDetectionFSM(s, cmd);
return SHOOT_OK;
}

View File

@ -31,26 +31,31 @@ typedef enum {
SHOOT_JAMFSM_STATE_SUSPECTED, /* 怀疑状态 */
SHOOT_JAMFSM_STATE_CONFIRMED, /* 确认状态 */
SHOOT_JAMFSM_STATE_DEAL /* 处理状态 */
} Shoot_JamDetectionFSM_State_t;
}Shoot_JamDetectionFSM_State_t;
typedef enum {
SHOOT_STATE_IDLE = 0, /* 熄火 */
SHOOT_STATE_READY, /* 准备射击 */
SHOOT_STATE_FIRE /* 射击 */
} Shoot_Running_State_t;
}Shoot_Running_State_t;
typedef enum {
SHOOT_MODE_SAFE = 0, /* 安全模式 */
SHOOT_MODE_SINGLE, /* 单发模式 */
SHOOT_MODE_BURST, /* 多发模式 */
SHOOT_MODE_CONTINUE /* 连发模式 */
} Shoot_Mode_t;
typedef struct {
bool online;
}Shoot_Mode_t;
typedef enum {
SHOOT_PROJECTILE_17MM,
SHOOT_PROJECTILE_42MM,
}Shoot_Projectile_t;
typedef struct {
bool online; /* 遥控器在线 */
bool mode; /* 射击模式 */
bool ready; /* 准备射击 */
bool firecmd; /* 射击指令 */
} Shoot_CMD_t;
}Shoot_CMD_t;
typedef struct{
MOTOR_RM_Param_t param;
@ -98,6 +103,7 @@ typedef struct {
/* 底盘参数的结构体包含所有初始化用的参数通常是const存好几组 */
typedef struct {
Shoot_Projectile_t proj;
size_t fric_num; /* 摩擦轮数量 */
float extra_deceleration_ratio; /*电机出轴到拨盘的额外减速比没有写1*/
@ -109,7 +115,7 @@ typedef struct {
float *ratio_multilevel; /* 多级发射各级速度比例 */
bool jam_enable; /* 是否启用卡弹检测 */ //还没加到逻辑里
float jam_threshold; /* 卡弹检测阈值单位A (dji2006建议设置为120Adji3508建议设置为300A,根据实际测试调整)*/
float jam_threshold; /* 卡弹检测阈值单位A (dji2006建议设置为120Adji3508建议设置为235A,根据实际测试调整)*/
float jam_suspected_time; /* 卡弹怀疑时间,单位秒 */
Shoot_MOTOR_RM_Param_t *fric_motor_param;
@ -140,8 +146,7 @@ typedef struct {
*
*/
typedef struct {
bool online;//待完善,电机或遥控器在线检测
bool online; /*在线检测*/
float now; /* 当前时间,单位秒 */
uint64_t lask_wakeup; /* 上次唤醒时间,单位微秒 */
float dt; /* 两次唤醒间隔时间,单位秒 */

View File

@ -19,8 +19,6 @@ COMP_AT9S_CMD_t shoot_ctrl_cmd_rc;
Shoot_t shoot;
Shoot_CMD_t shoot_cmd;
/* USER STRUCT BEGIN */
float a[2];
Shoot_MOTOR_RM_Param_t b[6];
/* USER STRUCT END */
/* Private function --------------------------------------------------------- */
@ -39,13 +37,6 @@ void Task_shoot_ctrl(void *argument) {
Config_ShootInit();
Shoot_Init(&shoot,&Config_GetRobotParam()->shoot_param,SHOOT_CTRL_FREQ);
Shoot_SetMode(&shoot,SHOOT_MODE_BURST);
for(int i=0;i<2;i++){
a[i]=shoot.param->ratio_multilevel[i];
}
for(int i=0;i<6;i++){
b[i]=shoot.param->fric_motor_param[i];
}
/* USER CODE INIT END */
while (1) {