11#include "stm32f439xx.h"
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
41#define KX134_1211_DATA_SIZE 2
42#define KX134_1211_DATA_COUNT 3
43#define KX134_1211_DATA_TOTAL (KX134_1211_DATA_COUNT * KX134_1211_DATA_SIZE)
60 uint8_t
axes[KX134_1211_DATA_COUNT];
61 int8_t
sign[KX134_1211_DATA_COUNT];
72void KX134_1211_readRegisters(
KX134_1211 *, uint8_t, uint8_t, uint8_t *);
73uint8_t KX134_1211_readRegister(
KX134_1211 *, uint8_t);
74void KX134_1211_writeRegister(
KX134_1211 *, uint8_t, uint8_t);
void KX134_1211_readAccel(KX134_1211 *, float *)
Read 3-axis floating point accelerations.
void KX134_1211_processRawBytes(KX134_1211 *, uint8_t *, float *)
Process raw 3-axis data to floating point accelerations.
void KX134_1211_readRawBytes(KX134_1211 *, uint8_t *)
Read raw 3-axis data.
void KX134_1211_update(KX134_1211 *)
Updates internally stored acceleration readings.
DeviceHandle_t KX134_1211_init(KX134_1211 *, char[DEVICE_NAME_LENGTH], GPIO_TypeDef *, unsigned long, const uint8_t, const uint8_t *, const int8_t *)
Initialiser for a KX134-1211 accelerometer.
uint8_t axes[KX134_1211_DATA_COUNT]
Array defining axes of mounting.
void(* update)(struct KX134_1211 *)
Accel update method.
SPI base
Parent SPI interface.
void(* processRawBytes)(struct KX134_1211 *, uint8_t *, float *)
Process raw accel method.
void(* readRawBytes)(struct KX134_1211 *, uint8_t *)
Raw accel read method.
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.
Struct definition for SPI interface. Provides the interface for API consumers to interact with the SP...