17#define KX134_1211_SENSITIVITY_32G (1.0f / 1024.0f)
18#define KX134_1211_SENSITIVITY_16G (1.0f / 2048.0f)
19#define KX134_1211_SENSITIVITY(scale) KX134_1211_SENSITIVITY_##scale##G
20#define KX134_1211_CNTL1 0x1B
21#define KX134_1211_CNTL1_PC1 0x80
22#define KX134_1211_CNTL1_DRDYE 0x20
23#define KX134_1211_CNTL1_RES 0x40
24#define KX134_1211_CNTL1_GSEL_32G 0x10
25#define KX134_1211_CNTL1_GSEL_16G 0x08
26#define KX134_1211_CNTL1_GSEL_8G 0x00
27#define KX134_1211_CNTL1_GSEL(scale) KX134_1211_CNTL1_GSEL_##scale##G
28#define KX134_1211_ODCNTL 0x21
29#define KX134_1211_ODCNTL_RESERVED 0x90
30#define KX134_1211_XOUT_L 0x08
31#define KX134_1211_XOUT_H 0x09
32#define KX134_1211_YOUT_L 0x0A
33#define KX134_1211_YOUT_H 0x0B
34#define KX134_1211_ZOUT_L 0x0C
35#define KX134_1211_ZOUT_H 0x0D
36#define KX134_1211_INS2 0x17
38#define KX134_1211_INS2_DRDY 0x10
40#define KX134_1211_DATA_SIZE 2
41#define KX134_1211_DATA_COUNT 3
42#define KX134_1211_DATA_TOTAL (KX134_1211_DATA_COUNT * KX134_1211_DATA_SIZE)
44typedef struct KX134_1211 {
49 uint8_t
axes[KX134_1211_DATA_COUNT];
50 int8_t
sign[KX134_1211_DATA_COUNT];
61void KX134_1211_readRegisters(
KX134_1211_t *, uint8_t, uint8_t, uint8_t *);
63void KX134_1211_writeRegister(
KX134_1211_t *, uint8_t, uint8_t);
Defines the API for the Accelerometer sensor.
uint8_t axes[KX134_1211_DATA_COUNT]
Array defining axes of mounting.
GPIOpin_t cs
Chip select GPIO.
float accelData[KX134_1211_DATA_COUNT]
Processed accelerations array.
Accel_t base
Base accelerometer API.
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.
SPI_t * spi
Parent SPI interface.
void KX134_1211_processRawBytes(Accel_t *, uint8_t *, float *)
Process raw 3-axis data to floating point accelerations.
void KX134_1211_update(Accel_t *)
Update internally stored acceleration readings.
void KX134_1211_readAccel(Accel_t *, float *)
Read 3-axis floating point accelerations.
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.
void KX134_1211_readRawBytes(Accel_t *, uint8_t *)
Read raw 3-axis data.
Struct definition for a GPIO pin.
Struct definition for SPI interface. Provides the interface for API consumers to interact with the SP...