На таймер 7 поставлено обновление PID

This commit is contained in:
2026-04-17 16:21:55 +03:00
parent 0faafbf089
commit 1a7491c4f6
3 changed files with 143 additions and 155 deletions

View File

@@ -118,7 +118,12 @@ void TimerUpdateMain()
if(MainDrone.ExternMagInit) MagObj->GetAsync(DoneProcMag);*/ if(MainDrone.ExternMagInit) MagObj->GetAsync(DoneProcMag);*/
} }
static bool control_update_flag = 0; static bool control_update_flag = false;
void TimerUpdateControl()
{
control_update_flag = true;
}
int main() int main()
{ {
@@ -128,15 +133,17 @@ int main()
TICK_Init(); TICK_Init();
TIM6_Init(TIM_PRIORITY, 500, TimerUpdateSensor, TimerUpdateMain); TIM6_Init(TIM_PRIORITY, 500, TimerUpdateSensor, TimerUpdateMain);
TIM7_Init(TIM_PRIORITY, 200, TimerUpdateControl);
IMUObj = TryFindIMU(MainDrone.IMUInit); IMUObj = TryFindIMU(MainDrone.IMUInit);
TIM6_Enable(); TIM6_Enable();
TIM7_Enable();
attitude_t attitude; attitude_t attitude;
rc_channels rx_chs_raw; rc_channels rx_chs_raw;
rc_channels rx_chs_normalized; rc_channels rx_chs_normalized;
control_channels_t ctrl_chs; static control_channels_t ctrl_chs;
attitude_init(&attitude); attitude_init(&attitude);
receiver_init(); receiver_init();
@@ -149,7 +156,7 @@ int main()
if (control_update_flag) if (control_update_flag)
{ {
control_update_flag = 0; control_update_flag = false;
Vector3 Gyro = Vector3(DataIMU.Gyr.X, DataIMU.Gyr.Y, DataIMU.Gyr.Z); Vector3 Gyro = Vector3(DataIMU.Gyr.X, DataIMU.Gyr.Y, DataIMU.Gyr.Z);

126
drone.ewp
View File

@@ -356,12 +356,11 @@
</option> </option>
<option> <option>
<name>CCIncludePath2</name> <name>CCIncludePath2</name>
<state>$PROJ_DIR$\Source\Drivers</state>
<state>$PROJ_DIR$\Source\Core</state> <state>$PROJ_DIR$\Source\Core</state>
<state>$PROJ_DIR$\Source\BSP\Inc</state> <state>$PROJ_DIR$\Source\Drivers</state>
<state>$PROJ_DIR$\Source\Control\Inc</state> <state>$PROJ_DIR$\Source\Devices</state>
<state>$PROJ_DIR$\Source\INS\geometry</state>
<state>$PROJ_DIR$\Source\INS</state> <state>$PROJ_DIR$\Source\INS</state>
<state>$PROJ_DIR$\Source\Control</state>
<state>$PROJ_DIR$\Source\MathEnv</state> <state>$PROJ_DIR$\Source\MathEnv</state>
</option> </option>
<option> <option>
@@ -2239,71 +2238,32 @@
</configuration> </configuration>
<group> <group>
<name>Source</name> <name>Source</name>
<group>
<name>BSP</name>
<group>
<name>Inc</name>
<file>
<name>$PROJ_DIR$\Source\BSP\Inc\imu.h</name>
</file>
<file>
<name>$PROJ_DIR$\Source\BSP\Inc\imu_processing.h</name>
</file>
<file>
<name>$PROJ_DIR$\Source\BSP\Inc\lidar.h</name>
</file>
<file>
<name>$PROJ_DIR$\Source\BSP\Inc\motors.h</name>
</file>
<file>
<name>$PROJ_DIR$\Source\BSP\Inc\radio_receiver.h</name>
</file>
</group>
<group>
<name>Src</name>
<file>
<name>$PROJ_DIR$\Source\BSP\Src\imu.c</name>
</file>
<file>
<name>$PROJ_DIR$\Source\BSP\Src\imu_processing.c</name>
</file>
<file>
<name>$PROJ_DIR$\Source\BSP\Src\lidar.c</name>
</file>
<file>
<name>$PROJ_DIR$\Source\BSP\Src\motors.c</name>
</file>
<file>
<name>$PROJ_DIR$\Source\BSP\Src\radio_receiver.c</name>
</file>
</group>
</group>
<group> <group>
<name>Control</name> <name>Control</name>
<group>
<name>Inc</name>
<file> <file>
<name>$PROJ_DIR$\Source\Control\Inc\attitude.h</name> <name>$PROJ_DIR$\Source\Control\Attitude.cpp</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\Source\Control\Inc\biquad_filter.h</name> <name>$PROJ_DIR$\Source\Control\Attitude.h</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\Source\Control\Inc\pid.h</name> <name>$PROJ_DIR$\Source\Control\Autopilot.cpp</name>
</file>
</group>
<group>
<name>Src</name>
<file>
<name>$PROJ_DIR$\Source\Control\Src\attitude.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\Source\Control\Src\biquad_filter.c</name> <name>$PROJ_DIR$\Source\Control\Autopilot.h</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\Source\Control\Src\pid.c</name> <name>$PROJ_DIR$\Source\Control\PID.cpp</name>
</file>
<file>
<name>$PROJ_DIR$\Source\Control\PID.h</name>
</file>
<file>
<name>$PROJ_DIR$\Source\Control\Protocol.cpp</name>
</file>
<file>
<name>$PROJ_DIR$\Source\Control\Protocol.h</name>
</file> </file>
</group>
</group> </group>
<group> <group>
<name>Core</name> <name>Core</name>
@@ -2334,6 +2294,18 @@
<file> <file>
<name>$PROJ_DIR$\Source\Devices\IIMU.h</name> <name>$PROJ_DIR$\Source\Devices\IIMU.h</name>
</file> </file>
<file>
<name>$PROJ_DIR$\Source\Devices\Motors.cpp</name>
</file>
<file>
<name>$PROJ_DIR$\Source\Devices\Motors.h</name>
</file>
<file>
<name>$PROJ_DIR$\Source\Devices\RadioReceiver.cpp</name>
</file>
<file>
<name>$PROJ_DIR$\Source\Devices\RadioReceiver.h</name>
</file>
</group> </group>
<group> <group>
<name>Drivers</name> <name>Drivers</name>
@@ -2349,26 +2321,32 @@
<file> <file>
<name>$PROJ_DIR$\Source\Drivers\I2C.h</name> <name>$PROJ_DIR$\Source\Drivers\I2C.h</name>
</file> </file>
<file>
<name>$PROJ_DIR$\Source\Drivers\Tick.cpp</name>
</file>
<file>
<name>$PROJ_DIR$\Source\Drivers\Tick.h</name>
</file>
<file>
<name>$PROJ_DIR$\Source\Drivers\Tim.cpp</name>
</file>
<file>
<name>$PROJ_DIR$\Source\Drivers\Tim.h</name>
</file>
</group> </group>
<group> <group>
<name>INS</name> <name>INS</name>
<group> <group>
<name>geometry</name> <name>util</name>
<file> <file>
<name>$PROJ_DIR$\Source\INS\geometry\quaternion.c</name> <name>$PROJ_DIR$\Source\INS\util\Record.cpp</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\Source\INS\geometry\quaternion.h</name> <name>$PROJ_DIR$\Source\INS\util\Record.h</name>
</file>
<file>
<name>$PROJ_DIR$\Source\INS\geometry\vector.c</name>
</file>
<file>
<name>$PROJ_DIR$\Source\INS\geometry\vector.h</name>
</file> </file>
</group> </group>
<file> <file>
<name>$PROJ_DIR$\Source\INS\IRS.c</name> <name>$PROJ_DIR$\Source\INS\IRS.cpp</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\Source\INS\IRS.h</name> <name>$PROJ_DIR$\Source\INS\IRS.h</name>
@@ -2388,9 +2366,21 @@
<file> <file>
<name>$PROJ_DIR$\Source\MathEnv\MathFunc.h</name> <name>$PROJ_DIR$\Source\MathEnv\MathFunc.h</name>
</file> </file>
<file>
<name>$PROJ_DIR$\Source\MathEnv\Quaternion.cpp</name>
</file>
<file>
<name>$PROJ_DIR$\Source\MathEnv\Quaternion.h</name>
</file>
<file>
<name>$PROJ_DIR$\Source\MathEnv\Vector.cpp</name>
</file>
<file>
<name>$PROJ_DIR$\Source\MathEnv\Vector.h</name>
</file>
</group> </group>
<file> <file>
<name>$PROJ_DIR$\Source\main.c</name> <name>$PROJ_DIR$\Source\main.cpp</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\STM32G4\STM32CubeG4-master\Drivers\CMSIS\Device\ST\STM32G4xx\Source\Templates\iar\startup_stm32g431xx.s</name> <name>$PROJ_DIR$\..\..\STM32G4\STM32CubeG4-master\Drivers\CMSIS\Device\ST\STM32G4xx\Source\Templates\iar\startup_stm32g431xx.s</name>

119
drone.ewt
View File

@@ -3423,71 +3423,32 @@
</configuration> </configuration>
<group> <group>
<name>Source</name> <name>Source</name>
<group>
<name>BSP</name>
<group>
<name>Inc</name>
<file>
<name>$PROJ_DIR$\Source\BSP\Inc\imu.h</name>
</file>
<file>
<name>$PROJ_DIR$\Source\BSP\Inc\imu_processing.h</name>
</file>
<file>
<name>$PROJ_DIR$\Source\BSP\Inc\lidar.h</name>
</file>
<file>
<name>$PROJ_DIR$\Source\BSP\Inc\motors.h</name>
</file>
<file>
<name>$PROJ_DIR$\Source\BSP\Inc\radio_receiver.h</name>
</file>
</group>
<group>
<name>Src</name>
<file>
<name>$PROJ_DIR$\Source\BSP\Src\imu.c</name>
</file>
<file>
<name>$PROJ_DIR$\Source\BSP\Src\imu_processing.c</name>
</file>
<file>
<name>$PROJ_DIR$\Source\BSP\Src\lidar.c</name>
</file>
<file>
<name>$PROJ_DIR$\Source\BSP\Src\motors.c</name>
</file>
<file>
<name>$PROJ_DIR$\Source\BSP\Src\radio_receiver.c</name>
</file>
</group>
</group>
<group> <group>
<name>Control</name> <name>Control</name>
<group>
<name>Inc</name>
<file> <file>
<name>$PROJ_DIR$\Source\Control\Inc\attitude.h</name> <name>$PROJ_DIR$\Source\Control\Attitude.cpp</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\Source\Control\Inc\biquad_filter.h</name> <name>$PROJ_DIR$\Source\Control\Attitude.h</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\Source\Control\Inc\pid.h</name> <name>$PROJ_DIR$\Source\Control\Autopilot.cpp</name>
</file>
</group>
<group>
<name>Src</name>
<file>
<name>$PROJ_DIR$\Source\Control\Src\attitude.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\Source\Control\Src\biquad_filter.c</name> <name>$PROJ_DIR$\Source\Control\Autopilot.h</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\Source\Control\Src\pid.c</name> <name>$PROJ_DIR$\Source\Control\PID.cpp</name>
</file>
<file>
<name>$PROJ_DIR$\Source\Control\PID.h</name>
</file>
<file>
<name>$PROJ_DIR$\Source\Control\Protocol.cpp</name>
</file>
<file>
<name>$PROJ_DIR$\Source\Control\Protocol.h</name>
</file> </file>
</group>
</group> </group>
<group> <group>
<name>Core</name> <name>Core</name>
@@ -3518,6 +3479,18 @@
<file> <file>
<name>$PROJ_DIR$\Source\Devices\IIMU.h</name> <name>$PROJ_DIR$\Source\Devices\IIMU.h</name>
</file> </file>
<file>
<name>$PROJ_DIR$\Source\Devices\Motors.cpp</name>
</file>
<file>
<name>$PROJ_DIR$\Source\Devices\Motors.h</name>
</file>
<file>
<name>$PROJ_DIR$\Source\Devices\RadioReceiver.cpp</name>
</file>
<file>
<name>$PROJ_DIR$\Source\Devices\RadioReceiver.h</name>
</file>
</group> </group>
<group> <group>
<name>Drivers</name> <name>Drivers</name>
@@ -3533,26 +3506,32 @@
<file> <file>
<name>$PROJ_DIR$\Source\Drivers\I2C.h</name> <name>$PROJ_DIR$\Source\Drivers\I2C.h</name>
</file> </file>
<file>
<name>$PROJ_DIR$\Source\Drivers\Tick.cpp</name>
</file>
<file>
<name>$PROJ_DIR$\Source\Drivers\Tick.h</name>
</file>
<file>
<name>$PROJ_DIR$\Source\Drivers\Tim.cpp</name>
</file>
<file>
<name>$PROJ_DIR$\Source\Drivers\Tim.h</name>
</file>
</group> </group>
<group> <group>
<name>INS</name> <name>INS</name>
<group> <group>
<name>geometry</name> <name>util</name>
<file> <file>
<name>$PROJ_DIR$\Source\INS\geometry\quaternion.c</name> <name>$PROJ_DIR$\Source\INS\util\Record.cpp</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\Source\INS\geometry\quaternion.h</name> <name>$PROJ_DIR$\Source\INS\util\Record.h</name>
</file>
<file>
<name>$PROJ_DIR$\Source\INS\geometry\vector.c</name>
</file>
<file>
<name>$PROJ_DIR$\Source\INS\geometry\vector.h</name>
</file> </file>
</group> </group>
<file> <file>
<name>$PROJ_DIR$\Source\INS\IRS.c</name> <name>$PROJ_DIR$\Source\INS\IRS.cpp</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\Source\INS\IRS.h</name> <name>$PROJ_DIR$\Source\INS\IRS.h</name>
@@ -3572,9 +3551,21 @@
<file> <file>
<name>$PROJ_DIR$\Source\MathEnv\MathFunc.h</name> <name>$PROJ_DIR$\Source\MathEnv\MathFunc.h</name>
</file> </file>
<file>
<name>$PROJ_DIR$\Source\MathEnv\Quaternion.cpp</name>
</file>
<file>
<name>$PROJ_DIR$\Source\MathEnv\Quaternion.h</name>
</file>
<file>
<name>$PROJ_DIR$\Source\MathEnv\Vector.cpp</name>
</file>
<file>
<name>$PROJ_DIR$\Source\MathEnv\Vector.h</name>
</file>
</group> </group>
<file> <file>
<name>$PROJ_DIR$\Source\main.c</name> <name>$PROJ_DIR$\Source\main.cpp</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\STM32G4\STM32CubeG4-master\Drivers\CMSIS\Device\ST\STM32G4xx\Source\Templates\iar\startup_stm32g431xx.s</name> <name>$PROJ_DIR$\..\..\STM32G4\STM32CubeG4-master\Drivers\CMSIS\Device\ST\STM32G4xx\Source\Templates\iar\startup_stm32g431xx.s</name>