15#define KX134_1211_SENSITIVITY_32G (1.0f / 1024.0f)
16#define KX134_1211_SENSITIVITY_16G (1.0f / 2048.0f)
17#define KX134_1211_SENSITIVITY(scale) KX134_1211_SENSITIVITY_##scale##G
18#define KX134_1211_CNTL1 0x1B
19#define KX134_1211_CNTL1_PC1 0x80
20#define KX134_1211_CNTL1_DRDYE 0x20
21#define KX134_1211_CNTL1_RES 0x40
22#define KX134_1211_CNTL1_GSEL_32G 0x10
23#define KX134_1211_CNTL1_GSEL_16G 0x08
24#define KX134_1211_CNTL1_GSEL_8G 0x00
25#define KX134_1211_CNTL1_GSEL(scale) KX134_1211_CNTL1_GSEL_##scale##G
26#define KX134_1211_ODCNTL 0x21
27#define KX134_1211_ODCNTL_RESERVED 0x90
28#define KX134_1211_XOUT_L 0x08
29#define KX134_1211_XOUT_H 0x09
30#define KX134_1211_YOUT_L 0x0A
31#define KX134_1211_YOUT_H 0x0B
32#define KX134_1211_ZOUT_L 0x0C
33#define KX134_1211_ZOUT_H 0x0D
34#define KX134_1211_INS2 0x17
36#define KX134_1211_INS2_DRDY 0x10
38#define KX134_1211_DATA_SIZE 2
39#define KX134_1211_DATA_COUNT 3
40#define KX134_1211_DATA_TOTAL (KX134_1211_DATA_COUNT * KX134_1211_DATA_SIZE)
50typedef struct KX134_1211 {
58 uint8_t
axes[KX134_1211_DATA_COUNT];
59 int8_t
sign[KX134_1211_DATA_COUNT];
70void KX134_1211_readRegisters(
KX134_1211_t *, uint8_t, uint8_t, uint8_t *);
72void KX134_1211_writeRegister(
KX134_1211_t *, uint8_t, uint8_t);
Struct definition for a GPIO pin.
void KX134_1211_processRawBytes(KX134_1211_t *, uint8_t *, float *)
Process raw 3-axis data to floating point accelerations.
void KX134_1211_readAccel(KX134_1211_t *, float *)
Read 3-axis floating point accelerations.
void KX134_1211_update(KX134_1211_t *)
Updates internally stored acceleration readings.
void KX134_1211_readRawBytes(KX134_1211_t *, uint8_t *)
Read raw 3-axis data.
KX134_1211_t KX134_1211_init(KX134_1211_t *, SPI_t *, GPIOpin_t, const uint8_t, const uint8_t *, const int8_t *)
Initialiser for a KX134-1211 accelerometer.
Struct definition for SPI interface. Provides the interface for API consumers to interact with the SP...
uint8_t axes[KX134_1211_DATA_COUNT]
Array defining axes of mounting.
void(* update)(struct KX134_1211 *)
Accel update method.
GPIOpin_t cs
Chip select GPIO.
void(* processRawBytes)(struct KX134_1211 *, uint8_t *, float *)
Process raw accel method.
void(* readRawBytes)(struct KX134_1211 *, uint8_t *)
Raw accel read method.
SPI_t * base
Parent SPI interface.
float accelData[KX134_1211_DATA_COUNT]
Processed accelerations array.
uint8_t rawAccelData[KX134_1211_DATA_TOTAL]
Raw accelerations array.
int8_t sign[KX134_1211_DATA_COUNT]
Array defining sign of axes.
float sensitivity
Accelerometer sensitivity.
void(* readAccel)(struct KX134_1211 *, float *)
Accel read method.