Paparazzi UAS  v5.14.0_stable-0-g3f680d1
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
imu_disco.c File Reference

Driver for the Disco magnetometer, accelerometer and gyroscope. More...

#include "subsystems/imu.h"
#include "subsystems/abi.h"
#include "mcu_periph/i2c.h"
+ Include dependency graph for imu_disco.c:

Go to the source code of this file.

Macros

#define DISCO_MAG_I2C_DEV   i2c1
 
#define DISCO_MPU_I2C_DEV   i2c2
 

Functions

void imu_disco_init (void)
 Disco IMU initializtion of the MPU-60x0 and HMC58xx. More...
 
void imu_disco_periodic (void)
 Handle all the periodic tasks of the Disco IMU components. More...
 
void imu_disco_event (void)
 Handle all the events of the Disco IMU components. More...
 

Variables

struct ImuDisco imu_disco
 Disco IMU data. More...
 

Detailed Description

Driver for the Disco magnetometer, accelerometer and gyroscope.

Definition in file imu_disco.c.

Macro Definition Documentation

#define DISCO_MAG_I2C_DEV   i2c1

Definition at line 33 of file imu_disco.c.

Referenced by imu_disco_init().

#define DISCO_MPU_I2C_DEV   i2c2

Definition at line 35 of file imu_disco.c.

Referenced by imu_disco_init().

Function Documentation

void imu_disco_event ( void  )

Handle all the events of the Disco IMU components.

When there is data available convert it to the correct axis and save it in the imu structure.

Definition at line 99 of file imu_disco.c.

References Imu::accel, Imu::accel_unscaled, ImuDisco::ak, ak8963_event(), Ak8963::data, Mpu60x0_I2c::data_accel, Mpu60x0_I2c::data_available, Ak8963::data_available, Mpu60x0_I2c::data_rates, get_sys_time_usec(), Imu::gyro, Imu::gyro_unscaled, imu, IMU_BOARD_ID, imu_disco, imu_scale_accel(), imu_scale_gyro(), imu_scale_mag(), Imu::mag, Imu::mag_unscaled, ImuDisco::mpu, mpu60x0_i2c_event(), RATES_ASSIGN, and VECT3_ASSIGN.

+ Here is the call graph for this function:

void imu_disco_init ( void  )
void imu_disco_periodic ( void  )

Handle all the periodic tasks of the Disco IMU components.

Read the MPU60x0 every periodic call and the AKM8963 every 10th call.

Definition at line 86 of file imu_disco.c.

References ImuDisco::ak, ak8963_periodic(), imu_disco, ImuDisco::mpu, and mpu60x0_i2c_periodic().

+ Here is the call graph for this function:

Variable Documentation

struct ImuDisco imu_disco

Disco IMU data.

Definition at line 64 of file imu_disco.c.

Referenced by imu_disco_event(), and imu_disco_periodic().