This commit is contained in:
yxming66 2025-10-19 16:06:48 +08:00
parent 0c081123a6
commit 0028ba16b7
45 changed files with 7783 additions and 7833 deletions

View File

@ -1,6 +1,7 @@
{ {
"files.associations": { "files.associations": {
"fixed_height.h": "c", "fixed_height.h": "c",
"ahrs.h": "c" "ahrs.h": "c",
"xm_quadctrl.h": "c"
} }
} }

File diff suppressed because one or more lines are too long

View File

@ -132,10 +132,6 @@
<Key>ARMDBGFLAGS</Key> <Key>ARMDBGFLAGS</Key>
<Name></Name> <Name></Name>
</SetRegEntry> </SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>DLGUARM</Key>
</SetRegEntry>
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
<Key>JL2CM3</Key> <Key>JL2CM3</Key>
@ -1010,7 +1006,7 @@
<Group> <Group>
<GroupName>User/device</GroupName> <GroupName>User/device</GroupName>
<tvExp>0</tvExp> <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
@ -1281,30 +1277,6 @@
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\User\component\cmd.c</PathWithFileName>
<FilenameWithoutPath>cmd.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>83</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\component\cmd.h</PathWithFileName>
<FilenameWithoutPath>cmd.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>84</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\component\AltitudeKalman.c</PathWithFileName> <PathWithFileName>..\User\component\AltitudeKalman.c</PathWithFileName>
<FilenameWithoutPath>AltitudeKalman.c</FilenameWithoutPath> <FilenameWithoutPath>AltitudeKalman.c</FilenameWithoutPath>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
@ -1312,7 +1284,7 @@
</File> </File>
<File> <File>
<GroupNumber>9</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>85</FileNumber> <FileNumber>83</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1332,7 +1304,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>10</GroupNumber>
<FileNumber>86</FileNumber> <FileNumber>84</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1344,7 +1316,7 @@
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>10</GroupNumber>
<FileNumber>87</FileNumber> <FileNumber>85</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1356,7 +1328,7 @@
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>10</GroupNumber>
<FileNumber>88</FileNumber> <FileNumber>86</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1368,7 +1340,7 @@
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>10</GroupNumber>
<FileNumber>89</FileNumber> <FileNumber>87</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1380,7 +1352,7 @@
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>10</GroupNumber>
<FileNumber>90</FileNumber> <FileNumber>88</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1392,7 +1364,7 @@
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>10</GroupNumber>
<FileNumber>91</FileNumber> <FileNumber>89</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1404,7 +1376,7 @@
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>10</GroupNumber>
<FileNumber>92</FileNumber> <FileNumber>90</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1416,7 +1388,7 @@
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>10</GroupNumber>
<FileNumber>93</FileNumber> <FileNumber>91</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1436,31 +1408,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>11</GroupNumber> <GroupNumber>11</GroupNumber>
<FileNumber>94</FileNumber> <FileNumber>92</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\task\atti_esti.c</PathWithFileName>
<FilenameWithoutPath>atti_esti.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>95</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\task\height_cal.c</PathWithFileName>
<FilenameWithoutPath>height_cal.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>96</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1472,19 +1420,7 @@
</File> </File>
<File> <File>
<GroupNumber>11</GroupNumber> <GroupNumber>11</GroupNumber>
<FileNumber>97</FileNumber> <FileNumber>93</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\task\main_control.c</PathWithFileName>
<FilenameWithoutPath>main_control.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>98</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1496,7 +1432,7 @@
</File> </File>
<File> <File>
<GroupNumber>11</GroupNumber> <GroupNumber>11</GroupNumber>
<FileNumber>99</FileNumber> <FileNumber>94</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1508,7 +1444,7 @@
</File> </File>
<File> <File>
<GroupNumber>11</GroupNumber> <GroupNumber>11</GroupNumber>
<FileNumber>100</FileNumber> <FileNumber>95</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1520,13 +1456,49 @@
</File> </File>
<File> <File>
<GroupNumber>11</GroupNumber> <GroupNumber>11</GroupNumber>
<FileNumber>101</FileNumber> <FileNumber>96</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\User\task\rc.c</PathWithFileName> <PathWithFileName>..\User\task\cmd.c</PathWithFileName>
<FilenameWithoutPath>rc.c</FilenameWithoutPath> <FilenameWithoutPath>cmd.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>97</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\task\atti_esti.c</PathWithFileName>
<FilenameWithoutPath>atti_esti.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>98</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\task\height_cal.c</PathWithFileName>
<FilenameWithoutPath>height_cal.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>99</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\task\quad_ctrl.c</PathWithFileName>
<FilenameWithoutPath>quad_ctrl.c</FilenameWithoutPath>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>

View File

@ -828,16 +828,6 @@
<FileType>5</FileType> <FileType>5</FileType>
<FilePath>..\User\component\user_math.h</FilePath> <FilePath>..\User\component\user_math.h</FilePath>
</File> </File>
<File>
<FileName>cmd.c</FileName>
<FileType>1</FileType>
<FilePath>..\User\component\cmd.c</FilePath>
</File>
<File>
<FileName>cmd.h</FileName>
<FileType>5</FileType>
<FilePath>..\User\component\cmd.h</FilePath>
</File>
<File> <File>
<FileName>AltitudeKalman.c</FileName> <FileName>AltitudeKalman.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
@ -898,26 +888,11 @@
<Group> <Group>
<GroupName>User/task</GroupName> <GroupName>User/task</GroupName>
<Files> <Files>
<File>
<FileName>atti_esti.c</FileName>
<FileType>1</FileType>
<FilePath>..\User\task\atti_esti.c</FilePath>
</File>
<File>
<FileName>height_cal.c</FileName>
<FileType>1</FileType>
<FilePath>..\User\task\height_cal.c</FilePath>
</File>
<File> <File>
<FileName>init.c</FileName> <FileName>init.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\User\task\init.c</FilePath> <FilePath>..\User\task\init.c</FilePath>
</File> </File>
<File>
<FileName>main_control.c</FileName>
<FileType>1</FileType>
<FilePath>..\User\task\main_control.c</FilePath>
</File>
<File> <File>
<FileName>user_task.c</FileName> <FileName>user_task.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
@ -934,9 +909,24 @@
<FilePath>..\User\task\blink.c</FilePath> <FilePath>..\User\task\blink.c</FilePath>
</File> </File>
<File> <File>
<FileName>rc.c</FileName> <FileName>cmd.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\User\task\rc.c</FilePath> <FilePath>..\User\task\cmd.c</FilePath>
</File>
<File>
<FileName>atti_esti.c</FileName>
<FileType>1</FileType>
<FilePath>..\User\task\atti_esti.c</FilePath>
</File>
<File>
<FileName>height_cal.c</FileName>
<FileType>1</FileType>
<FilePath>..\User\task\height_cal.c</FilePath>
</File>
<File>
<FileName>quad_ctrl.c</FileName>
<FileType>1</FileType>
<FilePath>..\User\task\quad_ctrl.c</FilePath>
</File> </File>
</Files> </Files>
</Group> </Group>

Binary file not shown.

View File

@ -22,7 +22,7 @@ Dialog DLL: TCM.DLL V1.48.0.0
<h2>Project:</h2> <h2>Project:</h2>
D:\CUBEMX\Quadcopter\DveC\MDK-ARM\DveC.uvprojx D:\CUBEMX\Quadcopter\DveC\MDK-ARM\DveC.uvprojx
Project File Date: 10/17/2025 Project File Date: 10/19/2025
<h2>Output:</h2> <h2>Output:</h2>
*** Using Compiler 'V6.16', folder: 'D:\cangming\ARM\ARMCLANG\Bin' *** Using Compiler 'V6.16', folder: 'D:\cangming\ARM\ARMCLANG\Bin'
@ -31,9 +31,9 @@ Note: source file '..\User\bsp\gpio.c' - object file renamed from 'DveC\gpio.o'
Note: source file '..\User\bsp\i2c.c' - object file renamed from 'DveC\i2c.o' to 'DveC\i2c_1.o'. Note: source file '..\User\bsp\i2c.c' - object file renamed from 'DveC\i2c.o' to 'DveC\i2c_1.o'.
Note: source file '..\User\bsp\spi.c' - object file renamed from 'DveC\spi.o' to 'DveC\spi_1.o'. Note: source file '..\User\bsp\spi.c' - object file renamed from 'DveC\spi.o' to 'DveC\spi_1.o'.
Note: source file '..\User\BarometerDriver\spl06.c' - object file renamed from 'DveC\spl06.o' to 'DveC\spl06_1.o'. Note: source file '..\User\BarometerDriver\spl06.c' - object file renamed from 'DveC\spl06.o' to 'DveC\spl06_1.o'.
compiling rc.c... Note: source file '..\User\task\cmd.c' - object file renamed from 'DveC\cmd.o' to 'DveC\cmd_1.o'.
linking... linking...
Program Size: Code=48104 RO-data=1196 RW-data=32 ZI-data=32048 Program Size: Code=50488 RO-data=1244 RW-data=320 ZI-data=33160
FromELF: creating hex file... FromELF: creating hex file...
"DveC\DveC.axf" - 0 Error(s), 0 Warning(s). "DveC\DveC.axf" - 0 Error(s), 0 Warning(s).

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -59,19 +59,18 @@
"dvec\filter.o" "dvec\filter.o"
"dvec\pid.o" "dvec\pid.o"
"dvec\user_math.o" "dvec\user_math.o"
"dvec\cmd.o"
"dvec\altitudekalman.o" "dvec\altitudekalman.o"
"dvec\config.o" "dvec\config.o"
"dvec\at9s_pro_cmd.o" "dvec\at9s_pro_cmd.o"
"dvec\xm_quadctrl.o" "dvec\xm_quadctrl.o"
"dvec\heightestimation.o" "dvec\heightestimation.o"
"dvec\atti_esti.o"
"dvec\height_cal.o"
"dvec\init.o" "dvec\init.o"
"dvec\main_control.o"
"dvec\user_task.o" "dvec\user_task.o"
"dvec\blink.o" "dvec\blink.o"
"dvec\rc.o" "dvec\cmd_1.o"
"dvec\atti_esti.o"
"dvec\height_cal.o"
"dvec\quad_ctrl.o"
--strict --scatter "DveC\DveC.sct" --strict --scatter "DveC\DveC.sct"
--summary_stderr --info summarysizes --map --load_addr_map_info --xref --callgraph --symbols --summary_stderr --info summarysizes --map --load_addr_map_info --xref --callgraph --symbols
--info sizes --info totals --info unused --info veneers --info sizes --info totals --info unused --info veneers

File diff suppressed because it is too large Load Diff

View File

