Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
imu_disco.h File Reference

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

#include "generated/airframe.h"
#include "modules/imu/imu.h"
#include "peripherals/ak8963.h"
#include "peripherals/mpu60x0_i2c.h"
+ Include dependency graph for imu_disco.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ImuDisco
 Everything that is in the disco IMU. More...
 

Macros

#define DISCO_GYRO_RANGE   MPU60X0_GYRO_RANGE_1000
 
#define DISCO_ACCEL_RANGE   MPU60X0_ACCEL_RANGE_8G
 

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

Interface for the Disco magnetometer, accelerometer and gyroscope.

Definition in file imu_disco.h.


Data Structure Documentation

◆ ImuDisco

struct ImuDisco

Everything that is in the disco IMU.

Definition at line 46 of file imu_disco.h.

+ Collaboration diagram for ImuDisco:
Data Fields
struct Ak8963 ak The AK8963 mag.
struct Mpu60x0_I2c mpu The MPU gyro/accel device.

Macro Definition Documentation

◆ DISCO_ACCEL_RANGE

#define DISCO_ACCEL_RANGE   MPU60X0_ACCEL_RANGE_8G

Definition at line 42 of file imu_disco.h.

◆ DISCO_GYRO_RANGE

#define DISCO_GYRO_RANGE   MPU60X0_GYRO_RANGE_1000

Definition at line 38 of file imu_disco.h.

Function Documentation

◆ imu_disco_event()

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 114 of file imu_disco.c.

References ImuDisco::ak, ak8963_event(), Ak8963::data, Mpu60x0_I2c::data_accel, Ak8963::data_available, Mpu60x0_I2c::data_available, Mpu60x0_I2c::data_rates, get_sys_time_usec(), IMU_BOARD_ID, imu_disco, ImuDisco::mpu, mpu60x0_i2c_event(), RATES_ASSIGN, Mpu60x0_I2c::temp, and VECT3_ASSIGN.

+ Here is the call graph for this function:

◆ imu_disco_init()

◆ imu_disco_periodic()

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 95 of file imu_disco.c.

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

+ Here is the call graph for this function:

Variable Documentation

◆ imu_disco

struct ImuDisco imu_disco
extern

Disco IMU data.

Definition at line 1 of file imu_disco.c.

Referenced by imu_disco_event(), imu_disco_init(), and imu_disco_periodic().