Небольшие изменения

This commit is contained in:
2026-04-09 12:32:30 +03:00
parent 8b697f903b
commit 3b0bf415a9
2 changed files with 4 additions and 40 deletions

View File

@@ -5,7 +5,7 @@
#define ACCEL_SENS_SCALE_FACTOR 4096.0f #define ACCEL_SENS_SCALE_FACTOR 4096.0f
#define GYRO_SENS_SCALE_FACTOR 16.4f #define GYRO_SENS_SCALE_FACTOR 16.384f
#define PI 3.14159265359f #define PI 3.14159265359f
#define DEG2RAD PI / 180.0f #define DEG2RAD PI / 180.0f

View File

@@ -25,26 +25,11 @@ control_channels_t ctrl_chs;
Vector3 euler; Vector3 euler;
volatile uint32_t us_ticks = 0;
void SysTick_Handler()
{
us_ticks++;
}
float micros()
{
return (float)us_ticks;
}
static float last_time = 0;
void imu_callback(uint8_t* buf); void imu_callback(uint8_t* buf);
void delay_ms(uint32_t ms); void delay_ms(uint32_t ms);
int main(void) int main(void)
{ {
last_time = micros();
__enable_irq(); __enable_irq();
@@ -75,25 +60,6 @@ int main(void)
receiver_update(&rx_chs_raw); receiver_update(&rx_chs_raw);
rx_chs_normalized = normalize_channels(rx_chs_raw); rx_chs_normalized = normalize_channels(rx_chs_raw);
/*if (irs_update_flag)
{
irs_update_flag = 0;
imu_read_scaled(&imu, &allowed_calib);
irs.gyro.x = imu.gx;
irs.gyro.y = imu.gy;
irs.gyro.z = imu.gz;
irs.accel.x = imu.ax;
irs.accel.y = imu.ay;
irs.accel.z = imu.az;
IRS_update(&irs, IMU_DT);
}*/
if (control_update_flag) if (control_update_flag)
{ {
control_update_flag = 0; control_update_flag = 0;
@@ -136,11 +102,6 @@ void imu_callback(uint8_t* buf)
imu_process_raw(&imu, &imu_raw, &allowed_calib); imu_process_raw(&imu, &imu_raw, &allowed_calib);
float now = micros();
float dt = (now - last_time) * 1e-6f;
if (dt <= 0.0f || dt > 0.1f) dt = IMU_DT;
last_time = now;
irs.gyro.x = imu.gx; irs.gyro.x = imu.gx;
irs.gyro.y = imu.gy; irs.gyro.y = imu.gy;
irs.gyro.z = imu.gz; irs.gyro.z = imu.gz;
@@ -154,11 +115,14 @@ void imu_callback(uint8_t* buf)
euler = QuatToEuler(&irs.q); euler = QuatToEuler(&irs.q);
} }
static uint8_t div = 0;
void TIM6_DAC_IRQHandler() void TIM6_DAC_IRQHandler()
{ {
if (TIM6->SR & TIM_SR_UIF) if (TIM6->SR & TIM_SR_UIF)
{ {
TIM6->SR &= ~TIM_SR_UIF; TIM6->SR &= ~TIM_SR_UIF;
i2c_read_async(ICM_ADDR, 0x2D, 12, imu_callback); i2c_read_async(ICM_ADDR, 0x2D, 12, imu_callback);
control_update_flag = 1; control_update_flag = 1;
} }