@ -135,7 +135,7 @@ I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h)(0x68AD823F) I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h)(0x68AD823F)
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os.h)(0x68AD8208) I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os.h)(0x68AD8208)
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208) I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
I (..\User\task\user_task.h)(0x68F1F1D6) I (..\User\task\user_task.h)(0x68F49892)
F (../Core/Src/dma.c)(0x68F0EA66)(-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 ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_DveC -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 dvec/dma.o -MD) F (../Core/Src/dma.c)(0x68F0EA66)(-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 ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_DveC -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 dvec/dma.o -MD)
I (..\Core\Inc\dma.h)(0x68DF6BC0) I (..\Core\Inc\dma.h)(0x68DF6BC0)
I (..\Core\Inc\main.h)(0x68F1B727) I (..\Core\Inc\main.h)(0x68F1B727)
@ -1877,17 +1877,6 @@ I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8) I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
I (D:\cangming\ARM\ARMCLANG\include\string.h)(0x6035A4A8) I (D:\cangming\ARM\ARMCLANG\include\string.h)(0x6035A4A8)
F (..\User\component\user_math.h)(0x68F0EAFF)() F (..\User\component\user_math.h)(0x68F0EAFF)()
F (..\User\component\cmd.c)(0x68F0EAFF)(-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 ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_DveC -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 dvec/cmd.o -MD)
I (..\User\component\cmd.h)(0x68F0EAFF)
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
I (..\User\component\ahrs.h)(0x68F0EAFF)
I (..\User\component\user_math.h)(0x68F0EAFF)
I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
I (D:\cangming\ARM\ARMCLANG\include\string.h)(0x6035A4A8)
F (..\User\component\cmd.h)(0x68F0EAFF)()
F (..\User\component\AltitudeKalman.c)(0x68F1E74C)(-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 ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_DveC -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 dvec/altitudekalman.o -MD) F (..\User\component\AltitudeKalman.c)(0x68F1E74C)(-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 ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_DveC -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 dvec/altitudekalman.o -MD)
I (..\User\component\AltitudeKalman.h)(0x68F1E74C) I (..\User\component\AltitudeKalman.h)(0x68F1E74C)
I (..\User\device\bmi088.h)(0x68F0E47F) I (..\User\device\bmi088.h)(0x68F0E47F)
@ -1900,12 +1889,23 @@ I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8) I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
I (..\User\device\device.h)(0x68F0FFC5) I (..\User\device\device.h)(0x68F0FFC5)
F (..\User\component\AltitudeKalman.h)(0x68F1E74C)() F (..\User\component\AltitudeKalman.h)(0x68F1E74C)()
F (..\User\module\config.c)(0x68DF87BC)(-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 ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_DveC -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 dvec/config.o -MD) F (..\User\module\config.c)(0x68F49186)(-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 ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_DveC -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 dvec/config.o -MD)
I (..\User\module\config.h)(0x68DF87AE) I (..\User\module\config.h)(0x68F49094)
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8) I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
F (..\User\module\config.h)(0x68DF87AE)() I (..\User\module\xm_quadctrl.h)(0x68F49821)
F (..\User\module\at9s_pro_cmd.c)(0x68F10180)(-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 ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_DveC -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 dvec/at9s_pro_cmd.o -MD) I (..\User\device\at9s_pro.h)(0x68F1001A)
I (..\User\module\at9s_pro_cmd.h)(0x68E13166) 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)(0x68F0EAFF)
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)(0x68F0FFC5)
I (..\User\component\pid.h)(0x68F0EAFF)
I (..\User\component\filter.h)(0x68F0EAFF)
F (..\User\module\config.h)(0x68F49094)()
F (..\User\module\at9s_pro_cmd.c)(0x68F49821)(-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 ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_DveC -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 dvec/at9s_pro_cmd.o -MD)
I (..\User\module\at9s_pro_cmd.h)(0x68F49822)
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8) I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8) I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
I (..\User\device\at9s_pro.h)(0x68F1001A) I (..\User\device\at9s_pro.h)(0x68F1001A)
@ -1916,9 +1916,58 @@ I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8) I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
I (..\User\device\device.h)(0x68F0FFC5) I (..\User\device\device.h)(0x68F0FFC5)
I (D:\cangming\ARM\ARMCLANG\include\string.h)(0x6035A4A8) I (D:\cangming\ARM\ARMCLANG\include\string.h)(0x6035A4A8)
F (..\User\module\at9s_pro_cmd.h)(0x68E13166)() F (..\User\module\at9s_pro_cmd.h)(0x68F49822)()
F (..\User\module\xm_quadctrl.c)(0x68F100E8)(-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 ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_DveC -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 dvec/xm_quadctrl.o -MD) F (..\User\module\xm_quadctrl.c)(0x68F490BD)(-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 ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_DveC -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 dvec/xm_quadctrl.o -MD)
F (..\User\module\xm_quadctrl.h)(0x68F100E8)() I (..\User\module\xm_quadctrl.h)(0x68F49821)
I (..\User\device\at9s_pro.h)(0x68F1001A)
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)(0x68F0EAFF)
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)(0x68F0FFC5)
I (..\User\component\pid.h)(0x68F0EAFF)
I (..\User\component\filter.h)(0x68F0EAFF)
I (..\User\bsp\pwm.h)(0x68F0EAFF)
I (..\Core\Inc\tim.h)(0x68DF6BC0)
I (..\Core\Inc\main.h)(0x68F1B727)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h)(0x68AD823F)
I (..\Core\Inc\stm32f4xx_hal_conf.h)(0x68DF6BC0)
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_flash.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ex.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ramfunc.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_i2c.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_i2c_ex.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr_ex.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_spi.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h)(0x68AD823F)
I (..\User\bsp\bsp.h)(0x68F0EAFF)
I (..\User\bsp\time.h)(0x68F0EAFF)
I (..\User\module\HeightEstimation.h)(0x68F1FDF4)
F (..\User\module\xm_quadctrl.h)(0x68F49821)()
F (..\User\module\HeightEstimation.c)(0x68F200A2)(-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 ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_DveC -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 dvec/heightestimation.o -MD) F (..\User\module\HeightEstimation.c)(0x68F200A2)(-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 ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_DveC -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 dvec/heightestimation.o -MD)
I (..\User\bsp\time.h)(0x68F0EAFF) I (..\User\bsp\time.h)(0x68F0EAFF)
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8) I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
@ -1967,7 +2016,7 @@ I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8) I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
I (..\User\device\device.h)(0x68F0FFC5) I (..\User\device\device.h)(0x68F0FFC5)
I (..\User\component\filter.h)(0x68F0EAFF) I (..\User\component\filter.h)(0x68F0EAFF)
I (..\User\task\user_task.h)(0x68F1F1D6) I (..\User\task\user_task.h)(0x68F49892)
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208) I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\FreeRTOS.h)(0x68AD8208) I (..\Middlewares\Third_Party\FreeRTOS\Source\include\FreeRTOS.h)(0x68AD8208)
I (..\Core\Inc\FreeRTOSConfig.h)(0x68F0EA65) I (..\Core\Inc\FreeRTOSConfig.h)(0x68F0EA65)
@ -1979,8 +2028,121 @@ I (..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h)(0x68AD8208
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68AD8208) I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68AD8208)
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68AD8208) I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68AD8208)
F (..\User\module\HeightEstimation.h)(0x68F1FDF4)() F (..\User\module\HeightEstimation.h)(0x68F1FDF4)()
F (..\User\task\atti_esti.c)(0x68F20370)(-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 ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_DveC -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 dvec/atti_esti.o -MD) F (..\User\task\init.c)(0x68F49BE0)(-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 ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_DveC -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 dvec/init.o -MD)
I (..\User\task\user_task.h)(0x68F1F1D6) I (..\User\task\user_task.h)(0x68F49892)
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 (..\Middlewares\Third_Party\FreeRTOS\Source\include\FreeRTOS.h)(0x68AD8208)
I (..\Core\Inc\FreeRTOSConfig.h)(0x68F0EA65)
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 (..\User\component\ahrs.h)(0x68F0EAFF)
I (..\User\component\user_math.h)(0x68F0EAFF)
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\module\xm_quadctrl.h)(0x68F49821)
I (..\User\device\at9s_pro.h)(0x68F1001A)
I (..\User\device\device.h)(0x68F0FFC5)
I (..\User\component\pid.h)(0x68F0EAFF)
I (..\User\component\filter.h)(0x68F0EAFF)
F (..\User\task\user_task.c)(0x68F496CD)(-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 ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_DveC -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 dvec/user_task.o -MD)
I (..\User\task\user_task.h)(0x68F49892)
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 (..\Middlewares\Third_Party\FreeRTOS\Source\include\FreeRTOS.h)(0x68AD8208)
I (..\Core\Inc\FreeRTOSConfig.h)(0x68F0EA65)
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)
F (..\User\task\user_task.h)(0x68F49892)()
F (..\User\task\blink.c)(0x68F496CD)(-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 ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_DveC -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 dvec/blink.o -MD)
I (..\User\task\user_task.h)(0x68F49892)
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 (..\Middlewares\Third_Party\FreeRTOS\Source\include\FreeRTOS.h)(0x68AD8208)
I (..\Core\Inc\FreeRTOSConfig.h)(0x68F0EA65)
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 (..\User\bsp\pwm.h)(0x68F0EAFF)
I (..\Core\Inc\tim.h)(0x68DF6BC0)
I (..\Core\Inc\main.h)(0x68F1B727)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h)(0x68AD823F)
I (..\Core\Inc\stm32f4xx_hal_conf.h)(0x68DF6BC0)
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_flash.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ex.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ramfunc.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_i2c.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_i2c_ex.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr_ex.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_spi.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h)(0x68AD823F)
I (..\User\bsp\bsp.h)(0x68F0EAFF)
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
F (..\User\task\cmd.c)(0x68F49980)(-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 ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_DveC -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 dvec/cmd_1.o -MD)
I (..\User\task\user_task.h)(0x68F49892)
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 (..\Middlewares\Third_Party\FreeRTOS\Source\include\FreeRTOS.h)(0x68AD8208)
I (..\Core\Inc\FreeRTOSConfig.h)(0x68F0EA65)
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 (..\User\device\at9s_pro.h)(0x68F1001A)
I (..\User\component\user_math.h)(0x68F0EAFF)
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)(0x68F0FFC5)
I (..\User\module\at9s_pro_cmd.h)(0x68F49822)
I (..\User\module\xm_quadctrl.h)(0x68F49821)
I (..\User\component\pid.h)(0x68F0EAFF)
I (..\User\component\filter.h)(0x68F0EAFF)
F (..\User\task\atti_esti.c)(0x68F496CD)(-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 ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_DveC -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 dvec/atti_esti.o -MD)
I (..\User\task\user_task.h)(0x68F49892)
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208) I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8) I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8) I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
@ -2039,8 +2201,8 @@ I (..\User\component\pid.h)(0x68F0EAFF)
I (..\User\component\filter.h)(0x68F0EAFF) I (..\User\component\filter.h)(0x68F0EAFF)
I (..\User\device\bmi088.h)(0x68F0E47F) I (..\User\device\bmi088.h)(0x68F0E47F)
I (..\User\device\device.h)(0x68F0FFC5) I (..\User\device\device.h)(0x68F0FFC5)
F (..\User\task\height_cal.c)(0x68F1FDEB)(-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 ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_DveC -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 dvec/height_cal.o -MD) F (..\User\task\height_cal.c)(0x68F496CD)(-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 ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_DveC -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 dvec/height_cal.o -MD)
I (..\User\task\user_task.h)(0x68F1F1D6) I (..\User\task\user_task.h)(0x68F49892)
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208) I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8) I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8) I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
@ -2096,8 +2258,8 @@ I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h)(0x68AD823F) I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h)(0x68AD823F)
I (..\User\module\HeightEstimation.h)(0x68F1FDF4) I (..\User\module\HeightEstimation.h)(0x68F1FDF4)
I (..\User\device\at9s_pro.h)(0x68F1001A) I (..\User\device\at9s_pro.h)(0x68F1001A)
F (..\User\task\init.c)(0x68F20304)(-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 ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_DveC -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 dvec/init.o -MD) F (..\User\task\quad_ctrl.c)(0x68F49980)(-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 ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_DveC -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 dvec/quad_ctrl.o -MD)
I (..\User\task\user_task.h)(0x68F1F1D6) I (..\User\task\user_task.h)(0x68F49892)
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208) I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68AD8208)
I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8) I (D:\cangming\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8) I (D:\cangming\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
@ -2110,153 +2272,13 @@ I (..\Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F\portmacro.h
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h)(0x68AD8208) I (..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h)(0x68AD8208)
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68AD8208) I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68AD8208)
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68AD8208) I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68AD8208)
I (..\User\component\ahrs.h)(0x68F0EAFF) I (..\User\module\xm_quadctrl.h)(0x68F49821)
I (..\User\component\user_math.h)(0x68F0EAFF)
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)
F (..\User\task\main_control.c)(0x68F100F9)(-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 ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_DveC -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 dvec/main_control.o -MD)
I (..\User\task\user_task.h)(0x68F1F1D6)
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 (..\Middlewares\Third_Party\FreeRTOS\Source\include\FreeRTOS.h)(0x68AD8208)
I (..\Core\Inc\FreeRTOSConfig.h)(0x68F0EA65)
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 (..\Core\Inc\main.h)(0x68F1B727)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h)(0x68AD823F)
I (..\Core\Inc\stm32f4xx_hal_conf.h)(0x68DF6BC0)
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_flash.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ex.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ramfunc.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_i2c.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_i2c_ex.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr_ex.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_spi.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h)(0x68AD823F)
I (..\User\module\xm_quadctrl.h)(0x68F100E8)
I (..\User\device\at9s_pro.h)(0x68F1001A) I (..\User\device\at9s_pro.h)(0x68F1001A)
I (..\User\component\user_math.h)(0x68F0EAFF) I (..\User\component\user_math.h)(0x68F0EAFF)
I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0) I (D:\cangming\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8) I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8) I (D:\cangming\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
I (..\User\device\device.h)(0x68F0FFC5) I (..\User\device\device.h)(0x68F0FFC5)
I (..\User\device\buzzer.h)(0x68F0E47F) I (..\User\component\pid.h)(0x68F0EAFF)
I (..\User\bsp\pwm.h)(0x68F0EAFF) I (..\User\component\filter.h)(0x68F0EAFF)
I (..\Core\Inc\tim.h)(0x68DF6BC0) I (..\User\module\config.h)(0x68F49094)
I (..\User\bsp\bsp.h)(0x68F0EAFF)
I (..\User\bsp\time.h)(0x68F0EAFF)
I (..\User\component\ahrs.h)(0x68F0EAFF)
F (..\User\task\user_task.c)(0x68F0E603)(-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 ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_DveC -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 dvec/user_task.o -MD)
I (..\User\task\user_task.h)(0x68F1F1D6)
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 (..\Middlewares\Third_Party\FreeRTOS\Source\include\FreeRTOS.h)(0x68AD8208)
I (..\Core\Inc\FreeRTOSConfig.h)(0x68F0EA65)
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)
F (..\User\task\user_task.h)(0x68F1F1D6)()
F (..\User\task\blink.c)(0x68F101B9)(-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 ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_DveC -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 dvec/blink.o -MD)
I (..\User\task\user_task.h)(0x68F1F1D6)
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 (..\Middlewares\Third_Party\FreeRTOS\Source\include\FreeRTOS.h)(0x68AD8208)
I (..\Core\Inc\FreeRTOSConfig.h)(0x68F0EA65)
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 (..\User\bsp\pwm.h)(0x68F0EAFF)
I (..\Core\Inc\tim.h)(0x68DF6BC0)
I (..\Core\Inc\main.h)(0x68F1B727)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h)(0x68AD823F)
I (..\Core\Inc\stm32f4xx_hal_conf.h)(0x68DF6BC0)
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_flash.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ex.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ramfunc.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_i2c.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_i2c_ex.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr_ex.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_spi.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h)(0x68AD823F)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h)(0x68AD823F)
I (..\User\bsp\bsp.h)(0x68F0EAFF)
I (D:\cangming\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
F (..\User\task\rc.c)(0x68F204CB)(-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 ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_DveC -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 dvec/rc.o -MD)
I (..\User\task\user_task.h)(0x68F1F1D6)
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 (..\Middlewares\Third_Party\FreeRTOS\Source\include\FreeRTOS.h)(0x68AD8208)
I (..\Core\Inc\FreeRTOSConfig.h)(0x68F0EA65)
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 (..\User\device\at9s_pro.h)(0x68F1001A)
I (..\User\component\user_math.h)(0x68F0EAFF)
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)(0x68F0FFC5)
I (..\User\module\at9s_pro_cmd.h)(0x68E13166)

Binary file not shown.

Binary file not shown.

20
MDK-ARM/DveC/cmd_1.d Normal file
View File

@ -0,0 +1,20 @@
dvec/cmd_1.o: ..\User\task\cmd.c ..\User\task\user_task.h \
..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h \
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdint.h \
D:\cangming\ARM\ARMCLANG\Bin\..\include\stddef.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 \
..\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 \
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdbool.h \
..\User\device\device.h ..\User\module\at9s_pro_cmd.h \
..\User\module\xm_quadctrl.h ..\User\component\pid.h \
..\User\component\filter.h

BIN
MDK-ARM/DveC/cmd_1.o Normal file

Binary file not shown.

View File

@ -1,2 +1,11 @@
dvec/config.o: ..\User\module\config.c ..\User\module\config.h \ dvec/config.o: ..\User\module\config.c ..\User\module\config.h \
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdint.h D:\cangming\ARM\ARMCLANG\Bin\..\include\stdint.h \
..\User\module\xm_quadctrl.h ..\User\device\at9s_pro.h \
..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h \
D:\cangming\ARM\ARMCLANG\Bin\..\include\stddef.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 \
..\User\device\device.h ..\User\component\pid.h \
..\User\component\filter.h

Binary file not shown.

View File

@ -11,6 +11,7 @@ dvec/height_cal.o: ..\User\task\height_cal.c ..\User\task\user_task.h \
..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h \ ..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h \
..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h \ ..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h \
..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h \ ..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h \
..\User\task\user_task.h \
..\Middlewares\Third_Party\FreeRTOS\Source\include\timers.h \ ..\Middlewares\Third_Party\FreeRTOS\Source\include\timers.h \
..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h \ ..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h \
..\User\device\bmi088.h \ ..\User\device\bmi088.h \

Binary file not shown.

View File

@ -14,4 +14,7 @@ dvec/init.o: ..\User\task\init.c ..\User\task\user_task.h \
..\User\component\ahrs.h ..\User\component\user_math.h \ ..\User\component\ahrs.h ..\User\component\user_math.h \
D:\cangming\ARM\ARMCLANG\Bin\..\include\float.h \ D:\cangming\ARM\ARMCLANG\Bin\..\include\float.h \
D:\cangming\ARM\ARMCLANG\Bin\..\include\math.h \ D:\cangming\ARM\ARMCLANG\Bin\..\include\math.h \
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdbool.h D:\cangming\ARM\ARMCLANG\Bin\..\include\stdbool.h \
..\User\module\xm_quadctrl.h ..\User\device\at9s_pro.h \
..\User\device\device.h ..\User\component\pid.h \
..\User\component\filter.h

Binary file not shown.

View File

