From ba2eb6c82425080b21c83044ede1613ffe621049 Mon Sep 17 00:00:00 2001 From: Christophe De Wagter Date: Thu, 19 Jul 2012 11:12:01 +0200 Subject: [PATCH] Clarify naming and no unnecessary memcopy --- sw/airborne/subsystems/imu/imu_aspirin2.c | 4 ++-- sw/airborne/subsystems/imu/imu_aspirin2.h | 18 ++++++++---------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/sw/airborne/subsystems/imu/imu_aspirin2.c b/sw/airborne/subsystems/imu/imu_aspirin2.c index 2a47cfd73a8..8c6e9ca1295 100644 --- a/sw/airborne/subsystems/imu/imu_aspirin2.c +++ b/sw/airborne/subsystems/imu/imu_aspirin2.c @@ -41,11 +41,11 @@ static void mpu_configure(void); void imu_impl_init(void) { imu_aspirin2.status = Aspirin2StatusUninit; - imu_aspirin2.imu_available = FALSE; + imu_aspirin2.imu_spi_data_received = FALSE; aspirin2_mpu60x0.mosi_buf = imu_aspirin2.imu_tx_buf; aspirin2_mpu60x0.miso_buf = imu_aspirin2.imu_rx_buf; - aspirin2_mpu60x0.ready = &(imu_aspirin2.imu_available); + aspirin2_mpu60x0.ready = &(imu_aspirin2.imu_spi_data_received); aspirin2_mpu60x0.length = 2; } diff --git a/sw/airborne/subsystems/imu/imu_aspirin2.h b/sw/airborne/subsystems/imu/imu_aspirin2.h index 230acd05b1d..8a367fbb32d 100644 --- a/sw/airborne/subsystems/imu/imu_aspirin2.h +++ b/sw/airborne/subsystems/imu/imu_aspirin2.h @@ -98,7 +98,7 @@ enum Aspirin2Status struct ImuAspirin2 { volatile enum Aspirin2Status status; - volatile uint8_t imu_available; + volatile uint8_t imu_spi_data_received; volatile uint8_t imu_tx_buf[64]; volatile uint8_t imu_rx_buf[64]; }; @@ -110,6 +110,10 @@ static inline uint8_t imu_from_buff(void) { int32_t x, y, z, p, q, r, Mx, My, Mz; +#define MPU_OFFSET_STATUS 1 + if (!(imu_aspirin2.imu_rx_buf[MPU_OFFSET_STATUS] & 0x01)) { + return 0; + } // If the itg3200 I2C transaction has succeeded: convert the data #define MPU_OFFSET_GYRO 10 @@ -137,13 +141,7 @@ static inline uint8_t imu_from_buff(void) VECT3_ASSIGN(imu.mag_unscaled, Mz, -Mx, My); #endif -#define MPU_OFFSET_STATUS 1 - if (imu_aspirin2.imu_rx_buf[MPU_OFFSET_STATUS] & 0x01) { - return 1; - } - else { - return 0; - } + return 1; } @@ -151,8 +149,8 @@ static inline void imu_aspirin2_event(void (* _gyro_handler)(void), void (* _acc { if (imu_aspirin2.status == Aspirin2StatusUninit) return; - if (imu_aspirin2.imu_available) { - imu_aspirin2.imu_available = FALSE; + if (imu_aspirin2.imu_spi_data_received) { + imu_aspirin2.imu_spi_data_received = FALSE; if (imu_from_buff()) { _gyro_handler();