You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
759 B
27 lines
759 B
#pragma once
|
|
|
|
#include "sensors/i2c_sensor.hpp"
|
|
|
|
// Address of the chip on the bus
|
|
#define BMX055_MAGN_I2C_ADDR 0x10
|
|
|
|
// Registers of the chip
|
|
#define BMX055_MAGN_I2C_REG_ID 0x40
|
|
#define BMX055_MAGN_I2C_REG_PWR_0 0x4B
|
|
#define BMX055_MAGN_I2C_REG_MAG 0x4C
|
|
#define BMX055_MAGN_I2C_REG_DATAX_LSB 0x42
|
|
#define BMX055_MAGN_I2C_REG_RHALL_LSB 0x48
|
|
#define BMX055_MAGN_I2C_REG_REPXY 0x51
|
|
#define BMX055_MAGN_I2C_REG_REPZ 0x52
|
|
|
|
// Constants
|
|
#define BMX055_MAGN_CHIP_ID 0x32
|
|
#define BMX055_MAGN_FORCED (0b01 << 1)
|
|
|
|
class BMX055_Magn : public I2CSensor{
|
|
uint8_t get_device_address() {return BMX055_MAGN_I2C_ADDR;}
|
|
public:
|
|
BMX055_Magn(I2CBus *bus);
|
|
int init();
|
|
void get_event(cereal::SensorEventData::Builder &event);
|
|
};
|
|
|