@ -47,6 +47,7 @@ dvec/main_control.o: ..\User\task\main_control.c ..\User\task\user_task.h \
D:\cangming\ARM\ARMCLANG\Bin\..\include\float.h \ D:\cangming\ARM\ARMCLANG\Bin\..\include\float.h \
D:\cangming\ARM\ARMCLANG\Bin\..\include\math.h \ D:\cangming\ARM\ARMCLANG\Bin\..\include\math.h \
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdbool.h \ D:\cangming\ARM\ARMCLANG\Bin\..\include\stdbool.h \
..\User\device\device.h ..\User\device\buzzer.h ..\User\bsp\pwm.h \ ..\User\device\device.h ..\User\component\pid.h \
..\User\component\filter.h ..\User\device\buzzer.h ..\User\bsp\pwm.h \
..\Core\Inc\tim.h ..\Core\Inc\main.h ..\User\bsp\bsp.h \ ..\Core\Inc\tim.h ..\Core\Inc\main.h ..\User\bsp\bsp.h \
..\User\bsp\time.h ..\User\component\ahrs.h ..\User\bsp\time.h ..\User\component\ahrs.h

Binary file not shown.

20
MDK-ARM/DveC/quad_ctrl.d Normal file
View File

@ -0,0 +1,20 @@
dvec/quad_ctrl.o: ..\User\task\quad_ctrl.c ..\User\task\user_task.h \
..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h \
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdint.h \
D:\cangming\ARM\ARMCLANG\Bin\..\include\stddef.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 \
..\User\module\xm_quadctrl.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 \
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdbool.h \
..\User\device\device.h ..\User\component\pid.h \
..\User\component\filter.h ..\User\module\config.h

BIN
MDK-ARM/DveC/quad_ctrl.o Normal file

Binary file not shown.

Binary file not shown.

View File

@ -1 +1,43 @@
dvec/xm_quadctrl.o: ..\User\module\xm_quadctrl.c dvec/xm_quadctrl.o: ..\User\module\xm_quadctrl.c \
..\User\module\xm_quadctrl.h ..\User\device\at9s_pro.h \
..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h \
D:\cangming\ARM\ARMCLANG\Bin\..\include\stdint.h \
D:\cangming\ARM\ARMCLANG\Bin\..\include\stddef.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 \
..\User\device\device.h ..\User\component\pid.h \
..\User\component\filter.h ..\User\bsp\pwm.h ..\Core\Inc\tim.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_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_i2c.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_i2c_ex.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_spi.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h \
..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h \
..\User\bsp\bsp.h ..\User\bsp\time.h ..\User\module\HeightEstimation.h

Binary file not shown.

View File

@ -1,387 +0,0 @@
/*
*/
#include "cmd.h"
#include <string.h>
/* USER INCLUDE BEGIN */
/* USER INCLUDE END */
/* USER DEFINE BEGIN */
/* USER DEFINE END */
/**
* @brief
*
* @param cmd
* @param behavior
* @return uint16_t
*/
static inline CMD_KeyValue_t CMD_BehaviorToKey(CMD_t *cmd,
CMD_Behavior_t behavior) {
return cmd->param->map.key_map[behavior].key;
}
static inline CMD_ActiveType_t CMD_BehaviorToActive(CMD_t *cmd,
CMD_Behavior_t behavior) {
return cmd->param->map.key_map[behavior].active;
}
/**
* @brief
*
* @param rc
* @param key
* @param stateful
* @return true
* @return false
*/
static bool CMD_KeyPressedRc(const CMD_RC_t *rc, CMD_KeyValue_t key) {
/* 按下按键为鼠标左、右键 */
if (key == CMD_L_CLICK) {
return rc->mouse.l_click;
}
if (key == CMD_R_CLICK) {
return rc->mouse.r_click;
}
return rc->key & (1u << key);
}
static bool CMD_BehaviorOccurredRc(const CMD_RC_t *rc, CMD_t *cmd,
CMD_Behavior_t behavior) {
CMD_KeyValue_t key = CMD_BehaviorToKey(cmd, behavior);
CMD_ActiveType_t active = CMD_BehaviorToActive(cmd, behavior);
bool now_key_pressed, last_key_pressed;
/* 按下按键为鼠标左、右键 */
if (key == CMD_L_CLICK) {
now_key_pressed = rc->mouse.l_click;
last_key_pressed = cmd->mouse_last.l_click;
} else if (key == CMD_R_CLICK) {
now_key_pressed = rc->mouse.r_click;
last_key_pressed = cmd->mouse_last.r_click;
} else {
now_key_pressed = rc->key & (1u << key);
last_key_pressed = cmd->key_last & (1u << key);
}
switch (active) {
case CMD_ACTIVE_PRESSING:
return now_key_pressed && !last_key_pressed;
case CMD_ACTIVE_RASING:
return !now_key_pressed && last_key_pressed;
case CMD_ACTIVE_PRESSED:
return now_key_pressed;
}
}
/**
* @brief pc行为逻辑
*
* @param rc
* @param cmd
* @param dt_sec
*/
static void CMD_PcLogic(const CMD_RC_t *rc, CMD_t *cmd, float dt_sec) {
cmd->gimbal.mode = GIMBAL_MODE_ABSOLUTE;
/* 云台设置为鼠标控制欧拉角的变化,底盘的控制向量设置为零 */
cmd->gimbal.delta_eulr.yaw =
(float)rc->mouse.x * dt_sec * cmd->param->sens_mouse;
cmd->gimbal.delta_eulr.pit =
(float)(-rc->mouse.y) * dt_sec * cmd->param->sens_mouse;
cmd->chassis.ctrl_vec.vx = cmd->chassis.ctrl_vec.vy = 0.0f;
cmd->shoot.reverse_trig = false;
/* 按键行为映射相关逻辑 */
if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_FORE)) {
cmd->chassis.ctrl_vec.vy += cmd->param->move.move_sense;
}
if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_BACK)) {
cmd->chassis.ctrl_vec.vy -= cmd->param->move.move_sense;
}
if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_LEFT)) {
cmd->chassis.ctrl_vec.vx -= cmd->param->move.move_sense;
}
if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_RIGHT)) {
cmd->chassis.ctrl_vec.vx += cmd->param->move.move_sense;
}
if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_ACCELERATE)) {
cmd->chassis.ctrl_vec.vx *= cmd->param->move.move_fast_sense;
cmd->chassis.ctrl_vec.vy *= cmd->param->move.move_fast_sense;
}
if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_DECELEBRATE)) {
cmd->chassis.ctrl_vec.vx *= cmd->param->move.move_slow_sense;
cmd->chassis.ctrl_vec.vy *= cmd->param->move.move_slow_sense;
}
if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_FIRE)) {
/* 切换至开火模式,设置相应的射击频率和弹丸初速度 */
cmd->shoot.mode = SHOOT_MODE_LOADED;
cmd->shoot.fire = true;
} else {
/* 切换至准备模式,停止射击 */
cmd->shoot.mode = SHOOT_MODE_LOADED;
cmd->shoot.fire = false;
}
if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_FIRE_MODE)) {
/* 每按一次依次切换开火下一个模式 */
cmd->shoot.fire_mode++;
cmd->shoot.fire_mode %= FIRE_MODE_NUM;
}
if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_ROTOR)) {
/* 切换到小陀螺模式 */
cmd->chassis.mode = CHASSIS_MODE_ROTOR;
cmd->chassis.mode_rotor = ROTOR_MODE_RAND;
}
if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_OPENCOVER)) {
/* 每按一次开、关弹舱盖 */
cmd->shoot.cover_open = !cmd->shoot.cover_open;
}
if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_BUFF)) {
if (cmd->ai_status == AI_STATUS_HITSWITCH) {
/* 停止ai的打符模式停用host控制 */
CMD_RefereeAdd(&(cmd->referee), CMD_UI_HIT_SWITCH_STOP);
cmd->host_overwrite = false;
cmd->ai_status = AI_STATUS_STOP;
} else if (cmd->ai_status == AI_STATUS_AUTOAIM) {
/* 自瞄模式中切换失败提醒 */
} else {
/* ai切换至打符模式启用host控制 */
CMD_RefereeAdd(&(cmd->referee), CMD_UI_HIT_SWITCH_START);
cmd->ai_status = AI_STATUS_HITSWITCH;
cmd->host_overwrite = true;
}
}
if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_AUTOAIM)) {
if (cmd->ai_status == AI_STATUS_AUTOAIM) {
/* 停止ai的自瞄模式停用host控制 */
cmd->host_overwrite = false;
cmd->ai_status = AI_STATUS_STOP;
CMD_RefereeAdd(&(cmd->referee), CMD_UI_AUTO_AIM_STOP);
} else {
/* ai切换至自瞄模式启用host控制 */
cmd->ai_status = AI_STATUS_AUTOAIM;
cmd->host_overwrite = true;
CMD_RefereeAdd(&(cmd->referee), CMD_UI_AUTO_AIM_START);
}
} else {
cmd->host_overwrite = false;
// TODO: 修复逻辑
}
if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_REVTRIG)) {
/* 按下拨弹反转 */
cmd->shoot.reverse_trig = true;
}
if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_FOLLOWGIMBAL35)) {
cmd->chassis.mode = CHASSIS_MODE_FOLLOW_GIMBAL_35;
}
/* 保存当前按下的键位状态 */
cmd->key_last = rc->key;
memcpy(&(cmd->mouse_last), &(rc->mouse), sizeof(cmd->mouse_last));
}
/**
* @brief rc行为逻辑
*
* @param rc
* @param cmd
* @param dt_sec
*/
static void CMD_RcLogic(const CMD_RC_t *rc, CMD_t *cmd, float dt_sec) {
switch (rc->sw_l) {
/* 左拨杆相应行为选择和解析 */
case CMD_SW_UP:
cmd->chassis.mode = CHASSIS_MODE_BREAK;
break;
case CMD_SW_MID:
cmd->chassis.mode = CHASSIS_MODE_FOLLOW_GIMBAL;
break;
case CMD_SW_DOWN:
cmd->chassis.mode = CHASSIS_MODE_ROTOR;
cmd->chassis.mode_rotor = ROTOR_MODE_CW;
break;
case CMD_SW_ERR:
cmd->chassis.mode = CHASSIS_MODE_RELAX;
break;
}
switch (rc->sw_r) {
/* 右拨杆相应行为选择和解析*/
case CMD_SW_UP:
cmd->gimbal.mode = GIMBAL_MODE_ABSOLUTE;
cmd->shoot.mode = SHOOT_MODE_SAFE;
break;
case CMD_SW_MID:
cmd->gimbal.mode = GIMBAL_MODE_ABSOLUTE;
cmd->shoot.fire = false;
cmd->shoot.mode = SHOOT_MODE_LOADED;
break;
case CMD_SW_DOWN:
cmd->gimbal.mode = GIMBAL_MODE_ABSOLUTE;
cmd->shoot.mode = SHOOT_MODE_LOADED;
cmd->shoot.fire_mode = FIRE_MODE_SINGLE;
cmd->shoot.fire = true;
break;
/*
case CMD_SW_UP:
cmd->gimbal.mode = GIMBAL_MODE_RELAX;
cmd->shoot.mode = SHOOT_MODE_SAFE;
break;
case CMD_SW_MID:
cmd->gimbal.mode = GIMBAL_MODE_RELAX;
cmd->shoot.fire = false;
cmd->shoot.mode = SHOOT_MODE_LOADED;
break;
case CMD_SW_DOWN:
cmd->gimbal.mode = GIMBAL_MODE_RELAX;
cmd->shoot.mode = SHOOT_MODE_LOADED;
cmd->shoot.fire_mode = FIRE_MODE_SINGLE;
cmd->shoot.fire = true;
break;
*/
case CMD_SW_ERR:
cmd->gimbal.mode = GIMBAL_MODE_RELAX;
cmd->shoot.mode = SHOOT_MODE_RELAX;
}
/* 将操纵杆的对应值转换为底盘的控制向量和云台变化的欧拉角 */
cmd->chassis.ctrl_vec.vx = rc->ch_l_x;
cmd->chassis.ctrl_vec.vy = rc->ch_l_y;
cmd->gimbal.delta_eulr.yaw = rc->ch_r_x * dt_sec * cmd->param->sens_rc;
cmd->gimbal.delta_eulr.pit = rc->ch_r_y * dt_sec * cmd->param->sens_rc;
}
/**
* @brief rc失控时机器人恢复放松模式
*
* @param cmd
*/
static void CMD_RcLostLogic(CMD_t *cmd) {
/* 机器人底盘、云台、射击运行模式恢复至放松模式 */
cmd->chassis.mode = CHASSIS_MODE_RELAX;
cmd->gimbal.mode = GIMBAL_MODE_RELAX;
cmd->shoot.mode = SHOOT_MODE_RELAX;
}
/**
* @brief
*
* @param cmd
* @param param
* @return int8_t 0
*/
int8_t CMD_Init(CMD_t *cmd, const CMD_Params_t *param) {
/* 指针检测 */
if (cmd == NULL) return -1;
if (param == NULL) return -1;
/* 设置机器人的命令参数初始化控制方式为rc控制 */
cmd->pc_ctrl = false;
cmd->param = param;
return 0;
}
/**
* @brief
*
* @param cmd
* @return true
* @return false
*/
inline bool CMD_CheckHostOverwrite(CMD_t *cmd) { return cmd->host_overwrite; }
/**
* @brief
*
* @param rc
* @param cmd
* @param dt_sec
* @return int8_t 0
*/
int8_t CMD_ParseRc(CMD_RC_t *rc, CMD_t *cmd, float dt_sec) {
/* 指针检测 */
if (rc == NULL) return -1;
if (cmd == NULL) return -1;
/* 在pc控制和rc控制间切换 */
if (CMD_KeyPressedRc(rc, CMD_KEY_SHIFT) &&
CMD_KeyPressedRc(rc, CMD_KEY_CTRL) && CMD_KeyPressedRc(rc, CMD_KEY_Q))
cmd->pc_ctrl = true;
if (CMD_KeyPressedRc(rc, CMD_KEY_SHIFT) &&
CMD_KeyPressedRc(rc, CMD_KEY_CTRL) && CMD_KeyPressedRc(rc, CMD_KEY_E))
cmd->pc_ctrl = false;
/*c当rc丢控时恢复机器人至默认状态 */
if ((rc->sw_l == CMD_SW_ERR) || (rc->sw_r == CMD_SW_ERR)) {
CMD_RcLostLogic(cmd);
} else {
if (cmd->pc_ctrl) {
CMD_PcLogic(rc, cmd, dt_sec);
} else {
CMD_RcLogic(rc, cmd, dt_sec);
}
}
return 0;
}
/**
* @brief
*
* @param host host数据
* @param cmd
* @param dt_sec
* @return int8_t 0
*/
int8_t CMD_ParseHost(const CMD_Host_t *host, CMD_t *cmd, float dt_sec) {
(void)dt_sec; /* 未使用dt_sec消除警告 */
/* 指针检测 */
if (host == NULL) return -1;
if (cmd == NULL) return -1;
/* 云台欧拉角设置为host相应的变化的欧拉角 */
cmd->gimbal.delta_eulr.yaw = host->gimbal_delta.yaw;
cmd->gimbal.delta_eulr.pit = host->gimbal_delta.pit;
/* host射击命令设置不同的射击频率和弹丸初速度 */
if (host->fire) {
cmd->shoot.mode = SHOOT_MODE_LOADED;
cmd->shoot.fire = true;
} else {
cmd->shoot.mode = SHOOT_MODE_SAFE;
}
return 0;
}
/**
* @brief Referee发送的命令
*
* @param ref
* @param cmd
* @return int8_t 0
*/
int8_t CMD_RefereeAdd(CMD_RefereeCmd_t *ref, CMD_UI_t cmd) {
/* 指针检测 */
if (ref == NULL) return -1;
/* 越界检测 */
if (ref->counter >= CMD_REFEREE_MAX_NUM || ref->counter < 0) return -1;
/* 添加机器人当前行为状态到画图的命令队列中 */
ref->cmd[ref->counter] = cmd;
ref->counter++;
return 0;
}
/* USER FUNCTION BEGIN */
/* USER FUNCTION END */

