Skip to content

Commit

Permalink
Clarify naming and no unnecessary memcopy
Browse files Browse the repository at this point in the history
  • Loading branch information
dewagter committed Jul 19, 2012
1 parent 0b2be2d commit ba2eb6c
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 12 deletions.
4 changes: 2 additions & 2 deletions sw/airborne/subsystems/imu/imu_aspirin2.c
Expand Up @@ -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;

}
Expand Down
18 changes: 8 additions & 10 deletions sw/airborne/subsystems/imu/imu_aspirin2.h
Expand Up @@ -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];
};
Expand All @@ -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
Expand Down Expand Up @@ -137,22 +141,16 @@ 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;
}


static inline void imu_aspirin2_event(void (* _gyro_handler)(void), void (* _accel_handler)(void), void (* _mag_handler)(void))
{
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();
Expand Down

0 comments on commit ba2eb6c

Please sign in to comment.