mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-06-05 06:54:49 +08:00
Rotate external magneto fix
This commit is contained in:
@@ -87,6 +87,12 @@
|
|||||||
<load name="mag_hmc58xx.xml">
|
<load name="mag_hmc58xx.xml">
|
||||||
<configure name="MAG_HMC58XX_I2C_DEV" value="i2c1"/>
|
<configure name="MAG_HMC58XX_I2C_DEV" value="i2c1"/>
|
||||||
<define name="MODULE_HMC58XX_UPDATE_AHRS" value="TRUE"/>
|
<define name="MODULE_HMC58XX_UPDATE_AHRS" value="TRUE"/>
|
||||||
|
<define name="HMC58XX_CHAN_X" value="1"/>
|
||||||
|
<define name="HMC58XX_CHAN_Y" value="0"/>
|
||||||
|
<define name="HMC58XX_CHAN_Z" value="2"/>
|
||||||
|
<define name="HMC58XX_CHAN_X_SIGN" value="-"/>
|
||||||
|
<define name="HMC58XX_CHAN_Y_SIGN" value="+"/>
|
||||||
|
<define name="HMC58XX_CHAN_Z_SIGN" value="+"/>
|
||||||
</load>
|
</load>
|
||||||
<!-- <load name="spektrum_soft_bind.xml"/>-->
|
<!-- <load name="spektrum_soft_bind.xml"/>-->
|
||||||
</modules>
|
</modules>
|
||||||
@@ -104,12 +110,12 @@
|
|||||||
<define name="ACCEL_Y_SENS" value="0.609921478775" integer="16"/>
|
<define name="ACCEL_Y_SENS" value="0.609921478775" integer="16"/>
|
||||||
<define name="ACCEL_Z_SENS" value="0.619923942578" integer="16"/>
|
<define name="ACCEL_Z_SENS" value="0.619923942578" integer="16"/>
|
||||||
|
|
||||||
<define name="MAG_X_NEUTRAL" value="21"/>
|
<define name="MAG_X_NEUTRAL" value="92"/>
|
||||||
<define name="MAG_Y_NEUTRAL" value="-93"/>
|
<define name="MAG_Y_NEUTRAL" value="35"/>
|
||||||
<define name="MAG_Z_NEUTRAL" value="-15"/>
|
<define name="MAG_Z_NEUTRAL" value="-15"/>
|
||||||
<define name="MAG_X_SENS" value="5.1784060163" integer="16"/>
|
<define name="MAG_X_SENS" value="5.52543569751" integer="16"/>
|
||||||
<define name="MAG_Y_SENS" value="5.55867516912" integer="16"/>
|
<define name="MAG_Y_SENS" value="4.91233764159" integer="16"/>
|
||||||
<define name="MAG_Z_SENS" value="5.06809390796" integer="16"/>
|
<define name="MAG_Z_SENS" value="4.99453775296" integer="16"/>
|
||||||
</section>
|
</section>
|
||||||
<commands>
|
<commands>
|
||||||
<axis name="PITCH" failsafe_value="0" />
|
<axis name="PITCH" failsafe_value="0" />
|
||||||
|
|||||||
@@ -30,6 +30,8 @@
|
|||||||
#include "pprzlink/messages.h"
|
#include "pprzlink/messages.h"
|
||||||
#include "subsystems/datalink/downlink.h"
|
#include "subsystems/datalink/downlink.h"
|
||||||
|
|
||||||
|
#include BOARD_CONFIG
|
||||||
|
|
||||||
#ifndef HMC58XX_CHAN_X
|
#ifndef HMC58XX_CHAN_X
|
||||||
#define HMC58XX_CHAN_X 0
|
#define HMC58XX_CHAN_X 0
|
||||||
#endif
|
#endif
|
||||||
@@ -39,6 +41,15 @@
|
|||||||
#ifndef HMC58XX_CHAN_Z
|
#ifndef HMC58XX_CHAN_Z
|
||||||
#define HMC58XX_CHAN_Z 2
|
#define HMC58XX_CHAN_Z 2
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef HMC58XX_CHAN_X_SIGN
|
||||||
|
#define HMC58XX_CHAN_X_SIGN +
|
||||||
|
#endif
|
||||||
|
#ifndef HMC58XX_CHAN_Y_SIGN
|
||||||
|
#define HMC58XX_CHAN_Y_SIGN +
|
||||||
|
#endif
|
||||||
|
#ifndef HMC58XX_CHAN_Z_SIGN
|
||||||
|
#define HMC58XX_CHAN_Z_SIGN +
|
||||||
|
#endif
|
||||||
|
|
||||||
#if MODULE_HMC58XX_UPDATE_AHRS
|
#if MODULE_HMC58XX_UPDATE_AHRS
|
||||||
#include "subsystems/imu.h"
|
#include "subsystems/imu.h"
|
||||||
@@ -68,9 +79,9 @@ void mag_hmc58xx_module_event(void)
|
|||||||
|
|
||||||
// set channel order
|
// set channel order
|
||||||
struct Int32Vect3 mag = {
|
struct Int32Vect3 mag = {
|
||||||
(int32_t)(mag_hmc58xx.data.value[HMC58XX_CHAN_X]),
|
HMC58XX_CHAN_X_SIGN(int32_t)(mag_hmc58xx.data.value[HMC58XX_CHAN_X]),
|
||||||
(int32_t)(mag_hmc58xx.data.value[HMC58XX_CHAN_Y]),
|
HMC58XX_CHAN_Y_SIGN(int32_t)(mag_hmc58xx.data.value[HMC58XX_CHAN_Y]),
|
||||||
(int32_t)(mag_hmc58xx.data.value[HMC58XX_CHAN_Z])
|
HMC58XX_CHAN_Z_SIGN(int32_t)(mag_hmc58xx.data.value[HMC58XX_CHAN_Z])
|
||||||
};
|
};
|
||||||
// unscaled vector
|
// unscaled vector
|
||||||
VECT3_COPY(imu.mag_unscaled, mag);
|
VECT3_COPY(imu.mag_unscaled, mag);
|
||||||
@@ -91,9 +102,9 @@ void mag_hmc58xx_module_event(void)
|
|||||||
void mag_hmc58xx_report(void)
|
void mag_hmc58xx_report(void)
|
||||||
{
|
{
|
||||||
struct Int32Vect3 mag = {
|
struct Int32Vect3 mag = {
|
||||||
(int32_t)(mag_hmc58xx.data.value[HMC58XX_CHAN_X]),
|
HMC58XX_CHAN_X_SIGN(int32_t)(mag_hmc58xx.data.value[HMC58XX_CHAN_X]),
|
||||||
(int32_t)(mag_hmc58xx.data.value[HMC58XX_CHAN_Y]),
|
HMC58XX_CHAN_Y_SIGN(int32_t)(mag_hmc58xx.data.value[HMC58XX_CHAN_Y]),
|
||||||
(int32_t)(mag_hmc58xx.data.value[HMC58XX_CHAN_Z])
|
HMC58XX_CHAN_Z_SIGN(int32_t)(mag_hmc58xx.data.value[HMC58XX_CHAN_Z])
|
||||||
};
|
};
|
||||||
DOWNLINK_SEND_IMU_MAG_RAW(DefaultChannel, DefaultDevice, &mag.x, &mag.y, &mag.z);
|
DOWNLINK_SEND_IMU_MAG_RAW(DefaultChannel, DefaultDevice, &mag.x, &mag.y, &mag.z);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user