View File

@ -1,318 +0,0 @@
/*
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include <stdbool.h>
#include <stdint.h>
#include "component/ahrs.h"
/* USER INCLUDE BEGIN */
/* USER INCLUDE END */
#define CMD_REFEREE_MAX_NUM (3) /* Lines 16 omitted */
/* USER DEFINE BEGIN */
/* USER DEFINE END */
/* 机器人型号 */
typedef enum {
ROBOT_MODEL_INFANTRY = 0, /* 步兵机器人 */
ROBOT_MODEL_HERO, /* 英雄机器人 */
ROBOT_MODEL_ENGINEER, /* 工程机器人 */
ROBOT_MODEL_DRONE, /* 空中机器人 */
ROBOT_MODEL_SENTRY, /* 哨兵机器人 */
ROBOT_MODEL_NUM, /* 型号数量 */
} CMD_RobotModel_t;
/* 底盘运行模式 */
typedef enum {
CHASSIS_MODE_RELAX, /* 放松模式,电机不输出。一般情况底盘初始化之后的模式 */
CHASSIS_MODE_BREAK, /* 刹车模式,电机闭环控制保持静止。用于机器人停止状态 */
CHASSIS_MODE_FOLLOW_GIMBAL, /* 通过闭环控制使车头方向跟随云台 */
CHASSIS_MODE_FOLLOW_GIMBAL_35, /* 通过闭环控制使车头方向35度跟随云台 */
CHASSIS_MODE_ROTOR, /* 小陀螺模式,通过闭环控制使底盘不停旋转 */
CHASSIS_MODE_INDENPENDENT, /* 独立模式。底盘运行不受云台影响 */
CHASSIS_MODE_OPEN, /* 开环模式。底盘运行不受PID控制直接输出到电机 */
} CMD_ChassisMode_t;
/* 云台运行模式 */
typedef enum {
GIMBAL_MODE_RELAX, /* 放松模式,电机不输出。一般情况云台初始化之后的模式 */
GIMBAL_MODE_ABSOLUTE, /* 绝对坐标系控制,控制在空间内的绝对姿态 */
GIMBAL_MODE_RELATIVE, /* 相对坐标系控制,控制相对于底盘的姿态 */
} CMD_GimbalMode_t;
/* 射击运行模式 */
typedef enum {
SHOOT_MODE_RELAX, /* 放松模式,电机不输出 */
SHOOT_MODE_SAFE, /* 保险模式,电机闭环控制保持静止 */
SHOOT_MODE_LOADED, /* 上膛模式,摩擦轮开启。随时准备开火 */
} CMD_ShootMode_t;
typedef enum {
FIRE_MODE_SINGLE, /* 单发开火模式 */
FIRE_MODE_BURST, /* N连发开火模式 */
FIRE_MODE_CONT, /* 持续开火模式 */
FIRE_MODE_NUM,
} CMD_FireMode_t;
/* 小陀螺转动模式 */
typedef enum {
ROTOR_MODE_CW, /* 顺时针转动 */
ROTOR_MODE_CCW, /* 逆时针转动 */
ROTOR_MODE_RAND, /* 随机转动 */
} CMD_RotorMode_t;
/* 底盘控制命令 */
typedef struct {
CMD_ChassisMode_t mode; /* 底盘运行模式 */
CMD_RotorMode_t mode_rotor; /* 小陀螺转动模式 */
MoveVector_t ctrl_vec; /* 底盘控制向量 */
} CMD_ChassisCmd_t;
/* 云台控制命令 */
typedef struct {
CMD_GimbalMode_t mode; /* 云台运行模式 */
AHRS_Eulr_t delta_eulr; /* 欧拉角变化角度 */
} CMD_GimbalCmd_t;
/* 射击控制命令 */
typedef struct {
CMD_ShootMode_t mode; /* 射击运行模式 */
CMD_FireMode_t fire_mode; /* 开火模式 */
bool fire; /*开火*/
bool cover_open; /* 弹舱盖开关 */
bool reverse_trig; /* 拨弹电机状态 */
} CMD_ShootCmd_t;
/* 拨杆位置 */
typedef enum {
CMD_SW_ERR = 0,
CMD_SW_UP = 1,
CMD_SW_MID = 3,
CMD_SW_DOWN = 2,
} CMD_SwitchPos_t;
/* 键盘按键值 */
typedef enum {
CMD_KEY_W = 0,
CMD_KEY_S,
CMD_KEY_A,
CMD_KEY_D,
CMD_KEY_SHIFT,
CMD_KEY_CTRL,
CMD_KEY_Q,
CMD_KEY_E,
CMD_KEY_R,
CMD_KEY_F,
CMD_KEY_G,
CMD_KEY_Z,
CMD_KEY_X,
CMD_KEY_C,
CMD_KEY_V,
CMD_KEY_B,
CMD_L_CLICK,
CMD_R_CLICK,
CMD_KEY_NUM,
} CMD_KeyValue_t;
/* 行为值序列 */
typedef enum {
CMD_BEHAVIOR_FORE = 0, /* 向前 */
CMD_BEHAVIOR_BACK, /* 向后 */
CMD_BEHAVIOR_LEFT, /* 向左 */
CMD_BEHAVIOR_RIGHT, /* 向右 */
CMD_BEHAVIOR_ACCELERATE, /* 加速 */
CMD_BEHAVIOR_DECELEBRATE, /* 减速 */
CMD_BEHAVIOR_FIRE, /* 开火 */
CMD_BEHAVIOR_FIRE_MODE, /* 切换开火模式 */
CMD_BEHAVIOR_BUFF, /* 打符模式 */
CMD_BEHAVIOR_AUTOAIM, /* 自瞄模式 */
CMD_BEHAVIOR_OPENCOVER, /* 弹舱盖开关 */
CMD_BEHAVIOR_ROTOR, /* 小陀螺模式 */
CMD_BEHAVIOR_REVTRIG, /* 反转拨弹 */
CMD_BEHAVIOR_FOLLOWGIMBAL35, /* 跟随云台呈35度 */
CMD_BEHAVIOR_NUM,
} CMD_Behavior_t;
typedef enum {
CMD_ACTIVE_PRESSING, /* 按下时触发 */
CMD_ACTIVE_RASING, /* 抬起时触发 */
CMD_ACTIVE_PRESSED, /* 按住时触发 */
} CMD_ActiveType_t;
typedef struct {
CMD_ActiveType_t active;
CMD_KeyValue_t key;
} CMD_KeyMapItem_t;
/* 行为映射的对应按键数组 */
typedef struct {
CMD_KeyMapItem_t key_map[CMD_BEHAVIOR_NUM];
} CMD_KeyMap_Params_t;
/* 位移灵敏度参数 */
typedef struct {
float move_sense; /* 移动灵敏度 */
float move_fast_sense; /* 加速灵敏度 */
float move_slow_sense; /* 减速灵敏度 */
} CMD_Move_Params_t;
typedef struct {
uint16_t width;
uint16_t height;
} CMD_Screen_t;
/* 命令参数 */
typedef struct {
float sens_mouse; /* 鼠标灵敏度 */
float sens_rc; /* 遥控器摇杆灵敏度 */
CMD_KeyMap_Params_t map; /* 按键映射行为命令 */
CMD_Move_Params_t move; /* 位移灵敏度参数 */
CMD_Screen_t screen; /* 屏幕分辨率参数 */
} CMD_Params_t;
/* AI行为状态 */
typedef enum {
AI_STATUS_STOP, /* 停止状态 */
AI_STATUS_AUTOAIM, /* 自瞄状态 */
AI_STATUS_HITSWITCH, /* 打符状态 */
AI_STATUS_AUTOMATIC /* 自动状态 */
} CMD_AI_Status_t;
/* UI所用行为状态 */
typedef enum {
CMD_UI_NOTHING, /* 当前无状态 */
CMD_UI_AUTO_AIM_START, /* 自瞄状态开启 */
CMD_UI_AUTO_AIM_STOP, /* 自瞄状态关闭 */
CMD_UI_HIT_SWITCH_START, /* 打符状态开启 */
CMD_UI_HIT_SWITCH_STOP /* 打符状态关闭 */
} CMD_UI_t;
/*裁判系统发送的命令*/
typedef struct {
CMD_UI_t cmd[CMD_REFEREE_MAX_NUM]; /* 命令数组 */
uint8_t counter; /* 命令计数 */
} CMD_RefereeCmd_t;
typedef struct {
bool pc_ctrl; /* 是否使用键鼠控制 */
bool host_overwrite; /* 是否Host控制 */
uint16_t key_last; /* 上次按键键值 */
struct {
int16_t x;
int16_t y;
int16_t z;
bool l_click; /* 左键 */
bool r_click; /* 右键 */
} mouse_last; /* 鼠标值 */
CMD_AI_Status_t ai_status; /* AI状态 */
const CMD_Params_t *param; /* 命令参数 */
CMD_ChassisCmd_t chassis; /* 底盘控制命令 */
CMD_GimbalCmd_t gimbal; /* 云台控制命令 */
CMD_ShootCmd_t shoot; /* 射击控制命令 */
CMD_RefereeCmd_t referee; /* 裁判系统发送命令 */
} CMD_t;
typedef struct {
float ch_l_x; /* 遥控器左侧摇杆横轴值,上为正 */
float ch_l_y; /* 遥控器左侧摇杆纵轴值,右为正 */
float ch_r_x; /* 遥控器右侧摇杆横轴值,上为正 */
float ch_r_y; /* 遥控器右侧摇杆纵轴值,右为正 */
float ch_res; /* 第五通道值 */
CMD_SwitchPos_t sw_r; /* 右侧拨杆位置 */
CMD_SwitchPos_t sw_l; /* 左侧拨杆位置 */
struct {
int16_t x;
int16_t y;
int16_t z;
bool l_click; /* 左键 */
bool r_click; /* 右键 */
} mouse; /* 鼠标值 */
uint16_t key; /* 按键值 */
uint16_t res; /* 保留,未启用 */
} CMD_RC_t;
typedef struct {
AHRS_Eulr_t gimbal_delta; /* 欧拉角的变化量 */
struct {
float vx; /* x轴移动速度 */
float vy; /* y轴移动速度 */
float wz; /* z轴转动速度 */
} chassis_move_vec; /* 底盘移动向量 */
bool fire; /* 开火状态 */
} CMD_Host_t;
/**
* @brief
*
* @param rc
* @param cmd
*/
int8_t CMD_Init(CMD_t *cmd, const CMD_Params_t *param);
/**
* @brief
*
* @param cmd
* @return true
* @return false
*/
bool CMD_CheckHostOverwrite(CMD_t *cmd);
/**
* @brief
*
* @param rc
* @param cmd
* @param dt_sec
* @return int8_t 0
*/
int8_t CMD_ParseRc(CMD_RC_t *rc, CMD_t *cmd, float dt_sec);
/**
* @brief
*
* @param host host数据
* @param cmd
* @param dt_sec
* @return int8_t 0
*/
int8_t CMD_ParseHost(const CMD_Host_t *host, CMD_t *cmd, float dt_sec);
/**
* @brief Referee发送的命令
*
* @param ref
* @param cmd
* @return int8_t 0
*/
int8_t CMD_RefereeAdd(CMD_RefereeCmd_t *ref, CMD_UI_t cmd);
/* USER FUNCTION BEGIN */
/* USER FUNCTION END */
#ifdef __cplusplus
}
#endif

View File

@ -43,25 +43,9 @@ int8_t COMP_AT9S_CMD_ParseRc(const DEVICE_AT9S_t *rc, COMP_AT9S_CMD_t *at9s_cmd)
if(fabs(at9s_cmd->ch_r_x)>=1.0f)at9s_cmd->ch_r_x= at9s_cmd->ch_r_x>0?1.0f:-1.0f; if(fabs(at9s_cmd->ch_r_x)>=1.0f)at9s_cmd->ch_r_x= at9s_cmd->ch_r_x>0?1.0f:-1.0f;
if(fabs(at9s_cmd->ch_r_y)>=1.0f)at9s_cmd->ch_r_y= at9s_cmd->ch_r_y>0?1.0f:-1.0f; if(fabs(at9s_cmd->ch_r_y)>=1.0f)at9s_cmd->ch_r_y= at9s_cmd->ch_r_y>0?1.0f:-1.0f;
if(rc->online == true ||rc->data.key_D == AT9S_CMD_SW_UP)at9s_cmd->stop = false;
at9s_cmd->chassis_ctrl_vec.x = at9s_cmd->ch_r_x; else if(rc->online == false || rc->data.key_D == AT9S_CMD_SW_DOWN)at9s_cmd->stop = true;
at9s_cmd->chassis_ctrl_vec.y = at9s_cmd->ch_r_y; else at9s_cmd->stop = true;
at9s_cmd->gimbal_yaw_ctrl_vec.w = at9s_cmd->ch_l_x;
at9s_cmd->gimbal_pit_ctrl_vec.w = at9s_cmd->ch_l_y;
if(rc->online == false ||rc->data.key_H == AT9S_CMD_SW_UP)at9s_cmd->mode = MODE_CMD_BREAKING_CONTROL;
else if(rc->data.key_E == AT9S_CMD_SW_DOWN)at9s_cmd->mode = MODE_CMD_ONLT_GIMBAL;
else if(rc->data.key_E == AT9S_CMD_SW_MID)at9s_cmd->mode = MODE_CMD_FOLLOW;
else if(rc->data.key_E == AT9S_CMD_SW_UP)at9s_cmd->mode = MODE_CMD_SPIN;
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->friction = false;
else if(rc->data.key_G == AT9S_CMD_SW_MID||rc->data.key_G == AT9S_CMD_SW_UP) at9s_cmd->friction = true;
if(rc->data.key_G == AT9S_CMD_SW_UP)at9s_cmd->shoot = true;
else at9s_cmd->shoot = false;
at9s_cmd->online = rc->online; at9s_cmd->online = rc->online;
return 0; return 0;

View File

