mirror of
https://github.com/SlimeVR/SlimeVR-Tracker-ESP.git
synced 2026-04-05 17:51:57 +02:00
64 lines
1.9 KiB
C
64 lines
1.9 KiB
C
/* 06/14/2020 Copyright Tlera Corporation
|
|
|
|
Created by Kris Winer
|
|
|
|
This sketch uses SDA/SCL on pins 21/20 (Ladybug default), respectively, and it uses the Ladybug STM32L432 Breakout Board.
|
|
The MMC5983MA is a low power magnetometer, here used as 3 DoF in a 9 DoF absolute orientation solution.
|
|
|
|
Library may be used freely and without limit with attribution.
|
|
|
|
*/
|
|
|
|
#ifndef MMC5983MA_h
|
|
#define MMC5983MA_h
|
|
|
|
//Register map for MMC5983MA'
|
|
//http://www.memsic.com/userfiles/files/DataSheets/Magnetic-Sensors-Datasheets/MMC5983MA_Datasheet.pdf
|
|
#define MMC5983MA_XOUT_0 0x00
|
|
#define MMC5983MA_XOUT_1 0x01
|
|
#define MMC5983MA_YOUT_0 0x02
|
|
#define MMC5983MA_YOUT_1 0x03
|
|
#define MMC5983MA_ZOUT_0 0x04
|
|
#define MMC5983MA_ZOUT_1 0x05
|
|
#define MMC5983MA_XYZOUT_2 0x06
|
|
#define MMC5983MA_TOUT 0x07
|
|
#define MMC5983MA_STATUS 0x08
|
|
#define MMC5983MA_CONTROL_0 0x09
|
|
#define MMC5983MA_CONTROL_1 0x0A
|
|
#define MMC5983MA_CONTROL_2 0x0B
|
|
#define MMC5983MA_CONTROL_3 0x0C
|
|
#define MMC5983MA_PRODUCT_ID 0x2F
|
|
|
|
#define MMC5983MA_ADDRESS 0x30
|
|
|
|
// Sample rates
|
|
#define MODR_ONESHOT 0x00
|
|
#define MODR_1Hz 0x01
|
|
#define MODR_10Hz 0x02
|
|
#define MODR_20Hz 0x03
|
|
#define MODR_50Hz 0x04
|
|
#define MODR_100Hz 0x05
|
|
#define MODR_200Hz 0x06 // BW = 0x01 only
|
|
#define MODR_1000Hz 0x07 // BW = 0x11 only
|
|
|
|
//Bandwidths
|
|
#define MBW_100Hz 0x00 // 8 ms measurement time
|
|
#define MBW_200Hz 0x01 // 4 ms
|
|
#define MBW_400Hz 0x02 // 2 ms
|
|
#define MBW_800Hz 0x03 // 0.5 ms
|
|
|
|
// Set/Reset as a function of measurements
|
|
#define MSET_1 0x00 // Set/Reset each data measurement
|
|
#define MSET_25 0x01 // each 25 data measurements
|
|
#define MSET_75 0x02
|
|
#define MSET_100 0x03
|
|
#define MSET_250 0x04
|
|
#define MSET_500 0x05
|
|
#define MSET_1000 0x06
|
|
#define MSET_2000 0x07
|
|
|
|
#define MMC5983MA_mRes (1.0f / 16384.0f) // mag sensitivity if using 18 bit data
|
|
#define MMC5983MA_offset 131072.0f // mag range unsigned to signed
|
|
|
|
#endif
|