AEM
kx122.h
Go to the documentation of this file.
1 #ifndef YKX122_H
2 #define YKX122_H
3 
4 #include <Arduino.h>
5 
6 #include "yspi.h"
7 #include "yADC.h"
8 #include "I2C.h"
9 
10 #define KX122_XOUT_L (0x06)
11 #define KX122_XOUT_H (0x07)
12 #define KX122_YOUT_L (0x08)
13 #define KX122_YOUT_H (0x09)
14 #define KX122_ZOUT_L (0x0A)
15 #define KX122_ZOUT_H (0x0B)
16 
17 #define KX122_WHOAMI (0x0F)
18 #define KX122_I_AM_WHO (0x1B)
19 
20 #define KX122_GET_ACC (0x06)
21 
22 #define KX122_2G (0x00)
23 #define KX122_4G (0x08)
24 #define KX122_8G (0x10)
25 #define KX122_LOW_RES (0x00)
26 #define KX122_HI_RES (0x40)
27 #define KX122_OPERATE (0x80)
28 
29 #define KX122_DR_12_5 (0x00)
30 #define KX122_DR_25 (0x01)
31 #define KX122_DR_50 (0x02)
32 #define KX122_DR_100 (0x03)
33 #define KX122_DR_200 (0x04)
34 #define KX122_DR_400 (0x05)
35 #define KX122_DR_800 (0x06)
36 #define KX122_DR_1600 (0x07)
37 #define KX122_DR_0_781 (0x08)
38 #define KX122_DR_1_563 (0x09)
39 #define KX122_DR_3_125 (0x0A)
40 #define KX122_DR_6_25 (0x0B)
41 #define KX122_DR_3200 (0x0C)
42 #define KX122_DR_6400 (0x0D)
43 #define KX122_DR_12800 (0x0E)
44 #define KX122_DR_25600 (0x0F)
45 
46 #define KX122_IIR_BYPASS (0x80)
47 #define KX122_LPRO (0x40)
48 #define KX122_OSA3 (0x08)
49 #define KX122_OSA2 (0x04)
50 #define KX122_OSA1 (0x02)
51 #define KX122_OSA0 (0x01)
52 
53 #define KX122_CNTL1 (0x18) // main features control registger, need to set in 2 phases,
54  // first without operational mode,
55  // then set operational
56 #define KX122_ODCNTL (0x1B) // output data rate control register
57 
58 
63 class YKX122 : public YADC {
64  protected:
65  static const uint8_t regVec[][2];
66  const uint8_t addr;
67  void configKX122() const;
69  public:
70  static const uint8_t addrVec[];
71  YKX122(uint8_t address, const YSPI *const y = NULL);
72  float acquireChannel(uint8_t channel) ;
73  bool selftest(void) ;
74  uint8_t getAddr() const;
75 };
76 #endif
77 
78 
float acquireChannel(uint8_t channel)
Definition: kx122.cpp:25
YKX122(uint8_t address, const YSPI *const y=NULL)
Definition: kx122.cpp:21
static const uint8_t regVec[][2]
Definition: kx122.h:65
const uint8_t addr
Definition: kx122.h:66
uint8_t getAddr() const
Definition: kx122.cpp:41
Definition: kx122.h:63
Definition: yspi.h:34
static const uint8_t addrVec[]
Definition: kx122.h:70
bool selftest(void)
Definition: kx122.cpp:34
void configKX122() const
Definition: kx122.cpp:9
Definition: yADC.h:17