@ -19,32 +19,15 @@ typedef enum {
typedef struct typedef struct
{ {
bool online; bool online;
bool stop;
int8_t mode; int8_t mode;
bool ai;
bool friction;
bool shoot;
float ch_l_x; /* <20><>ҡ<EFBFBD><D2A1> X */ float ch_l_x; /* <20><>ҡ<EFBFBD><D2A1> X */
float ch_l_y; /* <20><>ҡ<EFBFBD><D2A1> Y<><59><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD> */ float ch_l_y; /* <20><>ҡ<EFBFBD><D2A1> Y<><59><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD> */
float ch_r_x; /* <20><>ҡ<EFBFBD><D2A1> X */ float ch_r_x; /* <20><>ҡ<EFBFBD><D2A1> X */
float ch_r_y; /* <20><>ҡ<EFBFBD><D2A1> Y */ float ch_r_y; /* <20><>ҡ<EFBFBD><D2A1> Y */
struct{
float x;
float y;
}chassis_ctrl_vec;
struct{
float w;
}gimbal_yaw_ctrl_vec;
struct{
float w;
}gimbal_pit_ctrl_vec;
} COMP_AT9S_CMD_t; } COMP_AT9S_CMD_t;
int8_t COMP_AT9S_CMD_ParseRc(const DEVICE_AT9S_t *rc, COMP_AT9S_CMD_t *at9s_cmd); int8_t COMP_AT9S_CMD_ParseRc(const DEVICE_AT9S_t *rc, COMP_AT9S_CMD_t *at9s_cmd);

View File

@ -15,7 +15,110 @@
// 机器人参数配置 // 机器人参数配置
Config_RobotParam_t robot_config = { Config_RobotParam_t robot_config = {
.quad_params = {
.ctrl_freq = {
.pos_alt=100,
.pos_vel=100,
.att_agl=250,
.att_omg=1000
},
.baseThrottle=0.3,
.pid = {
.pit_agl = {
.k = 1.0f,
.p = 0.8f,
.i = 0.05f,
.d = 0.0f,
.i_limit = 0.3f,
.out_limit = 1.0f,
.d_cutoff_freq = 0.0f,
.range = 0.0f
},
.rol_agl = {
.k = 1.0f,
.p = 0.8f,
.i = 0.05f,
.d = 0.0f,
.i_limit = 0.3f,
.out_limit = 1.0f,
.d_cutoff_freq = 0.0f,
.range = 0.0f
},
.yaw_agl = {
.k = 1.0f,
.p = 0.8f,
.i = 0.05f,
.d = 0.0f,
.i_limit = 0.3f,
.out_limit = 1.0f,
.d_cutoff_freq = 0.0f,
.range = 0.0f
},
.pit_omg = {
.k = 1.0f,
.p = 0.25f,
.i = 0.05f,
.d = 0.01f,
.i_limit = 0.05f,
.out_limit = 0.2f,
.d_cutoff_freq = 30.0f,
.range = 0.0f
},
.rol_omg = {
.k = 1.0f,
.p = 0.25f,
.i = 0.05f,
.d = 0.01f,
.i_limit = 0.05f,
.out_limit = 0.2f,
.d_cutoff_freq = 30.0f,
.range = 0.0f
},
.yaw_omg = {
.k = 1.0f,
.p = 0.25f,
.i = 0.05f,
.d = 0.01f,
.i_limit = 0.05f,
.out_limit = 0.2f,
.d_cutoff_freq = 30.0f,
.range = 0.0f
},
.alt_pos = {
.k = 0.25f,
.p = 1.0f,
.i = 0.05f,
.d = 0.00f,
.i_limit = 0.5f,
.out_limit = 3.0f,
.d_cutoff_freq = 0.0f,
.range = 0.0f
},
.alt_vel = {
.k = 0.08f,
.p = 2.2f,
.i = 0.05f,
.d = 0.01f,
.i_limit = 0.05f,
.out_limit = 0.2f,
.d_cutoff_freq = -1.0f,
.range = 0.0f
},
},
.expect_status_limit = {
.yaw_omg = 1.0f,
.rol_agl = 0.1745329f,
.pit_agl = 0.1745329f
},
.motor_limit = {
.min_output = 0.1f,
.max_output = 0.9f
},
}
}; };

View File

@ -9,9 +9,9 @@ extern "C" {
#endif #endif
#include <stdint.h> #include <stdint.h>
#include "module/xm_quadctrl.h"
typedef struct { typedef struct {
Quad_Params_t quad_params;
} Config_RobotParam_t; } Config_RobotParam_t;
/* Exported functions prototypes -------------------------------------------- */ /* Exported functions prototypes -------------------------------------------- */

View File

@ -1,6 +1,28 @@
//#include "xm_quadctrl.h" /* Includes ----------------------------------------------------------------- */
//#include "component/pid.h" #include "xm_quadctrl.h"
//#include "bsp/pwm.h" #include "component/pid.h"
#include "bsp/pwm.h"
#include "bsp/time.h"
#include "module/HeightEstimation.h"
#include "component/filter.h"
// 电机布局:
// [0] 前右 (CW)
// [1] 前左 (CCW)
// [2] 后左 (CW)
// [3] 后右 (CCW)
//低通滤波初始化和计算
//// PID控制器实例 //// PID控制器实例
@ -9,7 +31,6 @@
//KPID_t yaw_rate_pid; // 偏航角速度环PID //KPID_t yaw_rate_pid; // 偏航角速度环PID
//KPID_t altitude_pos_pid; // 高度环PID //KPID_t altitude_pos_pid; // 高度环PID
//KPID_t altitude_vel_pid; // 高度环PID //KPID_t altitude_vel_pid; // 高度环PID
//// PID参数配置 //// PID参数配置
//KPID_Params_t angle_pid_params = { //KPID_Params_t angle_pid_params = {
// .k = 1.0f, // 控制器增益 // .k = 1.0f, // 控制器增益
@ -21,7 +42,6 @@
// .d_cutoff_freq = 0.0f, // 截止频率(不使用) // .d_cutoff_freq = 0.0f, // 截止频率(不使用)
// .range = 0.0f // 误差范围(不使用) // .range = 0.0f // 误差范围(不使用)
//}; //};
//KPID_Params_t rate_pid_params = { //KPID_Params_t rate_pid_params = {
// .k = 1.0f, // .k = 1.0f,
// .p = 0.25f, // 比例增益 // .p = 0.25f, // 比例增益
@ -32,7 +52,6 @@
// .d_cutoff_freq = 30.0f, // 微分项低通截止频率(Hz) // .d_cutoff_freq = 30.0f, // 微分项低通截止频率(Hz)
// .range = 0.0f // .range = 0.0f
//}; //};
//KPID_Params_t alt_pos_pid_params = { //KPID_Params_t alt_pos_pid_params = {
// .k = 0.25f, // .k = 0.25f,
// .p = 1.0f, // 比例增益 // .p = 1.0f, // 比例增益
@ -43,7 +62,6 @@
// .d_cutoff_freq = 0.0f, // 截止频率(Hz) // .d_cutoff_freq = 0.0f, // 截止频率(Hz)
// .range = 0.0f // .range = 0.0f
//}; //};
//KPID_Params_t alt_vel_pid_params = { //KPID_Params_t alt_vel_pid_params = {
// .k = 0.08f, // .k = 0.08f,
// .p = 2.2f, // 比例增益 // .p = 2.2f, // 比例增益
@ -55,225 +73,296 @@
// .range = 0.0f // .range = 0.0f
//}; //};
//// 初始化卡尔曼滤波器 /* Private typedef ---------------------------------------------------------- */
//void Kalman_Init(KalmanFilter* kf) { /* Private define ----------------------------------------------------------- */
// kf->Q_angle = 0.001f;
// kf->Q_bias = 0.003f;
// kf->R_measure = 0.03f;
// kf->angle = 0.0f;
// kf->bias = 0.0f;
// kf->P[0][0] = 0.0f;
// kf->P[0][1] = 0.0f;
// kf->P[1][0] = 0.0f;
// kf->P[1][1] = 0.0f;
//}
//// 卡尔曼滤波器更新 /* Private macro ------------------------------------------------------------ */
//float Kalman_Update(KalmanFilter* kf, float newAngle, float newRate, float dt) { /* Private variables -------------------------------------------------------- */
// // 预测步骤 /* Private function -------------------------------------------------------- */
// kf->angle += dt * (newRate - kf->bias); static inline void Quad_Math_LimitFloat(float* value, float min, float max) {
// kf->P[0][0] += dt * (dt * kf->P[1][1] - kf->P[0][1] - kf->P[1][0] + kf->Q_angle); if (*value < min) {
// kf->P[0][1] -= dt * kf->P[1][1]; *value = min;
// kf->P[1][0] -= dt * kf->P[1][1]; } else if (*value > max) {
// kf->P[1][1] += kf->Q_bias * dt; *value = max;
}
}
// // 更新步骤 static inline void Quad_Math_ScaleSumTo1(float *a, float *b, float *c, float *d) {
// float y = newAngle - kf->angle; float sum = *a + *b + *c + *d;
// float S = kf->P[0][0] + kf->R_measure; if (sum > 1.0f) {
// float K[2]; float scale = 1.0f / sum;
// K[0] = kf->P[0][0] / S; *a *= scale;
// K[1] = kf->P[1][0] / S; *b *= scale;
*c *= scale;
*d *= scale;
}
}
// // 更新状态和协方差 // 初始化卡尔曼滤波器
// kf->angle += K[0] * y; void Kalman_Init(KalmanFilter* kf) {
// kf->bias += K[1] * y; kf->Q_angle = 0.001f;
// float P00_temp = kf->P[0][0]; kf->Q_bias = 0.003f;
// float P01_temp = kf->P[0][1]; kf->R_measure = 0.03f;
// kf->P[0][0] -= K[0] * P00_temp; kf->angle = 0.0f;
// kf->P[0][1] -= K[0] * P01_temp; kf->bias = 0.0f;
// kf->P[1][0] -= K[1] * P00_temp; kf->P[0][0] = 0.0f;
// kf->P[1][1] -= K[1] * P01_temp; kf->P[0][1] = 0.0f;
kf->P[1][0] = 0.0f;
kf->P[1][1] = 0.0f;
}
// 卡尔曼滤波器更新
float Kalman_Update(KalmanFilter* kf, float newAngle, float newRate, float dt) {
// 预测步骤
kf->angle += dt * (newRate - kf->bias);
kf->P[0][0] += dt * (dt * kf->P[1][1] - kf->P[0][1] - kf->P[1][0] + kf->Q_angle);
kf->P[0][1] -= dt * kf->P[1][1];
kf->P[1][0] -= dt * kf->P[1][1];
kf->P[1][1] += kf->Q_bias * dt;
// 更新步骤
float y = newAngle - kf->angle;
float S = kf->P[0][0] + kf->R_measure;
float K[2];
K[0] = kf->P[0][0] / S;
K[1] = kf->P[1][0] / S;
// 更新状态和协方差
kf->angle += K[0] * y;
kf->bias += K[1] * y;
float P00_temp = kf->P[0][0];
float P01_temp = kf->P[0][1];
kf->P[0][0] -= K[0] * P00_temp;
kf->P[0][1] -= K[0] * P01_temp;
kf->P[1][0] -= K[1] * P00_temp;
kf->P[1][1] -= K[1] * P01_temp;
return kf->angle;
}
// return kf->angle;
//}
//// 全局变量
//KalmanFilter roll_kf, pitch_kf;
//// 控制器初始化函数
//void FlightController_Init(float sample_freq) {
// // 初始化卡尔曼滤波器
// Kalman_Init(&roll_kf);
// Kalman_Init(&pitch_kf);
//
//
// // 初始化PID控制器
// PID_Init(&roll_angle_pid, KPID_MODE_NO_D, sample_freq, &angle_pid_params);
// PID_Init(&pitch_angle_pid, KPID_MODE_NO_D, sample_freq, &angle_pid_params);
// PID_Init(&roll_rate_pid, KPID_MODE_CALC_D, sample_freq, &rate_pid_params);
// PID_Init(&pitch_rate_pid, KPID_MODE_CALC_D, sample_freq, &rate_pid_params);
// PID_Init(&yaw_rate_pid, KPID_MODE_SET_D, sample_freq, &rate_pid_params);
// PID_Init(&altitude_pos_pid, KPID_MODE_NO_D, sample_freq, &alt_pos_pid_params);
// PID_Init(&altitude_vel_pid, KPID_MODE_CALC_D, sample_freq, &alt_vel_pid_params);
//
// // 重置所有PID状态
// PID_Reset(&roll_angle_pid);
// PID_Reset(&pitch_angle_pid);
// PID_Reset(&roll_rate_pid);
// PID_Reset(&pitch_rate_pid);
// PID_Reset(&yaw_rate_pid);
// PID_Reset(&altitude_pos_pid);
// PID_Reset(&altitude_vel_pid);
//}
//float target_yaw_rate; int8_t Quad_UpdateStatus(Quad_t *q) {
//float expected_speed; // 这里添加传感器数据更新逻辑
//float expect_thrust;
//float target_roll_rate;
//float target_pitch_rate;
//float base_throttle = 0.4f; // 基础油门
//float target_altitude = 0.0f; // 目标高度1米
//float roll_angle;
//float pitch_angle;
//// 主控制循环(在固定时间间隔调用
//void FlightController_Update(SensorData sensors, Control_t* output, float dt, PS2_TypeDef rc) {
// // 1. 姿态估计(使用卡尔曼滤波)
// roll_angle = Kalman_Update(&roll_kf,
// atan2f(sensors.accel[1], sensors.accel[2]),
// sensors.gyro[0],
// dt)+0.0302813556;
//
// pitch_angle = Kalman_Update(&pitch_kf,
// atan2f(-sensors.accel[0], sensors.accel[2]),
// sensors.gyro[1],
// dt)+0.0181136467;
//
// // 2. 高度估计(融合加速度计和气压计)
// //AltKalman_Update(&alt_kf, sensors.accel[2], sensors.baro_alt, dt);
//
// // 3. 遥控器输入
//// float target_yaw_rate, target_throttle;
//
// target_altitude += (rc.Rocker_LY-0.5)*0.03;
// if(target_altitude<=-13){target_altitude=-13;}else if(target_altitude>=11){target_altitude=11;}
//
//// expected_speed =
//
// output->Controltarget.pitch = (rc.Rocker_RY-0.5)*0.349065f;
// output->Controltarget.roll = (rc.Rocker_RX-0.5)*0.1745329f;
// target_yaw_rate = (rc.Rocker_LX-0.5)*0.349065f;
//
// // 4. 高度控制单环PID
// expected_speed = PID_Calc(&altitude_pos_pid, target_altitude, -sensors.baro_alt, 0, dt);
// expect_thrust = PID_Calc(&altitude_vel_pid, expected_speed, sensors.speed_z, 0, dt);
// if(expect_thrust<-1.0f){expect_thrust=-1.0f;}
// output->ControlOutput.throttle = base_throttle+expect_thrust;
// // 5. 双环姿态控制
// // 外环:角度控制(输出目标角速度)
//// float target_roll_rate = PID_Calc(&roll_angle_pid, output->Controltarget.roll, roll_angle, 0, dt);
//// float target_pitch_rate = PID_Calc(&pitch_angle_pid, output->Controltarget.pitch, pitch_angle, 0, dt);
// target_roll_rate = PID_Calc(&roll_angle_pid, output->Controltarget.roll, roll_angle, 0, dt);
// target_pitch_rate = PID_Calc(&pitch_angle_pid, output->Controltarget.pitch, pitch_angle, 0, dt);
//
// // 内环:角速度控制(输出控制量)
// output->ControlOutput.roll = 2*PID_Calc(&roll_rate_pid, target_roll_rate, sensors.gyro[0], 0, dt);
// output->ControlOutput.pitch = 2*PID_Calc(&pitch_rate_pid, target_pitch_rate, sensors.gyro[1], 0, dt);
// output->ControlOutput.yaw = 1.5*PID_Calc(&yaw_rate_pid, target_yaw_rate, sensors.gyro[2], 0, dt);
//
// // 6. 输出限幅保护
// output->ControlOutput.throttle = fmaxf(0.0f, fminf(1.0f, output->ControlOutput.throttle));
// output->ControlOutput.roll = fmaxf(-1.0f, fminf(1.0f, output->ControlOutput.roll));
// output->ControlOutput.pitch = fmaxf(-1.0f, fminf(1.0f, output->ControlOutput.pitch));
// output->ControlOutput.yaw = fmaxf(-1.0f, fminf(1.0f, output->ControlOutput.yaw));
//
//}
//// 重置所有控制器(在模式切换或紧急情况下调用) // 1. 姿态估计(使用卡尔曼滤波)
//void FlightController_Reset() { q->current_status.eulr.rol = Kalman_Update(&q->kalman.rol_kf,
// PID_Reset(&roll_angle_pid); atan2f(q->current_status.accl.y, q->current_status.accl.z),
// PID_Reset(&pitch_angle_pid); q->current_status.gyro.x,
// PID_Reset(&roll_rate_pid); q->dt);
// PID_Reset(&pitch_rate_pid);
// PID_Reset(&yaw_rate_pid);
// PID_Reset(&altitude_pos_pid);
// PID_Reset(&altitude_vel_pid);
// // 重置卡尔曼滤波器
// Kalman_Init(&roll_kf);
// Kalman_Init(&pitch_kf);
// //AltKalman_Init(&alt_kf);
//}
///*********************************************************** */ q->current_status.eulr.pit = Kalman_Update(&q->kalman.pit_kf,
///* 混控器 */ atan2f(-q->current_status.accl.x, q->current_status.accl.z),
///*********************************************************** */ q->current_status.gyro.y,
q->dt);
// 2. 高度估计(融合加速度计和气压计)
HeightEstimation_GetHeight(&q->current_status.alt, &q->current_status.vel_z, q->current_status.accl.z);
//// 全局混控器实例
////static Mixer mixer;
//Mixer mixer;
//// 初始化混控器
//void MotorMixer_Init() {
// // 电机1配置 (前右)
// mixer.motors[0].min_output = 0.1f;
// mixer.motors[0].max_output = 1.0f;
//
// // 电机2配置 (前左)
// mixer.motors[1].min_output = 0.1f;
// mixer.motors[1].max_output = 1.0f;
//
// // 电机3配置 (后左)
// mixer.motors[2].min_output = 0.1f;
// mixer.motors[2].max_output = 1.0f;
//
// // 电机4配置 (后右)
// mixer.motors[3].min_output = 0.1f;
// mixer.motors[3].max_output = 1.0f;
//
// // 初始输出为0
// for (int i = 0; i < 4; i++) {
// mixer.motor_output[i] = 0.0f;
// }
//}
//float mix[4];
//// 应用电机输出
//void Apply_Motor_Outputs(Control_t ctrl) {
// // 1. 基本混控公式 (X型四轴布局)
// // 电机布局:
// // [0] 前右 (CW)
// // [1] 前左 (CCW)
// // [2] 后左 (CW)
// // [3] 后右 (CCW)
//
// // 混控公式:
//// float mix[4];
// mix[0] = ctrl.ControlOutput.throttle + ctrl.ControlOutput.roll - ctrl.ControlOutput.pitch + ctrl.ControlOutput.yaw; // 前右
// mix[1] = ctrl.ControlOutput.throttle - ctrl.ControlOutput.roll - ctrl.ControlOutput.pitch - ctrl.ControlOutput.yaw; // 前左
// mix[2] = ctrl.ControlOutput.throttle - ctrl.ControlOutput.roll + ctrl.ControlOutput.pitch + ctrl.ControlOutput.yaw; // 后左
// mix[3] = ctrl.ControlOutput.throttle + ctrl.ControlOutput.roll + ctrl.ControlOutput.pitch - ctrl.ControlOutput.yaw; // 后右
//
// // 2. 输出限幅和约束
// for (int i = 0; i < 4; i++) {
// // 应用电机特定限幅
// if (mix[i] < mixer.motors[i].min_output) {
// mix[i] = mixer.motors[i].min_output;
// } else if (mix[i] > mixer.motors[i].max_output) {
// mix[i] = mixer.motors[i].max_output;
// }
//
// // 更新当前输出值
// mixer.motor_output[i] = 0.275+0.8*mix[i]*0.21; // 转换为PWM计数值
// }
//
// // 3. 输出到PWM
// BSP_PWM_Set(BSP_PWM_MOTOR_OUT1, mixer.motor_output[0]);
// BSP_PWM_Set(BSP_PWM_MOTOR_OUT2, mixer.motor_output[1]);
// BSP_PWM_Set(BSP_PWM_MOTOR_OUT3, mixer.motor_output[2]);
// BSP_PWM_Set(BSP_PWM_MOTOR_OUT4, mixer.motor_output[3]);
//}
//// 安全停止所有电机 return 0;
//void MotorMixer_OutStop() { }
// BSP_PWM_Stop(BSP_PWM_MOTOR_OUT1);
// BSP_PWM_Stop(BSP_PWM_MOTOR_OUT2); int8_t Quad_SetTargetStates(Quad_t *q, Quad_CMD_t cmd) {
// BSP_PWM_Stop(BSP_PWM_MOTOR_OUT3); // 这里添加目标状态设置逻辑
// BSP_PWM_Stop(BSP_PWM_MOTOR_OUT4);
//} q->expect_status.vel = cmd.throttle;
q->expect_status.yaw_omg = cmd.yaw;
q->expect_status.rol_agl = cmd.rol+q->current_status.eulr.rol;
q->expect_status.pit_agl = cmd.pit+q->current_status.eulr.pit;
Quad_Math_LimitFloat(&q->expect_status.yaw_omg,
-q->param->expect_status_limit.yaw_omg,
q->param->expect_status_limit.yaw_omg);
Quad_Math_LimitFloat(&q->expect_status.rol_agl,
q->expect_status.rol_agl-q->param->expect_status_limit.rol_agl,
q->expect_status.rol_agl+q->param->expect_status_limit.rol_agl);
Quad_Math_LimitFloat(&q->expect_status.pit_agl,
q->expect_status.pit_agl-q->param->expect_status_limit.pit_agl,
q->expect_status.pit_agl+q->param->expect_status_limit.pit_agl);
return 0;
}
//位置控制
int8_t Quad_PosCtrl(Quad_t *q,float dt) {
// q->expect_status.vel=PID_Calc(&q->pid.alt_pos,
// q->expect_status.alt,
// q->current_status.alt,
// 0,
// dt);
q->expect_status.thrust=PID_Calc(&q->pid.alt_vel,
q->expect_status.vel,
q->current_status.vel_z,
0,
dt);
Quad_Math_LimitFloat(&q->expect_status.thrust, -1.0f, 1.0f);
q->output.throttle=q->param->baseThrottle
+q->expect_status.thrust;
return 0;
}
//姿态控制
int8_t Quad_AttCtrl_agl(Quad_t *q, float dt) {
//角度控制
q->expect_status.rol_omg = PID_Calc(&q->pid.rol_agl,
q->expect_status.rol_agl,
q->current_status.eulr.rol,
0,
q->dt);
q->expect_status.pit_omg = PID_Calc(&q->pid.pit_agl,
q->expect_status.pit_agl,
q->current_status.eulr.pit,
0,
q->dt);
return 0;
}
int8_t Quad_AttCtrl_omg(Quad_t *q, float dt) {
//角速度控制
q->output.pit = PID_Calc(&q->pid.pit_omg,
q->expect_status.pit_omg,
q->current_status.gyro.y,
0,
q->dt);
q->output.yaw = PID_Calc(&q->pid.yaw_omg,
q->expect_status.yaw_omg,
q->current_status.gyro.z,
0,
q->dt);
q->output.rol = PID_Calc(&q->pid.rol_omg,
q->expect_status.rol_omg,
q->current_status.gyro.x,
0,
q->dt);
return 0;
}
int8_t Quad_Mixer(Quad_t *q) {
Quad_Math_ScaleSumTo1(&q->output.throttle, &q->output.rol, &q->output.pit, &q->output.yaw);
q->output.mix[0] = q->output.throttle + q->output.rol - q->output.pit + q->output.yaw;// 前右
q->output.mix[1] = q->output.throttle - q->output.rol - q->output.pit - q->output.yaw;// 前左
q->output.mix[2] = q->output.throttle - q->output.rol + q->output.pit + q->output.yaw;// 后左
q->output.mix[3] = q->output.throttle + q->output.rol + q->output.pit - q->output.yaw;// 后右
for(int i=0;i<4;i++){
Quad_Math_LimitFloat(&q->output.mix[i], q->param->motor_limit.min_output, q->param->motor_limit.max_output);
q->output.motor[i] = 0.275+0.8*q->output.mix[i]*0.21;
}
return 0;
}
int8_t Quad_OutPut(Quad_Output_t *output){
if(output == NULL){
return -1;
}
BSP_PWM_SetComp(BSP_PWM_MOTOR_OUT1, output->motor[0]);
BSP_PWM_SetComp(BSP_PWM_MOTOR_OUT2, output->motor[1]);
BSP_PWM_SetComp(BSP_PWM_MOTOR_OUT3, output->motor[2]);
BSP_PWM_SetComp(BSP_PWM_MOTOR_OUT4, output->motor[3]);
return 0;
}
int8_t Quad_ResetStatus(Quad_CurrentStatus_t *currentStatus) {
return 0; // 返回0表示成功
}
int8_t Quad_ResetOutput(Quad_Output_t *output) {
for (int i = 0; i < 4; i++) {
output->motor[i] = 0.0f;
}
return 0; // 返回0表示成功
}
/* Exported functions ------------------------------------------------------- */
int8_t Quad_Init(Quad_t *q, Quad_Params_t *param, float freq) {
if(param == NULL) {
return -1; // 参数错误
}
q->param = param;
// 初始化卡尔曼滤波器
Kalman_Init(&q->kalman.rol_kf);
Kalman_Init(&q->kalman.pit_kf);
uint16_t pos_alt=param->ctrl_freq.pos_alt;
uint16_t pos_vel=param->ctrl_freq.pos_vel;
uint16_t att_agl=param->ctrl_freq.att_agl;
uint16_t att_omg=param->ctrl_freq.att_omg;
LowPassFilter2p_Init(&q->filter.accl_x, freq, 30.0f);
LowPassFilter2p_Init(&q->filter.accl_y, freq, 30.0f);
LowPassFilter2p_Init(&q->filter.accl_z, freq, 30.0f);
LowPassFilter2p_Init(&q->filter.gyro_x, freq, 80.0f);
LowPassFilter2p_Init(&q->filter.gyro_y, freq, 80.0f);
LowPassFilter2p_Init(&q->filter.gyro_z, freq, 80.0f);
LowPassFilter2p_Init(&q->filter.eulr_yaw, freq, 20.0f);
LowPassFilter2p_Init(&q->filter.eulr_pit, freq, 20.0f);
LowPassFilter2p_Init(&q->filter.eulr_rol, freq, 20.0f);
LowPassFilter2p_Init(&q->filter.alt, freq, 10.0f);
LowPassFilter2p_Init(&q->filter.vel_z, freq, 15.0f);
PID_Init(&q->pid.yaw_agl, KPID_MODE_CALC_D, att_agl, &param->pid.yaw_agl);
PID_Init(&q->pid.pit_agl, KPID_MODE_CALC_D, att_agl, &param->pid.pit_agl);
PID_Init(&q->pid.rol_agl, KPID_MODE_CALC_D, att_agl, &param->pid.rol_agl);
PID_Init(&q->pid.yaw_omg, KPID_MODE_CALC_D, att_omg, &param->pid.yaw_omg);
PID_Init(&q->pid.pit_omg, KPID_MODE_CALC_D, att_omg, &param->pid.pit_omg);
PID_Init(&q->pid.rol_omg, KPID_MODE_CALC_D, att_omg, &param->pid.rol_omg);
PID_Init(&q->pid.alt_pos, KPID_MODE_CALC_D, pos_alt, &param->pid.alt_pos);
PID_Init(&q->pid.alt_vel, KPID_MODE_CALC_D, pos_vel, &param->pid.alt_vel);
q->expect_status.alt = q->current_status.alt;
q->expect_status.pit_agl = q->current_status.eulr.pit;
q->expect_status.rol_agl = q->current_status.eulr.rol;
q->expect_status.yaw_agl = q->current_status.eulr.yaw;
BSP_PWM_Start(BSP_PWM_MOTOR_OUT1);
BSP_PWM_Start(BSP_PWM_MOTOR_OUT2);
BSP_PWM_Start(BSP_PWM_MOTOR_OUT3);
BSP_PWM_Start(BSP_PWM_MOTOR_OUT4);
return 0;
}
int8_t Quad_Ctrl(Quad_t *q, Quad_CMD_t cmd) {
if(q == NULL) {
return -1; // 参数错误
}
q->now =BSP_TIME_Get_us() / 1000000.0f;
q->dt =(BSP_TIME_Get_us() - q->last) / 1000000.0f;
q->last=BSP_TIME_Get_us();
Quad_UpdateStatus(q);
Quad_SetTargetStates(q, cmd);
static uint8_t cnt_1ms = 0;
cnt_1ms = (cnt_1ms + 1) % 10;
/* 位置环 100 Hz */
if (cnt_1ms == 0) {
Quad_PosCtrl(q,10*q->dt);
}
/* 角度环 250 Hz */
if (cnt_1ms % 4 == 0) {
Quad_AttCtrl_agl(q,4*q->dt);
}
/* 角速度环 1000 Hz */
Quad_AttCtrl_omg(q,q->dt);
/* 混控 & 输出1000 Hz */
Quad_Mixer(q);
Quad_OutPut(&q->output);
return 0;
}
void Quad_stop() {
BSP_PWM_Stop(BSP_PWM_MOTOR_OUT1);
BSP_PWM_Stop(BSP_PWM_MOTOR_OUT2);
BSP_PWM_Stop(BSP_PWM_MOTOR_OUT3);
BSP_PWM_Stop(BSP_PWM_MOTOR_OUT4);
}

