#ifndef MISSION_DEVICES_DEVICEDEFINITIONS_MGMHANDLERRM3100DEFINITIONS_H_ #define MISSION_DEVICES_DEVICEDEFINITIONS_MGMHANDLERRM3100DEFINITIONS_H_ #include namespace RM3100 { static constexpr uint8_t READ_MASK = 0b1000'0000; /*----------------------------------------------------------------------------*/ /* CMM Register /*----------------------------------------------------------------------------*/ static constexpr uint8_t SET_CMM_CMZ = 1 << 6; static constexpr uint8_t SET_CMM_CMY = 1 << 5; static constexpr uint8_t SET_CMM_CMX = 1 << 4; static constexpr uint8_t SET_CMM_DRDM = 1 << 2; static constexpr uint8_t SET_CMM_START = 1; static constexpr uint8_t CMM_REGISTER = 0x01; static constexpr uint8_t CMM_VALUE = SET_CMM_CMZ | SET_CMM_CMY | SET_CMM_CMX | SET_CMM_DRDM | SET_CMM_START; /*----------------------------------------------------------------------------*/ /* Cycle count register /*----------------------------------------------------------------------------*/ static constexpr uint8_t CYCLE_COUNT_VALUE = 0xC8; static constexpr uint8_t GAIN = CYCLE_COUNT_VALUE / 100 * 38; static constexpr uint8_t CYCLE_COUNT_START_REGISTER = 0x04; /*----------------------------------------------------------------------------*/ /* TMRC register /*----------------------------------------------------------------------------*/ static constexpr uint8_t TMRC_150HZ_VALUE = 0x94; static constexpr uint8_t TMRC_75HZ_VALUE = 0x95; static constexpr uint8_t TMRC_DEFAULT_37HZ_VALUE = 0x96; static constexpr uint8_t TMRC_REGISTER = 0x0B; static constexpr uint8_t TMRC_DEFAULT_VALUE = TMRC_75HZ_VALUE; static constexpr uint8_t MEASUREMENT_REG_START = 0x24; static constexpr uint8_t BIST_REGISTER = 0x33; static constexpr uint8_t DATA_READY_VAL = 0b1000'0000; static constexpr uint8_t STATUS_REGISTER = 0x34; static constexpr uint8_t REVID_REGISTER = 0x36; // Range in Microtesla. 1 T equals 10000 Gauss (for comparison with LIS3 MGM) static constexpr uint8_t RANGE = 800; } #endif /* MISSION_DEVICES_DEVICEDEFINITIONS_MGMHANDLERRM3100DEFINITIONS_H_ */