 |
Paparazzi UAS
v6.2_unstable
Paparazzi is a free software Unmanned Aircraft System.
|
Go to the documentation of this file.
29 #include "pprzlink/messages.h"
31 #include "generated/airframe.h"
34 #define RM3100_CHAN_X 0
37 #define RM3100_CHAN_Y 1
40 #define RM3100_CHAN_Z 2
42 #ifndef RM3100_CHAN_X_SIGN
43 #define RM3100_CHAN_X_SIGN +
45 #ifndef RM3100_CHAN_Y_SIGN
46 #define RM3100_CHAN_Y_SIGN +
48 #ifndef RM3100_CHAN_Z_SIGN
49 #define RM3100_CHAN_Z_SIGN +
52 #ifndef RM3100_DATA_RATE
53 #define RM3100_DATA_RATE RM3100_TMRC_DEFAULT
57 #define RM3100_ADDR RM3100_ADDR0
60 #if MODULE_RM3100_UPDATE_AHRS
64 #if defined RM3100_MAG_TO_IMU_PHI && defined RM3100_MAG_TO_IMU_THETA && defined RM3100_MAG_TO_IMU_PSI
65 #define USE_MAG_TO_IMU 1
68 #define USE_MAG_TO_IMU 0
78 #if MODULE_RM3100_UPDATE_AHRS && USE_MAG_TO_IMU
98 #if MODULE_RM3100_UPDATE_AHRS
124 #if MODULE_RM3100_SYNC_SEND
127 #if MODULE_RM3100_UPDATE_AHRS || MODULE_RM3100_SYNC_SEND
void mag_rm3100_module_event(void)
unsigned int uint32_t
Typedef defining 32 bit unsigned int type.
static void rm3100_periodic(struct Rm3100 *mag)
convenience function: read or start configuration if not already initialized
#define RM3100_CHAN_Z_SIGN
void mag_rm3100_module_periodic(void)
void rm3100_event(struct Rm3100 *mag)
void rm3100_init(struct Rm3100 *mag, struct i2c_periph *i2c_p, uint8_t addr, uint8_t data_rate)
void mag_rm3100_module_init(void)
uint32_t get_sys_time_usec(void)
Get the time in microseconds since startup.
arch independent UART (Universal Asynchronous Receiver/Transmitter) API
#define RM3100_CHAN_X_SIGN
#define MAG_RM3100_SENDER_ID
#define ANGLE_BFP_OF_REAL(_af)
#define int32_rmat_of_eulers
Rotation matrix from Euler angles.
struct Imu imu
global IMU state
Common code for AP and FBW telemetry.
void int32_rmat_vmult(struct Int32Vect3 *vb, struct Int32RMat *m_a2b, struct Int32Vect3 *va)
rotate 3D vector by rotation matrix.
int int32_t
Typedef defining 32 bit int type.
#define RM3100_CHAN_Y_SIGN
void mag_rm3100_report(void)
struct Int32Vect3 mag
magnetometer measurements scaled to 1 in BFP with INT32_MAG_FRAC
struct Int32Vect3 mag_unscaled
unscaled magnetometer measurements
volatile bool data_available
data ready flag
void WEAK imu_scale_mag(struct Imu *_imu)
#define VECT3_COPY(_a, _b)