View File

@ -4,65 +4,159 @@
extern "C" { extern "C" {
#endif #endif
#include "device/at9s_pro.h" #include "device/at9s_pro.h"
#include "component/pid.h"
// 卡尔曼滤波器结构体
typedef struct {
float Q_angle; // 过程噪声协方差(角度)
float Q_bias; // 过程噪声协方差(陀螺仪偏置)
float R_measure; // 测量噪声协方差
float angle; // 估计角度
float bias; // 估计陀螺仪偏置
float P[2][2]; // 误差协方差矩阵
} KalmanFilter;
typedef struct{
float x;
float y;
float z;
}Quad_Vectory3f_t;
//// 传感器数据结构 typedef struct{
//typedef struct { float yaw;
// float accel[3]; // m/s² float pit;
// float gyro[3]; // rad/s float rol;
// float baro_alt; // 气压计高度 (m) }Quad_EulrVectory3f_t;
// float speed_z; //z轴速度
//} SensorData;
//// 卡尔曼滤波器结构体 typedef struct {
//typedef struct { uint16_t pos_alt;
// float Q_angle; // 过程噪声协方差(角度) uint16_t pos_vel;
// float Q_bias; // 过程噪声协方差(陀螺仪偏置) uint16_t att_agl;
// float R_measure; // 测量噪声协方差 uint16_t att_omg;
// float angle; // 估计角度 }Quad_CtrlFreqParams_t;
// float bias; // 估计陀螺仪偏置
// float P[2][2]; // 误差协方差矩阵
//} KalmanFilter;
//// 控制输出结构体 typedef struct {
//typedef struct { LowPassFilter2p_t accl_x;
// LowPassFilter2p_t accl_y;
// struct { LowPassFilter2p_t accl_z;
// float throttle; // 总油门 [0-1] LowPassFilter2p_t gyro_x;
// float roll; // 滚转控制 [-1,1] LowPassFilter2p_t gyro_y;
// float pitch; // 俯仰控制 [-1,1] LowPassFilter2p_t gyro_z;
// float yaw; // 偏航控制 [-1,1] LowPassFilter2p_t eulr_yaw;
// } ControlOutput; LowPassFilter2p_t eulr_pit;
// LowPassFilter2p_t eulr_rol;
// struct { LowPassFilter2p_t alt;
// float throttle; // 总油门 [0-1] LowPassFilter2p_t vel_z;
// float roll; // 滚转控制 [-1,1] }Quad_LowPassFilter2p_t;
// float pitch; // 俯仰控制 [-1,1]
// float yaw; // 偏航控制 [-1,1]
// } Controltarget;
//} Control_t;
typedef struct {
KPID_Params_t pit_agl;
KPID_Params_t rol_agl;
KPID_Params_t yaw_agl;
KPID_Params_t pit_omg;
KPID_Params_t rol_omg;
KPID_Params_t yaw_omg;
KPID_Params_t alt_pos;
KPID_Params_t alt_vel;
}Quad_PIDParams_t;
//// 电机配置结构体 typedef struct {
//typedef struct { KPID_t rol_omg, rol_agl; // rol轴PID
// float min_output; // 最小输出值 (0.0-1.0) KPID_t pit_omg, pit_agl; // rol轴PID
// float max_output; // 最大输出值 (0.0-1.0) KPID_t yaw_omg, yaw_agl; // rol轴PID
//} MotorConfig; KPID_t alt_pos, alt_vel; // 高度环PID
}Quad_PID_t;
//// 混控器配置 typedef struct {
//typedef struct { KalmanFilter rol_kf, pit_kf;
// MotorConfig motors[4]; // 四个电机的配置 }Quad_Kalman_t;
// float motor_output[4]; // 当前电机输出值 (0.0-1.0)
//} Mixer;
// 电机配置结构体
typedef struct {
float min_output; // 最小输出值 (0.0-1.0)
float max_output; // 最大输出值 (0.0-1.0)
}Quad_MotorConfig_t;
typedef struct {
bool online;
bool stop;
float throttle;
float yaw;
float rol;
float pit;
}Quad_CMD_t;
typedef struct{
Quad_Vectory3f_t accl; // m/s²
Quad_Vectory3f_t gyro;
Quad_EulrVectory3f_t eulr;
float alt; // 气压计加速度计融合后相对高度 (m)
float vel_z; //z轴速度
}Quad_CurrentStatus_t;
//void FlightController_Init(float sample_freq); typedef struct {
//void FlightController_Update(SensorData sensors, Control_t* output, float dt, rc); float yaw_agl;
//void MotorMixer_Init(); float rol_agl;
//void Apply_Motor_Outputs(Control_t ctrl); float pit_agl;
//void MotorMixer_OutStop();
float yaw_omg;
float rol_omg;
float pit_omg;
float vel;
float thrust;
float alt;
}Quad_ExpectStatus_t;
typedef struct{
float yaw_omg;
float rol_agl;
float pit_agl;
}Quad_ExpectStatusLimit_t;
typedef struct {
float throttle;
float rol;
float pit;
float yaw;
float mix[4]; // 混控计算中间变量
float motor[4]; // 电机输出值 (0.0-1.0)
}Quad_Output_t;
typedef struct {
Quad_CtrlFreqParams_t ctrl_freq; // 控制频率参数
float baseThrottle; // 基础油门值
Quad_PIDParams_t pid; // PID参数
// 低通滤波器参数
Quad_ExpectStatusLimit_t expect_status_limit;
Quad_MotorConfig_t motor_limit; // 四个电机的配置
}Quad_Params_t;
typedef struct{
int64_t now;
float dt;
int64_t last;
Quad_Params_t *param;
Quad_PID_t pid;
Quad_LowPassFilter2p_t filter;
Quad_Kalman_t kalman;
Quad_CurrentStatus_t current_status;
Quad_ExpectStatus_t expect_status;
Quad_Output_t output;
}Quad_t;
int8_t Quad_Init(Quad_t *q, Quad_Params_t *param, float freq);
int8_t Quad_Ctrl(Quad_t *q, Quad_CMD_t cmd);
void Quad_stop();
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -27,6 +27,8 @@ AHRS_Magn_t magn;
AHRS_Eulr_t eulr_to_send; AHRS_Eulr_t eulr_to_send;
float accl_z_for_heightestimation; float accl_z_for_heightestimation;
AHRS_Eulr_t eulr_for_quad;
KPID_t imu_temp_ctrl_pid; KPID_t imu_temp_ctrl_pid;
//Chassis_IMU_t chassis_to_send; //Chassis_IMU_t chassis_to_send;
@ -148,9 +150,10 @@ void Task_atti_esti(void *argument) {
osKernelUnlock(); osKernelUnlock();
accl_z_for_heightestimation = bmi088.accl.z; accl_z_for_heightestimation = bmi088.accl.z;
eulr_for_quad=eulr_to_send;
/* 创建修改后的数据副本用于发送到消息队列 */ /* 创建修改后的数据副本用于发送到消息队列 */
osMessageQueuePut(task_runtime.msgq.heightestimation.accl_z, &accl_z_for_heightestimation, 0, 0); osMessageQueuePut(task_runtime.msgq.heightestimation.accl_z, &accl_z_for_heightestimation, 0, 0);
osMessageQueuePut(task_runtime.msgq.quad.eulr, &eulr_for_quad, 0, 0);
BSP_PWM_SetComp(BSP_PWM_IMU_HEAT_PWM, PID_Calc(&imu_temp_ctrl_pid, 40.0f, bmi088.temp, 0.0f, 0.0f)); BSP_PWM_SetComp(BSP_PWM_IMU_HEAT_PWM, PID_Calc(&imu_temp_ctrl_pid, 40.0f, bmi088.temp, 0.0f, 0.0f));
/* USER CODE END */ /* USER CODE END */
osDelayUntil(tick); /* 运行结束,等待下一次唤醒 */ osDelayUntil(tick); /* 运行结束,等待下一次唤醒 */

63
User/task/cmd.c Normal file
View File

@ -0,0 +1,63 @@
/*
cmd Task
*/
/* Includes ----------------------------------------------------------------- */
#include "task/user_task.h"
/* USER INCLUDE BEGIN */
#include "device/at9s_pro.h"
#include "module/at9s_pro_cmd.h"
#include "module/xm_quadctrl.h"
/* USER INCLUDE END */
/* Private typedef ---------------------------------------------------------- */
/* Private define ----------------------------------------------------------- */
/* Private macro ------------------------------------------------------------ */
/* Private variables -------------------------------------------------------- */
/* USER STRUCT BEGIN */
uint8_t cmd_buffer[DEVICE_AT9S_FRAME_LEN];
DEVICE_AT9S_t at9s;
COMP_AT9S_CMD_t rc_cmd;
Quad_CMD_t cmd_for_quad;
/* USER STRUCT END */
/* Private function --------------------------------------------------------- */
/* Exported functions ------------------------------------------------------- */
void Task_cmd(void *argument) {
(void)argument; /* 未使用argument消除警告 */
/* 计算任务运行到指定频率需要等待的tick数 */
const uint32_t delay_tick = osKernelGetTickFreq() / CMD_FREQ;
osDelay(CMD_INIT_DELAY); /* 延时一段时间再开启任务 */
uint32_t tick = osKernelGetTickCount(); /* 控制任务运行频率的计时 */
/* USER CODE INIT BEGIN */
DEVICE_AT9S_Init(&at9s);
DEVICE_AT9S_StartDmaRecv(cmd_buffer);
/* USER CODE INIT END */
while (1) {
tick += delay_tick; /* 计算下一个唤醒时刻 */
/* USER CODE BEGIN */
if (DEVICE_AT9S_WaitDmaCplt(10)) {
DEVICE_AT9S_ParseRaw(cmd_buffer, &at9s);
COMP_AT9S_CMD_ParseRc(&at9s, &rc_cmd);
DEVICE_AT9S_StartDmaRecv(cmd_buffer);
}
cmd_for_quad.online=rc_cmd.online;
cmd_for_quad.throttle=rc_cmd.ch_l_y;
cmd_for_quad.yaw=rc_cmd.ch_l_x;
cmd_for_quad.pit=rc_cmd.ch_r_y;
cmd_for_quad.rol=rc_cmd.ch_r_x;
cmd_for_quad.stop=rc_cmd.stop;
osMessageQueuePut(task_runtime.msgq.quad.cmd, &cmd_for_quad, 0, 0);
/* USER CODE END */
osDelayUntil(tick); /* 运行结束,等待下一次唤醒 */
}
}

View File

@ -1,4 +1,3 @@
- delay: 0 - delay: 0
description: '' description: ''
freq_control: true freq_control: true
@ -6,7 +5,6 @@
function: Task_atti_esti function: Task_atti_esti
name: atti_esti name: atti_esti
stack: 256 stack: 256
- delay: 0 - delay: 0
description: '' description: ''
freq_control: true freq_control: true
@ -14,7 +12,6 @@
function: Task_blink function: Task_blink
name: blink name: blink
stack: 256 stack: 256
- delay: 300 - delay: 300
description: '' description: ''
freq_control: true freq_control: true
@ -22,19 +19,17 @@
function: Task_height_cal function: Task_height_cal
name: height_cal name: height_cal
stack: 256 stack: 256
- delay: 0
- delay: 500
description: '' description: ''
freq_control: true freq_control: true
frequency: 500.0 frequency: 1000.0
function: Task_main_control function: Task_quad_ctrl
name: main_control name: quad_ctrl
stack: 256 stack: 512
- delay: 0 - delay: 0
description: '' description: ''
freq_control: true freq_control: true
frequency: 500.0 frequency: 500.0
function: Task_rc function: Task_cmd
name: rc name: cmd
stack: 256 stack: 256

View File

@ -1,8 +1,11 @@
/* /*
height_cal Task height_cal Task
*/ */
/* Includes ----------------------------------------------------------------- */ /* Includes ----------------------------------------------------------------- */
#include "task/user_task.h"
/* USER INCLUDE BEGIN */
#include "task\user_task.h" #include "task\user_task.h"
#include "timers.h" #include "timers.h"
#include "device/bmi088.h" #include "device/bmi088.h"
@ -10,43 +13,43 @@
#include "component/ahrs.h" #include "component/ahrs.h"
#include "module/HeightEstimation.h" #include "module/HeightEstimation.h"
/* USER INCLUDE END */
/* Private typedef ---------------------------------------------------------- */ /* Private typedef ---------------------------------------------------------- */
/* Private define ----------------------------------------------------------- */ /* Private define ----------------------------------------------------------- */
/* Private macro ------------------------------------------------------------ */ /* Private macro ------------------------------------------------------------ */
/* Private variables -------------------------------------------------------- */ /* Private variables -------------------------------------------------------- */
/* USER STRUCT BEGIN */
float accl_z_buffer; float accl_z_buffer;
float estimated_velocity; float estimated_velocity;
float estimated_height; float estimated_height;
/* USER STRUCT END */
/* Private function --------------------------------------------------------- */ /* Private function --------------------------------------------------------- */
/* Exported functions ------------------------------------------------------- */ /* Exported functions ------------------------------------------------------- */
/**
* \brief ps2 Task
*
* \param argument
*/
void Task_height_cal(void *argument) { void Task_height_cal(void *argument) {
(void)argument; (void)argument; /* 未使用argument消除警告 */
/* 计算任务运行到指定频率需要等待的tick数 */
const uint32_t delay_tick = osKernelGetTickFreq() / HEIGHT_CAL_FREQ; const uint32_t delay_tick = osKernelGetTickFreq() / HEIGHT_CAL_FREQ;
osDelay(HEIGHT_CAL_INIT_DELAY); osDelay(HEIGHT_CAL_INIT_DELAY); /* 延时一段时间再开启任务 */
uint32_t tick = osKernelGetTickCount();
uint32_t tick = osKernelGetTickCount(); /* 控制任务运行频率的计时 */
/* USER CODE INIT BEGIN */
HeightEstimation_Init(HEIGHT_CAL_FREQ); HeightEstimation_Init(HEIGHT_CAL_FREQ);
while (1) { /* USER CODE INIT END */
tick += delay_tick;
/*User code begin*/ while (1) {
tick += delay_tick; /* 计算下一个唤醒时刻 */
/* USER CODE BEGIN */
osMessageQueueGet(task_runtime.msgq.heightestimation.accl_z, &accl_z_buffer, NULL, 0); osMessageQueueGet(task_runtime.msgq.heightestimation.accl_z, &accl_z_buffer, NULL, 0);
HeightEstimation_GetHeight(&estimated_height, &estimated_velocity, accl_z_buffer); HeightEstimation_GetHeight(&estimated_height, &estimated_velocity, accl_z_buffer);
// osMessageQueuePut(task_runtime.msgq., &estimated_height, 0, 0); osMessageQueuePut(task_runtime.msgq.quad.alt, &estimated_height, 0, 0);
/*User code end*/ osMessageQueuePut(task_runtime.msgq.quad.vel, &estimated_velocity, 0, 0);
/* USER CODE END */
osDelayUntil(tick); osDelayUntil(tick); /* 运行结束,等待下一次唤醒 */
} }
} }

View File

@ -8,6 +8,7 @@
/* USER INCLUDE BEGIN */ /* USER INCLUDE BEGIN */
#include "component/ahrs.h" #include "component/ahrs.h"
#include "module/xm_quadctrl.h"
/* USER INCLUDE END */ /* USER INCLUDE END */
/* Private typedef ---------------------------------------------------------- */ /* Private typedef ---------------------------------------------------------- */
@ -31,14 +32,18 @@ void Task_Init(void *argument) {
/* 创建任务线程 */ /* 创建任务线程 */
task_runtime.thread.atti_esti = osThreadNew(Task_atti_esti, NULL, &attr_atti_esti); task_runtime.thread.atti_esti = osThreadNew(Task_atti_esti, NULL, &attr_atti_esti);
task_runtime.thread.rc = osThreadNew(Task_rc, NULL, &attr_rc);
task_runtime.thread.blink = osThreadNew(Task_blink, NULL, &attr_blink); task_runtime.thread.blink = osThreadNew(Task_blink, NULL, &attr_blink);
task_runtime.thread.height_cal = osThreadNew(Task_height_cal, NULL, &attr_height_cal); task_runtime.thread.height_cal = osThreadNew(Task_height_cal, NULL, &attr_height_cal);
// task_runtime.thread.main_ctrl = osThreadNew(Task_main_ctrl, NULL, &attr_main_ctrl); task_runtime.thread.quad_ctrl = osThreadNew(Task_quad_ctrl, NULL, &attr_quad_ctrl);
task_runtime.thread.cmd = osThreadNew(Task_cmd, NULL, &attr_cmd);
// 创建消息队列 // 创建消息队列
/* USER MESSAGE BEGIN */ /* USER MESSAGE BEGIN */
task_runtime.msgq.heightestimation.accl_z= osMessageQueueNew(5, sizeof(float), NULL); task_runtime.msgq.heightestimation.accl_z= osMessageQueueNew(5, sizeof(float), NULL);
task_runtime.msgq.quad.eulr= osMessageQueueNew(3, sizeof(AHRS_Eulr_t), NULL);
task_runtime.msgq.quad.alt= osMessageQueueNew(3, sizeof(float), NULL);
task_runtime.msgq.quad.vel= osMessageQueueNew(3, sizeof(float), NULL);
task_runtime.msgq.quad.cmd= osMessageQueueNew(3, sizeof(Quad_CMD_t), NULL);
/* USER MESSAGE END */ /* USER MESSAGE END */
osKernelUnlock(); // 解锁内核 osKernelUnlock(); // 解锁内核

View File

@ -1,135 +0,0 @@
/*
main_control Task
*/
/* Includes ----------------------------------------------------------------- */
#include "task\user_task.h"
#include "main.h"
#include "module/xm_quadctrl.h"
#include "device/buzzer.h"
#include "bsp/time.h"
#include "bsp/pwm.h"
#include "component/ahrs.h"
/* Private typedef ---------------------------------------------------------- */
/* Private define ----------------------------------------------------------- */
/* Private macro ------------------------------------------------------------ */
/* Private variables -------------------------------------------------------- */
//uint32_t main_control_cnt_last;
//float main_control_dt;
//SensorData sensors = {0};
// main_control_rc;
//uint8_t main_control_running_states;
/* Private function --------------------------------------------------------- */
/* Exported functions ------------------------------------------------------- */
/**
* \brief main_control Task
*
* \param argument 使
*/
// Control_t ctrl;
void Task_main_control(void *argument) {
(void)argument; /* 未使用argument消除警告 */
/* 计算任务运行到指定频率需要等待的tick数 */
const uint32_t delay_tick = osKernelGetTickFreq() / MAIN_CTRL_INIT_DELAY;
osDelay(MAIN_CTRL_FREQ); /* 延时一段时间再开启任务 */
uint32_t tick = osKernelGetTickCount(); /* 控制任务运行频率的计时 */
// FlightController_Init(MAIN_CTRL_INIT_DELAY);
// BSP_PWM_Start(BSP_PWM_MOTOR_OUT1);
// BSP_PWM_Start(BSP_PWM_MOTOR_OUT2);
// BSP_PWM_Start(BSP_PWM_MOTOR_OUT3);
// BSP_PWM_Start(BSP_PWM_MOTOR_OUT4);
while (1) {
tick += delay_tick; /* 计算下一个唤醒时刻 */
/*User code begin*/
// AHRS_Accl_t accl_data;
// AHRS_Gyro_t gyro_data;
// float fixed_height_buffer;
// float speed_z_buffer;
// osMessageQueueGet(task_runtime.msgq.accl, &accl_data, NULL, 0);
// osMessageQueueGet(task_runtime.msgq.gyro, &gyro_data, NULL, 0);
// osMessageQueueGet(task_runtime.msgq.fixed_height, &fixed_height_buffer, NULL, 0);
// osMessageQueueGet(task_runtime.msgq.speed_z, &speed_z_buffer, NULL, 0);
// osMessageQueueGet(task_runtime.msgq.rc, &main_control_rc, NULL, 0);
// sensors.accel[0] = accl_data.x;
// sensors.accel[1] = accl_data.y;
// sensors.accel[2] = accl_data.z;
// sensors.gyro[0] = gyro_data.x;
// sensors.gyro[1] = gyro_data.y;
// sensors.gyro[2] = gyro_data.z;
// sensors.baro_alt = fixed_height_buffer;
// sensors.speed_z = speed_z_buffer;
// // 获取遥控器输入
// main_control_dt = DWT_GetDeltaT(&main_control_cnt_last);
// // 执行控制计算
//// Control_t ctrl;
// FlightController_Update(sensors, &ctrl, main_control_dt, main_control_rc);
// float output_check=0;
// switch(main_control_running_states){
// case 0:
// output_check = 0.275+0.21*0.8*((main_control_rc.Rocker_LY-0.5)*2);
// BSP_PWM_Set(BSP_PWM_MOTOR_OUT1, output_check);
// BSP_PWM_Set(BSP_PWM_MOTOR_OUT2, output_check);
// BSP_PWM_Set(BSP_PWM_MOTOR_OUT3, output_check);
// BSP_PWM_Set(BSP_PWM_MOTOR_OUT4, output_check);
// if(main_control_rc.Key_R_Up == 1){
// main_control_running_states=1;
// }else if(main_control_rc.Key_R_Right == 1){
// main_control_running_states=4;
// }
// break;
// case 1:
// BSP_BUZZER_Set(BSP_BUZZER_ON, BSP_BUZZER_C5, 1);
// osDelay(500);
// BSP_BUZZER_Stop();
// osDelay(2000);
// main_control_running_states=2;
// if(main_control_rc.Key_R_Right == 1){
// main_control_running_states=4;
// }
// break;
// case 2:
// MotorMixer_Init();
// Apply_Motor_Outputs(ctrl);
// if(main_control_rc.Key_R_Down == 1){
// main_control_running_states=3;
// }else if(main_control_rc.Key_R_Right == 1){
// main_control_running_states=4;
// }
// break;
// case 3:
// BSP_PWM_Set(BSP_PWM_MOTOR_OUT1, 0.275);
// BSP_PWM_Set(BSP_PWM_MOTOR_OUT2, 0.275);
// BSP_PWM_Set(BSP_PWM_MOTOR_OUT3, 0.275);
// BSP_PWM_Set(BSP_PWM_MOTOR_OUT4, 0.275);
// main_control_running_states=0;
// if(main_control_rc.Key_R_Right == 1){
// main_control_running_states=4;
// }
// break;
// case 4:
// MotorMixer_OutStop();
// break;
// default:
// break;
// }
// BSP_PWM_Set(BSP_PWM_MOTOR_OUT1, 0.275);
// BSP_PWM_Set(BSP_PWM_MOTOR_OUT2, 0.275);
// BSP_PWM_Set(BSP_PWM_MOTOR_OUT3, 0.275);
// BSP_PWM_Set(BSP_PWM_MOTOR_OUT4, 0.275);
/*User code end*/
osDelayUntil(tick); /* 运行结束,等待下一次唤醒 */
}
}

50
User/task/quad_ctrl.c Normal file
View File

@ -0,0 +1,50 @@
/*
quad_ctrl Task
*/
/* Includes ----------------------------------------------------------------- */
#include "task/user_task.h"
/* USER INCLUDE BEGIN */
#include "module/xm_quadctrl.h"
#include "module/config.h"
/* USER INCLUDE END */
/* Private typedef ---------------------------------------------------------- */
/* Private define ----------------------------------------------------------- */
/* Private macro ------------------------------------------------------------ */
/* Private variables -------------------------------------------------------- */
/* USER STRUCT BEGIN */
Quad_t q;
Quad_CMD_t quad_cmd;
/* USER STRUCT END */
/* Private function --------------------------------------------------------- */
/* Exported functions ------------------------------------------------------- */
void Task_quad_ctrl(void *argument) {
(void)argument; /* 未使用argument消除警告 */
/* 计算任务运行到指定频率需要等待的tick数 */
const uint32_t delay_tick = osKernelGetTickFreq() / QUAD_CTRL_FREQ;
osDelay(QUAD_CTRL_INIT_DELAY); /* 延时一段时间再开启任务 */
uint32_t tick = osKernelGetTickCount(); /* 控制任务运行频率的计时 */
/* USER CODE INIT BEGIN */
Quad_Init(&q,&Config_GetRobotParam()->quad_params,QUAD_CTRL_FREQ);
/* USER CODE INIT END */
while (1) {
tick += delay_tick; /* 计算下一个唤醒时刻 */
/* USER CODE BEGIN */
osMessageQueueGet(task_runtime.msgq.quad.eulr, &q.current_status.eulr, NULL, 0);
osMessageQueueGet(task_runtime.msgq.quad.alt, &q.current_status.alt, NULL, 0);
osMessageQueueGet(task_runtime.msgq.quad.vel, &q.current_status.vel_z, NULL, 0);
osMessageQueueGet(task_runtime.msgq.quad.cmd, &quad_cmd, NULL, 0);
Quad_Ctrl(&q,quad_cmd);
/* USER CODE END */
osDelayUntil(tick); /* 运行结束,等待下一次唤醒 */
}
}

View File

@ -14,11 +14,6 @@ const osThreadAttr_t attr_atti_esti = {
.priority = osPriorityNormal, .priority = osPriorityNormal,
.stack_size = 256 * 4, .stack_size = 256 * 4,
}; };
const osThreadAttr_t attr_rc = {
.name = "rc",
.priority = osPriorityNormal,
.stack_size = 256 * 4,
};
const osThreadAttr_t attr_blink = { const osThreadAttr_t attr_blink = {
.name = "blink", .name = "blink",
.priority = osPriorityNormal, .priority = osPriorityNormal,
@ -29,8 +24,13 @@ const osThreadAttr_t attr_height_cal = {
.priority = osPriorityNormal, .priority = osPriorityNormal,
.stack_size = 256 * 4, .stack_size = 256 * 4,
}; };
const osThreadAttr_t attr_main_ctrl = { const osThreadAttr_t attr_quad_ctrl = {
.name = "main_ctrl", .name = "quad_ctrl",
.priority = osPriorityNormal,
.stack_size = 512 * 4,
};
const osThreadAttr_t attr_cmd = {
.name = "cmd",
.priority = osPriorityNormal, .priority = osPriorityNormal,
.stack_size = 256 * 4, .stack_size = 256 * 4,
}; };

View File

@ -13,19 +13,19 @@ extern "C" {
/* USER INCLUDE END */ /* USER INCLUDE END */
/* Exported constants ------------------------------------------------------- */ /* Exported constants ------------------------------------------------------- */
/* 任务运行频率 */ /* 任务运行频率 */
#define ATTI_ESTI_FREQ (500.0) #define ATTI_ESTI_FREQ (1000.0)
#define RC_FREQ (500.0)
#define BLINK_FREQ (100.0) #define BLINK_FREQ (100.0)
#define HEIGHT_CAL_FREQ (500.0) #define HEIGHT_CAL_FREQ (500.0)
#define MAIN_CTRL_FREQ (500.0) #define QUAD_CTRL_FREQ (1000.0)
#define CMD_FREQ (500.0)
/* 任务初始化延时ms */ /* 任务初始化延时ms */
#define TASK_INIT_DELAY (100u) #define TASK_INIT_DELAY (100u)
#define ATTI_ESTI_INIT_DELAY (0) #define ATTI_ESTI_INIT_DELAY (0)
#define RC_INIT_DELAY (0)
#define BLINK_INIT_DELAY (0) #define BLINK_INIT_DELAY (0)
#define HEIGHT_CAL_INIT_DELAY (300) #define HEIGHT_CAL_INIT_DELAY (300)
#define MAIN_CTRL_INIT_DELAY (500) #define QUAD_CTRL_INIT_DELAY (0)
#define CMD_INIT_DELAY (0)
/* Exported defines --------------------------------------------------------- */ /* Exported defines --------------------------------------------------------- */
/* Exported macro ----------------------------------------------------------- */ /* Exported macro ----------------------------------------------------------- */
@ -36,10 +36,10 @@ typedef struct {
/* 各任务,也可以叫做线程 */ /* 各任务,也可以叫做线程 */
struct { struct {
osThreadId_t atti_esti; osThreadId_t atti_esti;
osThreadId_t rc;
osThreadId_t blink; osThreadId_t blink;
osThreadId_t height_cal; osThreadId_t height_cal;
osThreadId_t main_ctrl; osThreadId_t quad_ctrl;
osThreadId_t cmd;
} thread; } thread;
/* USER MESSAGE BEGIN */ /* USER MESSAGE BEGIN */
@ -50,6 +50,13 @@ typedef struct {
{ {
osMessageQueueId_t accl_z; /* z轴加速度 */ osMessageQueueId_t accl_z; /* z轴加速度 */
}heightestimation; }heightestimation;
struct{
osMessageQueueId_t eulr;
osMessageQueueId_t alt;
osMessageQueueId_t vel;
osMessageQueueId_t cmd;
}quad;
} msgq; } msgq;
/* USER MESSAGE END */ /* USER MESSAGE END */
@ -68,28 +75,28 @@ typedef struct {
/* 各任务的stack使用 */ /* 各任务的stack使用 */
struct { struct {
UBaseType_t atti_esti; UBaseType_t atti_esti;
UBaseType_t rc;
UBaseType_t blink; UBaseType_t blink;
UBaseType_t height_cal; UBaseType_t height_cal;
UBaseType_t main_ctrl; UBaseType_t quad_ctrl;
UBaseType_t cmd;
} stack_water_mark; } stack_water_mark;
/* 各任务运行频率 */ /* 各任务运行频率 */
struct { struct {
float atti_esti; float atti_esti;
float rc;
float blink; float blink;
float height_cal; float height_cal;
float main_ctrl; float quad_ctrl;
float cmd;
} freq; } freq;
/* 任务最近运行时间 */ /* 任务最近运行时间 */
struct { struct {
float atti_esti; float atti_esti;
float rc;
float blink; float blink;
float height_cal; float height_cal;
float main_ctrl; float quad_ctrl;
float cmd;
} last_up_time; } last_up_time;
} Task_Runtime_t; } Task_Runtime_t;
@ -100,18 +107,18 @@ extern Task_Runtime_t task_runtime;
/* 初始化任务句柄 */ /* 初始化任务句柄 */
extern const osThreadAttr_t attr_init; extern const osThreadAttr_t attr_init;
extern const osThreadAttr_t attr_atti_esti; extern const osThreadAttr_t attr_atti_esti;
extern const osThreadAttr_t attr_rc;
extern const osThreadAttr_t attr_blink; extern const osThreadAttr_t attr_blink;
extern const osThreadAttr_t attr_height_cal; extern const osThreadAttr_t attr_height_cal;
extern const osThreadAttr_t attr_main_ctrl; extern const osThreadAttr_t attr_quad_ctrl;
extern const osThreadAttr_t attr_cmd;
/* 任务函数声明 */ /* 任务函数声明 */
void Task_Init(void *argument); void Task_Init(void *argument);
void Task_atti_esti(void *argument); void Task_atti_esti(void *argument);
void Task_rc(void *argument);
void Task_blink(void *argument); void Task_blink(void *argument);
void Task_height_cal(void *argument); void Task_height_cal(void *argument);
void Task_main_ctrl(void *argument); void Task_quad_ctrl(void *argument);
void Task_cmd(void *argument);
#ifdef __cplusplus #ifdef __cplusplus
} }