These initialization functions are called once on startup.
These event functions are called in each cycle of the module event loop.
These functions are called periodically at the specified frequency from the module periodic loop.
<!DOCTYPE module SYSTEM "module.dtd">
<module name="imu_openpilot_revo" dir="imu" task="sensors">
<doc>
<description>
Driver for IMU on OpenPilot Revo board.
- Accelerometer/Gyroscope: MPU6000 via SPI1
- Magnetometer: HMC58xx via I2C1
The IMU positive X-axis is as inidcated with arrows on the board,
Z-axis is negative towards the side of the MPU and LEDs (that side is up).
If ACCEL and GYRO SENS/NEUTRAL are not defined, the defaults from the datasheet will be used.
</description>
<section name="IMU" prefix="IMU_">
<define name="MAG_X_NEUTRAL" value="2358"/>
<define name="MAG_Y_NEUTRAL" value="2362"/>
<define name="MAG_Z_NEUTRAL" value="2119"/>
<define name="MAG_X_SENS" value="3.4936416" integer="16"/>
<define name="MAG_Y_SENS" value="3.607713" integer="16"/>
<define name="MAG_Z_SENS" value="4.90788848" integer="16"/>
</section>
</doc>
<dep>
<depends>spi_master,i2c,imu_common</depends>
<provides>imu,mag</provides>
</dep>
<header>
<file name="imu_mpu6000_hmc5883.h"/>
</header>
<init fun="imu_mpu_hmc_init()"/>
<periodic fun="imu_mpu_hmc_periodic()"/>
<event fun="imu_mpu_hmc_event()"/>
<makefile target="!sim|nps|fbw">
<define name="IMU_HMC_I2C_DEV" value="i2c1"/>
<define name="USE_I2C1"/>
<define name="IMU_MPU_SPI_DEV" value="spi1"/>
<define name="USE_SPI1"/>
<define name="IMU_MPU_SPI_SLAVE_IDX" value="SPI_SLAVE2"/>
<define name="USE_SPI_SLAVE2"/>
<define name="IMU_MPU_CHAN_X" value="1"/>
<define name="IMU_MPU_CHAN_Y" value="0"/>
<define name="IMU_MPU_CHAN_Z" value="2"/>
<define name="IMU_MPU_X_SIGN" value="-1"/>
<define name="IMU_MPU_Y_SIGN" value="-1"/>
<define name="IMU_MPU_Z_SIGN" value="-1"/>
<define name="IMU_HMC_CHAN_X" value="1"/>
<define name="IMU_HMC_CHAN_Y" value="0"/>
<define name="IMU_HMC_CHAN_Z" value="2"/>
<define name="IMU_HMC_X_SIGN" value="1"/>
<define name="IMU_HMC_Y_SIGN" value="1"/>
<define name="IMU_HMC_Z_SIGN" value="-1"/>
<file name="mpu60x0.c" dir="peripherals"/>
<file name="mpu60x0_spi.c" dir="peripherals"/>
<file name="hmc58xx.c" dir="peripherals"/>
<file name="imu_mpu6000_hmc5883.c"/>
</makefile>
</module>