29 #include "pprzlink/messages.h"
31 #include "generated/airframe.h"
34 #ifndef QMC5883L_CHAN_X
35 #define QMC5883L_CHAN_X 0
37 #ifndef QMC5883L_CHAN_Y
38 #define QMC5883L_CHAN_Y 1
40 #ifndef QMC5883L_CHAN_Z
41 #define QMC5883L_CHAN_Z 2
43 #ifndef QMC5883L_CHAN_X_SIGN
44 #define QMC5883L_CHAN_X_SIGN +
46 #ifndef QMC5883L_CHAN_Y_SIGN
47 #define QMC5883L_CHAN_Y_SIGN +
49 #ifndef QMC5883L_CHAN_Z_SIGN
50 #define QMC5883L_CHAN_Z_SIGN +
53 #ifndef QMC5883L_DATA_RATE
54 #define QMC5883L_DATA_RATE QMC5883L_ODR_DEFAULT
58 #define QMC5883L_ADDR QMC5883L_ADDR0
61 #if MODULE_QMC5883L_UPDATE_AHRS
63 #if defined QMC5883L_MAG_TO_IMU_PHI && defined QMC5883L_MAG_TO_IMU_THETA && defined QMC5883L_MAG_TO_IMU_PSI
64 #define USE_MAG_TO_IMU 1
67 #define USE_MAG_TO_IMU 0
77 #if MODULE_QMC5883L_UPDATE_AHRS && USE_MAG_TO_IMU
97 #if MODULE_QMC5883L_UPDATE_AHRS
118 #if MODULE_QMC5883L_SYNC_SEND
121 #if MODULE_QMC5883L_UPDATE_AHRS || MODULE_QMC5883L_SYNC_SEND
Main include for ABI (AirBorneInterface).
#define MAG_QMC5883L_SENDER_ID
uint32_t get_sys_time_usec(void)
Get the time in microseconds since startup.
Common code for AP and FBW telemetry.
#define VECT3_COPY(_a, _b)
#define ANGLE_BFP_OF_REAL(_af)
#define int32_rmat_of_eulers
Rotation matrix from Euler angles.
void int32_rmat_vmult(struct Int32Vect3 *vb, struct Int32RMat *m_a2b, struct Int32Vect3 *va)
rotate 3D vector by rotation matrix.
void mag_qmc5883l_module_periodic(void)
#define QMC5883L_CHAN_Y_SIGN
#define QMC5883L_DATA_RATE
void mag_qmc5883l_report(void)
#define QMC5883L_CHAN_Z_SIGN
struct Qmc5883l mag_qmc5883l
#define QMC5883L_CHAN_X_SIGN
void mag_qmc5883l_module_init(void)
void mag_qmc5883l_module_event(void)
Module wrapper for QNI QMC5883L magnetometer.
void qmc5883l_event(struct Qmc5883l *mag)
void qmc5883l_init(struct Qmc5883l *mag, struct i2c_periph *i2c_p, uint8_t addr, uint8_t data_rate)
volatile bool data_available
data ready flag
union Qmc5883l::@350 data
static void qmc5883l_periodic(struct Qmc5883l *mag)
convenience function: read or start configuration if not already initialized
arch independent UART (Universal Asynchronous Receiver/Transmitter) API
int int32_t
Typedef defining 32 bit int type.
unsigned int uint32_t
Typedef defining 32 bit unsigned int type.
unsigned char uint8_t
Typedef defining 8 bit unsigned char type.