
Temperature/humidity/pressure values broadcast using BMP180 & Si7021 and onboard temperature sensor
Dependencies: BLE_API TMP_nrf51 mbed nRF51822
Fork of VTT_NODEV3_LIS3DH by
LIS3DH.h@0:de3e4a57ebe0, 2015-12-08 (annotated)
- Committer:
- jejuho
- Date:
- Tue Dec 08 11:58:59 2015 +0000
- Revision:
- 0:de3e4a57ebe0
Works OK.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jejuho | 0:de3e4a57ebe0 | 1 | #ifndef LIS3DH_H |
jejuho | 0:de3e4a57ebe0 | 2 | #define LIS3DH_H |
jejuho | 0:de3e4a57ebe0 | 3 | |
jejuho | 0:de3e4a57ebe0 | 4 | #include "mbed.h" |
jejuho | 0:de3e4a57ebe0 | 5 | |
jejuho | 0:de3e4a57ebe0 | 6 | namespace mbed { |
jejuho | 0:de3e4a57ebe0 | 7 | |
jejuho | 0:de3e4a57ebe0 | 8 | #ifndef __ARCHDEP__TYPES |
jejuho | 0:de3e4a57ebe0 | 9 | #define __ARCHDEP__TYPES |
jejuho | 0:de3e4a57ebe0 | 10 | |
jejuho | 0:de3e4a57ebe0 | 11 | typedef unsigned char u8_t; |
jejuho | 0:de3e4a57ebe0 | 12 | typedef unsigned short int u16_t; |
jejuho | 0:de3e4a57ebe0 | 13 | typedef short int i16_t; |
jejuho | 0:de3e4a57ebe0 | 14 | typedef signed char i8_t; |
jejuho | 0:de3e4a57ebe0 | 15 | |
jejuho | 0:de3e4a57ebe0 | 16 | #endif /*__ARCHDEP__TYPES*/ |
jejuho | 0:de3e4a57ebe0 | 17 | |
jejuho | 0:de3e4a57ebe0 | 18 | typedef u8_t LIS3DH_IntPinConf_t; |
jejuho | 0:de3e4a57ebe0 | 19 | typedef u8_t LIS3DH_Axis_t; |
jejuho | 0:de3e4a57ebe0 | 20 | typedef u8_t LIS3DH_Int1Conf_t; |
jejuho | 0:de3e4a57ebe0 | 21 | |
jejuho | 0:de3e4a57ebe0 | 22 | |
jejuho | 0:de3e4a57ebe0 | 23 | //define structure |
jejuho | 0:de3e4a57ebe0 | 24 | #ifndef __SHARED__TYPES |
jejuho | 0:de3e4a57ebe0 | 25 | #define __SHARED__TYPES |
jejuho | 0:de3e4a57ebe0 | 26 | |
jejuho | 0:de3e4a57ebe0 | 27 | typedef enum { |
jejuho | 0:de3e4a57ebe0 | 28 | MEMS_SUCCESS = 0x01, |
jejuho | 0:de3e4a57ebe0 | 29 | MEMS_ERROR = 0x00 |
jejuho | 0:de3e4a57ebe0 | 30 | } status_t; |
jejuho | 0:de3e4a57ebe0 | 31 | |
jejuho | 0:de3e4a57ebe0 | 32 | typedef enum { |
jejuho | 0:de3e4a57ebe0 | 33 | MEMS_ENABLE = 0x01, |
jejuho | 0:de3e4a57ebe0 | 34 | MEMS_DISABLE = 0x00 |
jejuho | 0:de3e4a57ebe0 | 35 | } State_t; |
jejuho | 0:de3e4a57ebe0 | 36 | |
jejuho | 0:de3e4a57ebe0 | 37 | typedef __packed struct { |
jejuho | 0:de3e4a57ebe0 | 38 | i16_t AXIS_X; |
jejuho | 0:de3e4a57ebe0 | 39 | i16_t AXIS_Y; |
jejuho | 0:de3e4a57ebe0 | 40 | i16_t AXIS_Z; |
jejuho | 0:de3e4a57ebe0 | 41 | } AxesRaw_t; |
jejuho | 0:de3e4a57ebe0 | 42 | |
jejuho | 0:de3e4a57ebe0 | 43 | #endif /*__SHARED__TYPES*/ |
jejuho | 0:de3e4a57ebe0 | 44 | |
jejuho | 0:de3e4a57ebe0 | 45 | typedef enum { |
jejuho | 0:de3e4a57ebe0 | 46 | LIS3DH_ODR_1Hz = 0x01, |
jejuho | 0:de3e4a57ebe0 | 47 | LIS3DH_ODR_10Hz = 0x02, |
jejuho | 0:de3e4a57ebe0 | 48 | LIS3DH_ODR_25Hz = 0x03, |
jejuho | 0:de3e4a57ebe0 | 49 | LIS3DH_ODR_50Hz = 0x04, |
jejuho | 0:de3e4a57ebe0 | 50 | LIS3DH_ODR_100Hz = 0x05, |
jejuho | 0:de3e4a57ebe0 | 51 | LIS3DH_ODR_200Hz = 0x06, |
jejuho | 0:de3e4a57ebe0 | 52 | LIS3DH_ODR_400Hz = 0x07, |
jejuho | 0:de3e4a57ebe0 | 53 | LIS3DH_ODR_1620Hz_LP = 0x08, |
jejuho | 0:de3e4a57ebe0 | 54 | LIS3DH_ODR_1344Hz_NP_5367HZ_LP = 0x09 |
jejuho | 0:de3e4a57ebe0 | 55 | } LIS3DH_ODR_t; |
jejuho | 0:de3e4a57ebe0 | 56 | |
jejuho | 0:de3e4a57ebe0 | 57 | typedef enum { |
jejuho | 0:de3e4a57ebe0 | 58 | LIS3DH_POWER_DOWN = 0x00, |
jejuho | 0:de3e4a57ebe0 | 59 | LIS3DH_LOW_POWER = 0x01, |
jejuho | 0:de3e4a57ebe0 | 60 | LIS3DH_NORMAL = 0x02 |
jejuho | 0:de3e4a57ebe0 | 61 | } LIS3DH_Mode_t; |
jejuho | 0:de3e4a57ebe0 | 62 | |
jejuho | 0:de3e4a57ebe0 | 63 | typedef enum { |
jejuho | 0:de3e4a57ebe0 | 64 | LIS3DH_HPM_NORMAL_MODE_RES = 0x00, |
jejuho | 0:de3e4a57ebe0 | 65 | LIS3DH_HPM_REF_SIGNAL = 0x01, |
jejuho | 0:de3e4a57ebe0 | 66 | LIS3DH_HPM_NORMAL_MODE = 0x02, |
jejuho | 0:de3e4a57ebe0 | 67 | LIS3DH_HPM_AUTORESET_INT = 0x03 |
jejuho | 0:de3e4a57ebe0 | 68 | } LIS3DH_HPFMode_t; |
jejuho | 0:de3e4a57ebe0 | 69 | |
jejuho | 0:de3e4a57ebe0 | 70 | typedef enum { |
jejuho | 0:de3e4a57ebe0 | 71 | LIS3DH_HPFCF_0 = 0x00, |
jejuho | 0:de3e4a57ebe0 | 72 | LIS3DH_HPFCF_1 = 0x01, |
jejuho | 0:de3e4a57ebe0 | 73 | LIS3DH_HPFCF_2 = 0x02, |
jejuho | 0:de3e4a57ebe0 | 74 | LIS3DH_HPFCF_3 = 0x03 |
jejuho | 0:de3e4a57ebe0 | 75 | } LIS3DH_HPFCutOffFreq_t; |
jejuho | 0:de3e4a57ebe0 | 76 | |
jejuho | 0:de3e4a57ebe0 | 77 | typedef struct { |
jejuho | 0:de3e4a57ebe0 | 78 | u16_t AUX_1; |
jejuho | 0:de3e4a57ebe0 | 79 | u16_t AUX_2; |
jejuho | 0:de3e4a57ebe0 | 80 | u16_t AUX_3; |
jejuho | 0:de3e4a57ebe0 | 81 | } LIS3DH_Aux123Raw_t; |
jejuho | 0:de3e4a57ebe0 | 82 | |
jejuho | 0:de3e4a57ebe0 | 83 | typedef enum { |
jejuho | 0:de3e4a57ebe0 | 84 | LIS3DH_FULLSCALE_2 = 0x00, |
jejuho | 0:de3e4a57ebe0 | 85 | LIS3DH_FULLSCALE_4 = 0x01, |
jejuho | 0:de3e4a57ebe0 | 86 | LIS3DH_FULLSCALE_8 = 0x02, |
jejuho | 0:de3e4a57ebe0 | 87 | LIS3DH_FULLSCALE_16 = 0x03 |
jejuho | 0:de3e4a57ebe0 | 88 | } LIS3DH_Fullscale_t; |
jejuho | 0:de3e4a57ebe0 | 89 | |
jejuho | 0:de3e4a57ebe0 | 90 | typedef enum { |
jejuho | 0:de3e4a57ebe0 | 91 | LIS3DH_BLE_LSB = 0x00, |
jejuho | 0:de3e4a57ebe0 | 92 | LIS3DH_BLE_MSB = 0x01 |
jejuho | 0:de3e4a57ebe0 | 93 | } LIS3DH_Endianess_t; |
jejuho | 0:de3e4a57ebe0 | 94 | |
jejuho | 0:de3e4a57ebe0 | 95 | typedef enum { |
jejuho | 0:de3e4a57ebe0 | 96 | LIS3DH_SELF_TEST_DISABLE = 0x00, |
jejuho | 0:de3e4a57ebe0 | 97 | LIS3DH_SELF_TEST_0 = 0x01, |
jejuho | 0:de3e4a57ebe0 | 98 | LIS3DH_SELF_TEST_1 = 0x02 |
jejuho | 0:de3e4a57ebe0 | 99 | } LIS3DH_SelfTest_t; |
jejuho | 0:de3e4a57ebe0 | 100 | |
jejuho | 0:de3e4a57ebe0 | 101 | typedef enum { |
jejuho | 0:de3e4a57ebe0 | 102 | LIS3DH_FIFO_BYPASS_MODE = 0x00, |
jejuho | 0:de3e4a57ebe0 | 103 | LIS3DH_FIFO_MODE = 0x01, |
jejuho | 0:de3e4a57ebe0 | 104 | LIS3DH_FIFO_STREAM_MODE = 0x02, |
jejuho | 0:de3e4a57ebe0 | 105 | LIS3DH_FIFO_TRIGGER_MODE = 0x03, |
jejuho | 0:de3e4a57ebe0 | 106 | LIS3DH_FIFO_DISABLE = 0x04 |
jejuho | 0:de3e4a57ebe0 | 107 | } LIS3DH_FifoMode_t; |
jejuho | 0:de3e4a57ebe0 | 108 | |
jejuho | 0:de3e4a57ebe0 | 109 | typedef enum { |
jejuho | 0:de3e4a57ebe0 | 110 | LIS3DH_TRIG_INT1 = 0x00, |
jejuho | 0:de3e4a57ebe0 | 111 | LIS3DH_TRIG_INT2 = 0x01 |
jejuho | 0:de3e4a57ebe0 | 112 | } LIS3DH_TrigInt_t; |
jejuho | 0:de3e4a57ebe0 | 113 | |
jejuho | 0:de3e4a57ebe0 | 114 | typedef enum { |
jejuho | 0:de3e4a57ebe0 | 115 | LIS3DH_SPI_4_WIRE = 0x00, |
jejuho | 0:de3e4a57ebe0 | 116 | LIS3DH_SPI_3_WIRE = 0x01 |
jejuho | 0:de3e4a57ebe0 | 117 | } LIS3DH_SPIMode_t; |
jejuho | 0:de3e4a57ebe0 | 118 | |
jejuho | 0:de3e4a57ebe0 | 119 | typedef enum { |
jejuho | 0:de3e4a57ebe0 | 120 | LIS3DH_X_ENABLE = 0x01, |
jejuho | 0:de3e4a57ebe0 | 121 | LIS3DH_X_DISABLE = 0x00, |
jejuho | 0:de3e4a57ebe0 | 122 | LIS3DH_Y_ENABLE = 0x02, |
jejuho | 0:de3e4a57ebe0 | 123 | LIS3DH_Y_DISABLE = 0x00, |
jejuho | 0:de3e4a57ebe0 | 124 | LIS3DH_Z_ENABLE = 0x04, |
jejuho | 0:de3e4a57ebe0 | 125 | LIS3DH_Z_DISABLE = 0x00 |
jejuho | 0:de3e4a57ebe0 | 126 | } LIS3DH_AXISenable_t; |
jejuho | 0:de3e4a57ebe0 | 127 | |
jejuho | 0:de3e4a57ebe0 | 128 | typedef enum { |
jejuho | 0:de3e4a57ebe0 | 129 | LIS3DH_INT1_6D_4D_DISABLE = 0x00, |
jejuho | 0:de3e4a57ebe0 | 130 | LIS3DH_INT1_6D_ENABLE = 0x01, |
jejuho | 0:de3e4a57ebe0 | 131 | LIS3DH_INT1_4D_ENABLE = 0x02 |
jejuho | 0:de3e4a57ebe0 | 132 | } LIS3DH_INT_6D_4D_t; |
jejuho | 0:de3e4a57ebe0 | 133 | |
jejuho | 0:de3e4a57ebe0 | 134 | typedef enum { |
jejuho | 0:de3e4a57ebe0 | 135 | LIS3DH_UP_SX = 0x44, |
jejuho | 0:de3e4a57ebe0 | 136 | LIS3DH_UP_DX = 0x42, |
jejuho | 0:de3e4a57ebe0 | 137 | LIS3DH_DW_SX = 0x41, |
jejuho | 0:de3e4a57ebe0 | 138 | LIS3DH_DW_DX = 0x48, |
jejuho | 0:de3e4a57ebe0 | 139 | LIS3DH_TOP = 0x60, |
jejuho | 0:de3e4a57ebe0 | 140 | LIS3DH_BOTTOM = 0x50 |
jejuho | 0:de3e4a57ebe0 | 141 | } LIS3DH_POSITION_6D_t; |
jejuho | 0:de3e4a57ebe0 | 142 | |
jejuho | 0:de3e4a57ebe0 | 143 | typedef enum { |
jejuho | 0:de3e4a57ebe0 | 144 | LIS3DH_INT_MODE_OR = 0x00, |
jejuho | 0:de3e4a57ebe0 | 145 | LIS3DH_INT_MODE_6D_MOVEMENT = 0x01, |
jejuho | 0:de3e4a57ebe0 | 146 | LIS3DH_INT_MODE_AND = 0x02, |
jejuho | 0:de3e4a57ebe0 | 147 | LIS3DH_INT_MODE_6D_POSITION = 0x03 |
jejuho | 0:de3e4a57ebe0 | 148 | } LIS3DH_Int1Mode_t; |
jejuho | 0:de3e4a57ebe0 | 149 | |
jejuho | 0:de3e4a57ebe0 | 150 | |
jejuho | 0:de3e4a57ebe0 | 151 | //interrupt click response |
jejuho | 0:de3e4a57ebe0 | 152 | // b7 = don't care b6 = IA b5 = DClick b4 = Sclick b3 = Sign |
jejuho | 0:de3e4a57ebe0 | 153 | // b2 = z b1 = y b0 = x |
jejuho | 0:de3e4a57ebe0 | 154 | typedef enum { |
jejuho | 0:de3e4a57ebe0 | 155 | LIS3DH_DCLICK_Z_P = 0x24, |
jejuho | 0:de3e4a57ebe0 | 156 | LIS3DH_DCLICK_Z_N = 0x2C, |
jejuho | 0:de3e4a57ebe0 | 157 | LIS3DH_SCLICK_Z_P = 0x14, |
jejuho | 0:de3e4a57ebe0 | 158 | LIS3DH_SCLICK_Z_N = 0x1C, |
jejuho | 0:de3e4a57ebe0 | 159 | LIS3DH_DCLICK_Y_P = 0x22, |
jejuho | 0:de3e4a57ebe0 | 160 | LIS3DH_DCLICK_Y_N = 0x2A, |
jejuho | 0:de3e4a57ebe0 | 161 | LIS3DH_SCLICK_Y_P = 0x12, |
jejuho | 0:de3e4a57ebe0 | 162 | LIS3DH_SCLICK_Y_N = 0x1A, |
jejuho | 0:de3e4a57ebe0 | 163 | LIS3DH_DCLICK_X_P = 0x21, |
jejuho | 0:de3e4a57ebe0 | 164 | LIS3DH_DCLICK_X_N = 0x29, |
jejuho | 0:de3e4a57ebe0 | 165 | LIS3DH_SCLICK_X_P = 0x11, |
jejuho | 0:de3e4a57ebe0 | 166 | LIS3DH_SCLICK_X_N = 0x19, |
jejuho | 0:de3e4a57ebe0 | 167 | LIS3DH_NO_CLICK = 0x00 |
jejuho | 0:de3e4a57ebe0 | 168 | } LIS3DH_Click_Response; |
jejuho | 0:de3e4a57ebe0 | 169 | |
jejuho | 0:de3e4a57ebe0 | 170 | //TODO: start from here and manage the shared macros etc before this |
jejuho | 0:de3e4a57ebe0 | 171 | |
jejuho | 0:de3e4a57ebe0 | 172 | /* Exported constants --------------------------------------------------------*/ |
jejuho | 0:de3e4a57ebe0 | 173 | |
jejuho | 0:de3e4a57ebe0 | 174 | #ifndef __SHARED__CONSTANTS |
jejuho | 0:de3e4a57ebe0 | 175 | #define __SHARED__CONSTANTS |
jejuho | 0:de3e4a57ebe0 | 176 | |
jejuho | 0:de3e4a57ebe0 | 177 | #define MEMS_SET 0x01 |
jejuho | 0:de3e4a57ebe0 | 178 | #define MEMS_RESET 0x00 |
jejuho | 0:de3e4a57ebe0 | 179 | |
jejuho | 0:de3e4a57ebe0 | 180 | #endif /*__SHARED__CONSTANTS*/ |
jejuho | 0:de3e4a57ebe0 | 181 | |
jejuho | 0:de3e4a57ebe0 | 182 | |
jejuho | 0:de3e4a57ebe0 | 183 | //Register Definition |
jejuho | 0:de3e4a57ebe0 | 184 | #define LIS3DH_WHO_AM_I 0x0F // device identification register (00110011 default value=0x33) |
jejuho | 0:de3e4a57ebe0 | 185 | |
jejuho | 0:de3e4a57ebe0 | 186 | // CONTROL REGISTER 1 |
jejuho | 0:de3e4a57ebe0 | 187 | #define LIS3DH_CTRL_REG1 0x20 |
jejuho | 0:de3e4a57ebe0 | 188 | #define LIS3DH_ODR_BIT BIT(4) |
jejuho | 0:de3e4a57ebe0 | 189 | #define LIS3DH_LPEN BIT(3) |
jejuho | 0:de3e4a57ebe0 | 190 | #define LIS3DH_ZEN BIT(2) |
jejuho | 0:de3e4a57ebe0 | 191 | #define LIS3DH_YEN BIT(1) |
jejuho | 0:de3e4a57ebe0 | 192 | #define LIS3DH_XEN BIT(0) |
jejuho | 0:de3e4a57ebe0 | 193 | |
jejuho | 0:de3e4a57ebe0 | 194 | //CONTROL REGISTER 2 |
jejuho | 0:de3e4a57ebe0 | 195 | #define LIS3DH_CTRL_REG2 0x21 |
jejuho | 0:de3e4a57ebe0 | 196 | #define LIS3DH_HPM BIT(6) |
jejuho | 0:de3e4a57ebe0 | 197 | #define LIS3DH_HPCF BIT(4) |
jejuho | 0:de3e4a57ebe0 | 198 | #define LIS3DH_FDS BIT(3) |
jejuho | 0:de3e4a57ebe0 | 199 | #define LIS3DH_HPCLICK BIT(2) |
jejuho | 0:de3e4a57ebe0 | 200 | #define LIS3DH_HPIS2 BIT(1) |
jejuho | 0:de3e4a57ebe0 | 201 | #define LIS3DH_HPIS1 BIT(0) |
jejuho | 0:de3e4a57ebe0 | 202 | |
jejuho | 0:de3e4a57ebe0 | 203 | //CONTROL REGISTER 3 |
jejuho | 0:de3e4a57ebe0 | 204 | #define LIS3DH_CTRL_REG3 0x22 |
jejuho | 0:de3e4a57ebe0 | 205 | #define LIS3DH_I1_CLICK BIT(7) |
jejuho | 0:de3e4a57ebe0 | 206 | #define LIS3DH_I1_AOI1 BIT(6) |
jejuho | 0:de3e4a57ebe0 | 207 | #define LIS3DH_I1_AOI2 BIT(5) |
jejuho | 0:de3e4a57ebe0 | 208 | #define LIS3DH_I1_DRDY1 BIT(4) |
jejuho | 0:de3e4a57ebe0 | 209 | #define LIS3DH_I1_DRDY2 BIT(3) |
jejuho | 0:de3e4a57ebe0 | 210 | #define LIS3DH_I1_WTM BIT(2) |
jejuho | 0:de3e4a57ebe0 | 211 | #define LIS3DH_I1_ORUN BIT(1) |
jejuho | 0:de3e4a57ebe0 | 212 | |
jejuho | 0:de3e4a57ebe0 | 213 | //CONTROL REGISTER 6 |
jejuho | 0:de3e4a57ebe0 | 214 | #define LIS3DH_CTRL_REG6 0x25 |
jejuho | 0:de3e4a57ebe0 | 215 | #define LIS3DH_I2_CLICK BIT(7) |
jejuho | 0:de3e4a57ebe0 | 216 | #define LIS3DH_I2_INT1 BIT(6) |
jejuho | 0:de3e4a57ebe0 | 217 | #define LIS3DH_I2_BOOT BIT(4) |
jejuho | 0:de3e4a57ebe0 | 218 | #define LIS3DH_H_LACTIVE BIT(1) |
jejuho | 0:de3e4a57ebe0 | 219 | |
jejuho | 0:de3e4a57ebe0 | 220 | //TEMPERATURE CONFIG REGISTER |
jejuho | 0:de3e4a57ebe0 | 221 | #define LIS3DH_TEMP_CFG_REG 0x1F |
jejuho | 0:de3e4a57ebe0 | 222 | #define LIS3DH_ADC_PD BIT(7) |
jejuho | 0:de3e4a57ebe0 | 223 | #define LIS3DH_TEMP_EN BIT(6) |
jejuho | 0:de3e4a57ebe0 | 224 | |
jejuho | 0:de3e4a57ebe0 | 225 | //CONTROL REGISTER 4 |
jejuho | 0:de3e4a57ebe0 | 226 | #define LIS3DH_CTRL_REG4 0x23 |
jejuho | 0:de3e4a57ebe0 | 227 | #define LIS3DH_BDU BIT(7) |
jejuho | 0:de3e4a57ebe0 | 228 | #define LIS3DH_BLE BIT(6) |
jejuho | 0:de3e4a57ebe0 | 229 | #define LIS3DH_FS BIT(4) |
jejuho | 0:de3e4a57ebe0 | 230 | #define LIS3DH_HR BIT(3) |
jejuho | 0:de3e4a57ebe0 | 231 | #define LIS3DH_ST BIT(1) |
jejuho | 0:de3e4a57ebe0 | 232 | #define LIS3DH_SIM BIT(0) |
jejuho | 0:de3e4a57ebe0 | 233 | |
jejuho | 0:de3e4a57ebe0 | 234 | //CONTROL REGISTER 5 |
jejuho | 0:de3e4a57ebe0 | 235 | #define LIS3DH_CTRL_REG5 0x24 |
jejuho | 0:de3e4a57ebe0 | 236 | #define LIS3DH_BOOT BIT(7) |
jejuho | 0:de3e4a57ebe0 | 237 | #define LIS3DH_FIFO_EN BIT(6) |
jejuho | 0:de3e4a57ebe0 | 238 | #define LIS3DH_LIR_INT1 BIT(3) |
jejuho | 0:de3e4a57ebe0 | 239 | #define LIS3DH_D4D_INT1 BIT(2) |
jejuho | 0:de3e4a57ebe0 | 240 | |
jejuho | 0:de3e4a57ebe0 | 241 | //REFERENCE/DATA_CAPTURE |
jejuho | 0:de3e4a57ebe0 | 242 | #define LIS3DH_REFERENCE_REG 0x26 |
jejuho | 0:de3e4a57ebe0 | 243 | #define LIS3DH_REF BIT(0) |
jejuho | 0:de3e4a57ebe0 | 244 | |
jejuho | 0:de3e4a57ebe0 | 245 | //STATUS_REG_AXIES |
jejuho | 0:de3e4a57ebe0 | 246 | #define LIS3DH_STATUS_REG 0x27 |
jejuho | 0:de3e4a57ebe0 | 247 | #define LIS3DH_ZYXOR BIT(7) |
jejuho | 0:de3e4a57ebe0 | 248 | #define LIS3DH_ZOR BIT(6) |
jejuho | 0:de3e4a57ebe0 | 249 | #define LIS3DH_YOR BIT(5) |
jejuho | 0:de3e4a57ebe0 | 250 | #define LIS3DH_XOR BIT(4) |
jejuho | 0:de3e4a57ebe0 | 251 | #define LIS3DH_ZYXDA BIT(3) |
jejuho | 0:de3e4a57ebe0 | 252 | #define LIS3DH_ZDA BIT(2) |
jejuho | 0:de3e4a57ebe0 | 253 | #define LIS3DH_YDA BIT(1) |
jejuho | 0:de3e4a57ebe0 | 254 | #define LIS3DH_XDA BIT(0) |
jejuho | 0:de3e4a57ebe0 | 255 | |
jejuho | 0:de3e4a57ebe0 | 256 | //STATUS_REG_AUX |
jejuho | 0:de3e4a57ebe0 | 257 | #define LIS3DH_STATUS_AUX 0x07 |
jejuho | 0:de3e4a57ebe0 | 258 | |
jejuho | 0:de3e4a57ebe0 | 259 | //INTERRUPT 1 CONFIGURATION |
jejuho | 0:de3e4a57ebe0 | 260 | #define LIS3DH_INT1_CFG 0x30 |
jejuho | 0:de3e4a57ebe0 | 261 | #define LIS3DH_ANDOR BIT(7) |
jejuho | 0:de3e4a57ebe0 | 262 | #define LIS3DH_INT_6D BIT(6) |
jejuho | 0:de3e4a57ebe0 | 263 | #define LIS3DH_ZHIE BIT(5) |
jejuho | 0:de3e4a57ebe0 | 264 | #define LIS3DH_ZLIE BIT(4) |
jejuho | 0:de3e4a57ebe0 | 265 | #define LIS3DH_YHIE BIT(3) |
jejuho | 0:de3e4a57ebe0 | 266 | #define LIS3DH_YLIE BIT(2) |
jejuho | 0:de3e4a57ebe0 | 267 | #define LIS3DH_XHIE BIT(1) |
jejuho | 0:de3e4a57ebe0 | 268 | #define LIS3DH_XLIE BIT(0) |
jejuho | 0:de3e4a57ebe0 | 269 | |
jejuho | 0:de3e4a57ebe0 | 270 | //FIFO CONTROL REGISTER |
jejuho | 0:de3e4a57ebe0 | 271 | #define LIS3DH_FIFO_CTRL_REG 0x2E |
jejuho | 0:de3e4a57ebe0 | 272 | #define LIS3DH_FM BIT(6) |
jejuho | 0:de3e4a57ebe0 | 273 | #define LIS3DH_TR BIT(5) |
jejuho | 0:de3e4a57ebe0 | 274 | #define LIS3DH_FTH BIT(0) |
jejuho | 0:de3e4a57ebe0 | 275 | |
jejuho | 0:de3e4a57ebe0 | 276 | //CONTROL REG3 bit mask |
jejuho | 0:de3e4a57ebe0 | 277 | #define LIS3DH_CLICK_ON_PIN_INT1_ENABLE 0x80 |
jejuho | 0:de3e4a57ebe0 | 278 | #define LIS3DH_CLICK_ON_PIN_INT1_DISABLE 0x00 |
jejuho | 0:de3e4a57ebe0 | 279 | #define LIS3DH_I1_INT1_ON_PIN_INT1_ENABLE 0x40 |
jejuho | 0:de3e4a57ebe0 | 280 | #define LIS3DH_I1_INT1_ON_PIN_INT1_DISABLE 0x00 |
jejuho | 0:de3e4a57ebe0 | 281 | #define LIS3DH_I1_INT2_ON_PIN_INT1_ENABLE 0x20 |
jejuho | 0:de3e4a57ebe0 | 282 | #define LIS3DH_I1_INT2_ON_PIN_INT1_DISABLE 0x00 |
jejuho | 0:de3e4a57ebe0 | 283 | #define LIS3DH_I1_DRDY1_ON_INT1_ENABLE 0x10 |
jejuho | 0:de3e4a57ebe0 | 284 | #define LIS3DH_I1_DRDY1_ON_INT1_DISABLE 0x00 |
jejuho | 0:de3e4a57ebe0 | 285 | #define LIS3DH_I1_DRDY2_ON_INT1_ENABLE 0x08 |
jejuho | 0:de3e4a57ebe0 | 286 | #define LIS3DH_I1_DRDY2_ON_INT1_DISABLE 0x00 |
jejuho | 0:de3e4a57ebe0 | 287 | #define LIS3DH_WTM_ON_INT1_ENABLE 0x04 |
jejuho | 0:de3e4a57ebe0 | 288 | #define LIS3DH_WTM_ON_INT1_DISABLE 0x00 |
jejuho | 0:de3e4a57ebe0 | 289 | #define LIS3DH_INT1_OVERRUN_ENABLE 0x02 |
jejuho | 0:de3e4a57ebe0 | 290 | #define LIS3DH_INT1_OVERRUN_DISABLE 0x00 |
jejuho | 0:de3e4a57ebe0 | 291 | |
jejuho | 0:de3e4a57ebe0 | 292 | //CONTROL REG6 bit mask |
jejuho | 0:de3e4a57ebe0 | 293 | #define LIS3DH_CLICK_ON_PIN_INT2_ENABLE 0x80 |
jejuho | 0:de3e4a57ebe0 | 294 | #define LIS3DH_CLICK_ON_PIN_INT2_DISABLE 0x00 |
jejuho | 0:de3e4a57ebe0 | 295 | #define LIS3DH_I2_INT1_ON_PIN_INT2_ENABLE 0x40 |
jejuho | 0:de3e4a57ebe0 | 296 | #define LIS3DH_I2_INT1_ON_PIN_INT2_DISABLE 0x00 |
jejuho | 0:de3e4a57ebe0 | 297 | #define LIS3DH_I2_INT2_ON_PIN_INT2_ENABLE 0x20 |
jejuho | 0:de3e4a57ebe0 | 298 | #define LIS3DH_I2_INT2_ON_PIN_INT2_DISABLE 0x00 |
jejuho | 0:de3e4a57ebe0 | 299 | #define LIS3DH_I2_BOOT_ON_INT2_ENABLE 0x10 |
jejuho | 0:de3e4a57ebe0 | 300 | #define LIS3DH_I2_BOOT_ON_INT2_DISABLE 0x00 |
jejuho | 0:de3e4a57ebe0 | 301 | #define LIS3DH_INT_ACTIVE_HIGH 0x00 |
jejuho | 0:de3e4a57ebe0 | 302 | #define LIS3DH_INT_ACTIVE_LOW 0x02 |
jejuho | 0:de3e4a57ebe0 | 303 | |
jejuho | 0:de3e4a57ebe0 | 304 | //INT1_CFG bit mask |
jejuho | 0:de3e4a57ebe0 | 305 | #define LIS3DH_INT1_AND 0x80 |
jejuho | 0:de3e4a57ebe0 | 306 | #define LIS3DH_INT1_OR 0x00 |
jejuho | 0:de3e4a57ebe0 | 307 | #define LIS3DH_INT1_ZHIE_ENABLE 0x20 |
jejuho | 0:de3e4a57ebe0 | 308 | #define LIS3DH_INT1_ZHIE_DISABLE 0x00 |
jejuho | 0:de3e4a57ebe0 | 309 | #define LIS3DH_INT1_ZLIE_ENABLE 0x10 |
jejuho | 0:de3e4a57ebe0 | 310 | #define LIS3DH_INT1_ZLIE_DISABLE 0x00 |
jejuho | 0:de3e4a57ebe0 | 311 | #define LIS3DH_INT1_YHIE_ENABLE 0x08 |
jejuho | 0:de3e4a57ebe0 | 312 | #define LIS3DH_INT1_YHIE_DISABLE 0x00 |
jejuho | 0:de3e4a57ebe0 | 313 | #define LIS3DH_INT1_YLIE_ENABLE 0x04 |
jejuho | 0:de3e4a57ebe0 | 314 | #define LIS3DH_INT1_YLIE_DISABLE 0x00 |
jejuho | 0:de3e4a57ebe0 | 315 | #define LIS3DH_INT1_XHIE_ENABLE 0x02 |
jejuho | 0:de3e4a57ebe0 | 316 | #define LIS3DH_INT1_XHIE_DISABLE 0x00 |
jejuho | 0:de3e4a57ebe0 | 317 | #define LIS3DH_INT1_XLIE_ENABLE 0x01 |
jejuho | 0:de3e4a57ebe0 | 318 | #define LIS3DH_INT1_XLIE_DISABLE 0x00 |
jejuho | 0:de3e4a57ebe0 | 319 | |
jejuho | 0:de3e4a57ebe0 | 320 | //INT1_SRC bit mask |
jejuho | 0:de3e4a57ebe0 | 321 | #define LIS3DH_INT1_SRC_IA 0x40 |
jejuho | 0:de3e4a57ebe0 | 322 | #define LIS3DH_INT1_SRC_ZH 0x20 |
jejuho | 0:de3e4a57ebe0 | 323 | #define LIS3DH_INT1_SRC_ZL 0x10 |
jejuho | 0:de3e4a57ebe0 | 324 | #define LIS3DH_INT1_SRC_YH 0x08 |
jejuho | 0:de3e4a57ebe0 | 325 | #define LIS3DH_INT1_SRC_YL 0x04 |
jejuho | 0:de3e4a57ebe0 | 326 | #define LIS3DH_INT1_SRC_XH 0x02 |
jejuho | 0:de3e4a57ebe0 | 327 | #define LIS3DH_INT1_SRC_XL 0x01 |
jejuho | 0:de3e4a57ebe0 | 328 | |
jejuho | 0:de3e4a57ebe0 | 329 | //INT1 REGISTERS |
jejuho | 0:de3e4a57ebe0 | 330 | #define LIS3DH_INT1_THS 0x32 |
jejuho | 0:de3e4a57ebe0 | 331 | #define LIS3DH_INT1_DURATION 0x33 |
jejuho | 0:de3e4a57ebe0 | 332 | |
jejuho | 0:de3e4a57ebe0 | 333 | //INTERRUPT 1 SOURCE REGISTER |
jejuho | 0:de3e4a57ebe0 | 334 | #define LIS3DH_INT1_SRC 0x31 |
jejuho | 0:de3e4a57ebe0 | 335 | |
jejuho | 0:de3e4a57ebe0 | 336 | //FIFO Source Register bit Mask |
jejuho | 0:de3e4a57ebe0 | 337 | #define LIS3DH_FIFO_SRC_WTM 0x80 |
jejuho | 0:de3e4a57ebe0 | 338 | #define LIS3DH_FIFO_SRC_OVRUN 0x40 |
jejuho | 0:de3e4a57ebe0 | 339 | #define LIS3DH_FIFO_SRC_EMPTY 0x20 |
jejuho | 0:de3e4a57ebe0 | 340 | |
jejuho | 0:de3e4a57ebe0 | 341 | //INTERRUPT CLICK REGISTER |
jejuho | 0:de3e4a57ebe0 | 342 | #define LIS3DH_CLICK_CFG 0x38 |
jejuho | 0:de3e4a57ebe0 | 343 | //INTERRUPT CLICK CONFIGURATION bit mask |
jejuho | 0:de3e4a57ebe0 | 344 | #define LIS3DH_ZD_ENABLE 0x20 |
jejuho | 0:de3e4a57ebe0 | 345 | #define LIS3DH_ZD_DISABLE 0x00 |
jejuho | 0:de3e4a57ebe0 | 346 | #define LIS3DH_ZS_ENABLE 0x10 |
jejuho | 0:de3e4a57ebe0 | 347 | #define LIS3DH_ZS_DISABLE 0x00 |
jejuho | 0:de3e4a57ebe0 | 348 | #define LIS3DH_YD_ENABLE 0x08 |
jejuho | 0:de3e4a57ebe0 | 349 | #define LIS3DH_YD_DISABLE 0x00 |
jejuho | 0:de3e4a57ebe0 | 350 | #define LIS3DH_YS_ENABLE 0x04 |
jejuho | 0:de3e4a57ebe0 | 351 | #define LIS3DH_YS_DISABLE 0x00 |
jejuho | 0:de3e4a57ebe0 | 352 | #define LIS3DH_XD_ENABLE 0x02 |
jejuho | 0:de3e4a57ebe0 | 353 | #define LIS3DH_XD_DISABLE 0x00 |
jejuho | 0:de3e4a57ebe0 | 354 | #define LIS3DH_XS_ENABLE 0x01 |
jejuho | 0:de3e4a57ebe0 | 355 | #define LIS3DH_XS_DISABLE 0x00 |
jejuho | 0:de3e4a57ebe0 | 356 | |
jejuho | 0:de3e4a57ebe0 | 357 | //INTERRUPT CLICK SOURCE REGISTER |
jejuho | 0:de3e4a57ebe0 | 358 | #define LIS3DH_CLICK_SRC 0x39 |
jejuho | 0:de3e4a57ebe0 | 359 | //INTERRUPT CLICK SOURCE REGISTER bit mask |
jejuho | 0:de3e4a57ebe0 | 360 | #define LIS3DH_IA 0x40 |
jejuho | 0:de3e4a57ebe0 | 361 | #define LIS3DH_DCLICK 0x20 |
jejuho | 0:de3e4a57ebe0 | 362 | #define LIS3DH_SCLICK 0x10 |
jejuho | 0:de3e4a57ebe0 | 363 | #define LIS3DH_CLICK_SIGN 0x08 |
jejuho | 0:de3e4a57ebe0 | 364 | #define LIS3DH_CLICK_Z 0x04 |
jejuho | 0:de3e4a57ebe0 | 365 | #define LIS3DH_CLICK_Y 0x02 |
jejuho | 0:de3e4a57ebe0 | 366 | #define LIS3DH_CLICK_X 0x01 |
jejuho | 0:de3e4a57ebe0 | 367 | |
jejuho | 0:de3e4a57ebe0 | 368 | //Click-click Register |
jejuho | 0:de3e4a57ebe0 | 369 | #define LIS3DH_CLICK_THS 0x3A |
jejuho | 0:de3e4a57ebe0 | 370 | #define LIS3DH_TIME_LIMIT 0x3B |
jejuho | 0:de3e4a57ebe0 | 371 | #define LIS3DH_TIME_LATENCY 0x3C |
jejuho | 0:de3e4a57ebe0 | 372 | #define LIS3DH_TIME_WINDOW 0x3D |
jejuho | 0:de3e4a57ebe0 | 373 | |
jejuho | 0:de3e4a57ebe0 | 374 | //OUTPUT REGISTER |
jejuho | 0:de3e4a57ebe0 | 375 | #define LIS3DH_OUT_X_L 0x28 |
jejuho | 0:de3e4a57ebe0 | 376 | #define LIS3DH_OUT_X_H 0x29 |
jejuho | 0:de3e4a57ebe0 | 377 | #define LIS3DH_OUT_Y_L 0x2A |
jejuho | 0:de3e4a57ebe0 | 378 | #define LIS3DH_OUT_Y_H 0x2B |
jejuho | 0:de3e4a57ebe0 | 379 | #define LIS3DH_OUT_Z_L 0x2C |
jejuho | 0:de3e4a57ebe0 | 380 | #define LIS3DH_OUT_Z_H 0x2D |
jejuho | 0:de3e4a57ebe0 | 381 | |
jejuho | 0:de3e4a57ebe0 | 382 | //AUX REGISTER |
jejuho | 0:de3e4a57ebe0 | 383 | #define LIS3DH_OUT_1_L 0x08 |
jejuho | 0:de3e4a57ebe0 | 384 | #define LIS3DH_OUT_1_H 0x09 |
jejuho | 0:de3e4a57ebe0 | 385 | #define LIS3DH_OUT_2_L 0x0A |
jejuho | 0:de3e4a57ebe0 | 386 | #define LIS3DH_OUT_2_H 0x0B |
jejuho | 0:de3e4a57ebe0 | 387 | #define LIS3DH_OUT_3_L 0x0C |
jejuho | 0:de3e4a57ebe0 | 388 | #define LIS3DH_OUT_3_H 0x0D |
jejuho | 0:de3e4a57ebe0 | 389 | |
jejuho | 0:de3e4a57ebe0 | 390 | //STATUS REGISTER bit mask |
jejuho | 0:de3e4a57ebe0 | 391 | #define LIS3DH_STATUS_REG_ZYXOR 0x80 // 1 : new data set has over written the previous one |
jejuho | 0:de3e4a57ebe0 | 392 | // 0 : no overrun has occurred (default) |
jejuho | 0:de3e4a57ebe0 | 393 | #define LIS3DH_STATUS_REG_ZOR 0x40 // 0 : no overrun has occurred (default) |
jejuho | 0:de3e4a57ebe0 | 394 | // 1 : new Z-axis data has over written the previous one |
jejuho | 0:de3e4a57ebe0 | 395 | #define LIS3DH_STATUS_REG_YOR 0x20 // 0 : no overrun has occurred (default) |
jejuho | 0:de3e4a57ebe0 | 396 | // 1 : new Y-axis data has over written the previous one |
jejuho | 0:de3e4a57ebe0 | 397 | #define LIS3DH_STATUS_REG_XOR 0x10 // 0 : no overrun has occurred (default) |
jejuho | 0:de3e4a57ebe0 | 398 | // 1 : new X-axis data has over written the previous one |
jejuho | 0:de3e4a57ebe0 | 399 | #define LIS3DH_STATUS_REG_ZYXDA 0x08 // 0 : a new set of data is not yet avvious one |
jejuho | 0:de3e4a57ebe0 | 400 | // 1 : a new set of data is available |
jejuho | 0:de3e4a57ebe0 | 401 | #define LIS3DH_STATUS_REG_ZDA 0x04 // 0 : a new data for the Z-Axis is not availvious one |
jejuho | 0:de3e4a57ebe0 | 402 | // 1 : a new data for the Z-Axis is available |
jejuho | 0:de3e4a57ebe0 | 403 | #define LIS3DH_STATUS_REG_YDA 0x02 // 0 : a new data for the Y-Axis is not available |
jejuho | 0:de3e4a57ebe0 | 404 | // 1 : a new data for the Y-Axis is available |
jejuho | 0:de3e4a57ebe0 | 405 | #define LIS3DH_STATUS_REG_XDA 0x01 // 0 : a new data for the X-Axis is not available |
jejuho | 0:de3e4a57ebe0 | 406 | |
jejuho | 0:de3e4a57ebe0 | 407 | #define LIS3DH_DATAREADY_BIT LIS3DH_STATUS_REG_ZYXDA |
jejuho | 0:de3e4a57ebe0 | 408 | |
jejuho | 0:de3e4a57ebe0 | 409 | |
jejuho | 0:de3e4a57ebe0 | 410 | //STATUS AUX REGISTER bit mask |
jejuho | 0:de3e4a57ebe0 | 411 | #define LIS3DH_STATUS_AUX_321OR 0x80 |
jejuho | 0:de3e4a57ebe0 | 412 | #define LIS3DH_STATUS_AUX_3OR 0x40 |
jejuho | 0:de3e4a57ebe0 | 413 | #define LIS3DH_STATUS_AUX_2OR 0x20 |
jejuho | 0:de3e4a57ebe0 | 414 | #define LIS3DH_STATUS_AUX_1OR 0x10 |
jejuho | 0:de3e4a57ebe0 | 415 | #define LIS3DH_STATUS_AUX_321DA 0x08 |
jejuho | 0:de3e4a57ebe0 | 416 | #define LIS3DH_STATUS_AUX_3DA 0x04 |
jejuho | 0:de3e4a57ebe0 | 417 | #define LIS3DH_STATUS_AUX_2DA 0x02 |
jejuho | 0:de3e4a57ebe0 | 418 | #define LIS3DH_STATUS_AUX_1DA 0x01 |
jejuho | 0:de3e4a57ebe0 | 419 | |
jejuho | 0:de3e4a57ebe0 | 420 | #define LIS3DH_MEMS_I2C_ADDRESS 0x33 |
jejuho | 0:de3e4a57ebe0 | 421 | |
jejuho | 0:de3e4a57ebe0 | 422 | //FIFO REGISTERS |
jejuho | 0:de3e4a57ebe0 | 423 | #define LIS3DH_FIFO_CTRL_REG 0x2E |
jejuho | 0:de3e4a57ebe0 | 424 | #define LIS3DH_FIFO_SRC_REG 0x2F |
jejuho | 0:de3e4a57ebe0 | 425 | |
jejuho | 0:de3e4a57ebe0 | 426 | |
jejuho | 0:de3e4a57ebe0 | 427 | /* Exported macro ------------------------------------------------------------*/ |
jejuho | 0:de3e4a57ebe0 | 428 | |
jejuho | 0:de3e4a57ebe0 | 429 | #ifndef __SHARED__MACROS |
jejuho | 0:de3e4a57ebe0 | 430 | |
jejuho | 0:de3e4a57ebe0 | 431 | #define __SHARED__MACROS |
jejuho | 0:de3e4a57ebe0 | 432 | #define ValBit(VAR,Place) (VAR & (1<<Place)) |
jejuho | 0:de3e4a57ebe0 | 433 | #define BIT(x) ( (x) ) |
jejuho | 0:de3e4a57ebe0 | 434 | |
jejuho | 0:de3e4a57ebe0 | 435 | #endif /*__SHARED__MACROS*/ |
jejuho | 0:de3e4a57ebe0 | 436 | |
jejuho | 0:de3e4a57ebe0 | 437 | class LIS3DH |
jejuho | 0:de3e4a57ebe0 | 438 | { |
jejuho | 0:de3e4a57ebe0 | 439 | public: |
jejuho | 0:de3e4a57ebe0 | 440 | LIS3DH(PinName mosi, PinName miso, PinName ss, PinName sck); |
jejuho | 0:de3e4a57ebe0 | 441 | ~LIS3DH(); |
jejuho | 0:de3e4a57ebe0 | 442 | |
jejuho | 0:de3e4a57ebe0 | 443 | //own functions |
jejuho | 0:de3e4a57ebe0 | 444 | u8_t InitLIS3DH(LIS3DH_Mode_t Mode, LIS3DH_ODR_t Odr, LIS3DH_Fullscale_t Grange); |
jejuho | 0:de3e4a57ebe0 | 445 | u8_t SetLIS3DHActivityDetection(uint8_t Th, LIS3DH_Int1Mode_t Mode, uint8_t OnOff); |
jejuho | 0:de3e4a57ebe0 | 446 | |
jejuho | 0:de3e4a57ebe0 | 447 | //Sensor Configuration Functions |
jejuho | 0:de3e4a57ebe0 | 448 | status_t LIS3DH_SetODR(LIS3DH_ODR_t ov); |
jejuho | 0:de3e4a57ebe0 | 449 | status_t LIS3DH_SetMode(LIS3DH_Mode_t md); |
jejuho | 0:de3e4a57ebe0 | 450 | status_t LIS3DH_SetAxis(LIS3DH_Axis_t axis); |
jejuho | 0:de3e4a57ebe0 | 451 | status_t LIS3DH_SetFullScale(LIS3DH_Fullscale_t fs); |
jejuho | 0:de3e4a57ebe0 | 452 | status_t LIS3DH_SetBDU(State_t bdu); |
jejuho | 0:de3e4a57ebe0 | 453 | status_t LIS3DH_SetBLE(LIS3DH_Endianess_t ble); |
jejuho | 0:de3e4a57ebe0 | 454 | status_t LIS3DH_SetSelfTest(LIS3DH_SelfTest_t st); |
jejuho | 0:de3e4a57ebe0 | 455 | status_t LIS3DH_SetTemperature(State_t state); |
jejuho | 0:de3e4a57ebe0 | 456 | status_t LIS3DH_SetADCAux(State_t state); |
jejuho | 0:de3e4a57ebe0 | 457 | |
jejuho | 0:de3e4a57ebe0 | 458 | //Filtering Functions |
jejuho | 0:de3e4a57ebe0 | 459 | status_t LIS3DH_HPFClickEnable(State_t hpfe); |
jejuho | 0:de3e4a57ebe0 | 460 | status_t LIS3DH_HPFAOI1Enable(State_t hpfe); |
jejuho | 0:de3e4a57ebe0 | 461 | status_t LIS3DH_HPFAOI2Enable(State_t hpfe); |
jejuho | 0:de3e4a57ebe0 | 462 | status_t LIS3DH_SetHPFMode(LIS3DH_HPFMode_t hpf); |
jejuho | 0:de3e4a57ebe0 | 463 | status_t LIS3DH_SetHPFCutOFF(LIS3DH_HPFCutOffFreq_t hpf); |
jejuho | 0:de3e4a57ebe0 | 464 | status_t LIS3DH_SetFilterDataSel(State_t state); |
jejuho | 0:de3e4a57ebe0 | 465 | |
jejuho | 0:de3e4a57ebe0 | 466 | //Interrupt Functions |
jejuho | 0:de3e4a57ebe0 | 467 | status_t LIS3DH_SetInt1Pin(LIS3DH_IntPinConf_t pinConf); |
jejuho | 0:de3e4a57ebe0 | 468 | status_t LIS3DH_SetInt2Pin(LIS3DH_IntPinConf_t pinConf); |
jejuho | 0:de3e4a57ebe0 | 469 | status_t LIS3DH_Int1LatchEnable(State_t latch); |
jejuho | 0:de3e4a57ebe0 | 470 | status_t LIS3DH_ResetInt1Latch(void); |
jejuho | 0:de3e4a57ebe0 | 471 | status_t LIS3DH_SetIntConfiguration(LIS3DH_Int1Conf_t ic); |
jejuho | 0:de3e4a57ebe0 | 472 | status_t LIS3DH_SetInt1Threshold(u8_t ths); |
jejuho | 0:de3e4a57ebe0 | 473 | status_t LIS3DH_SetInt1Duration(LIS3DH_Int1Conf_t id); |
jejuho | 0:de3e4a57ebe0 | 474 | status_t LIS3DH_SetIntMode(LIS3DH_Int1Mode_t ic); |
jejuho | 0:de3e4a57ebe0 | 475 | status_t LIS3DH_SetClickCFG(u8_t status); |
jejuho | 0:de3e4a57ebe0 | 476 | status_t LIS3DH_SetClickTHS(u8_t ths); |
jejuho | 0:de3e4a57ebe0 | 477 | status_t LIS3DH_SetClickLIMIT(u8_t t_limit); |
jejuho | 0:de3e4a57ebe0 | 478 | status_t LIS3DH_SetClickLATENCY(u8_t t_latency); |
jejuho | 0:de3e4a57ebe0 | 479 | status_t LIS3DH_SetClickWINDOW(u8_t t_window); |
jejuho | 0:de3e4a57ebe0 | 480 | status_t LIS3DH_SetInt6D4DConfiguration(LIS3DH_INT_6D_4D_t ic); |
jejuho | 0:de3e4a57ebe0 | 481 | status_t LIS3DH_GetInt1Src(u8_t* val); |
jejuho | 0:de3e4a57ebe0 | 482 | status_t LIS3DH_GetInt1SrcBit(u8_t statusBIT, u8_t* val); |
jejuho | 0:de3e4a57ebe0 | 483 | |
jejuho | 0:de3e4a57ebe0 | 484 | //FIFO Functions |
jejuho | 0:de3e4a57ebe0 | 485 | status_t LIS3DH_FIFOModeEnable(LIS3DH_FifoMode_t fm); |
jejuho | 0:de3e4a57ebe0 | 486 | status_t LIS3DH_SetWaterMark(u8_t wtm); |
jejuho | 0:de3e4a57ebe0 | 487 | status_t LIS3DH_SetTriggerInt(LIS3DH_TrigInt_t tr); |
jejuho | 0:de3e4a57ebe0 | 488 | status_t LIS3DH_GetFifoSourceReg(u8_t* val); |
jejuho | 0:de3e4a57ebe0 | 489 | status_t LIS3DH_GetFifoSourceBit(u8_t statusBIT, u8_t* val); |
jejuho | 0:de3e4a57ebe0 | 490 | status_t LIS3DH_GetFifoSourceFSS(u8_t* val); |
jejuho | 0:de3e4a57ebe0 | 491 | |
jejuho | 0:de3e4a57ebe0 | 492 | //Other Reading Functions |
jejuho | 0:de3e4a57ebe0 | 493 | status_t LIS3DH_GetStatusReg(u8_t* val); |
jejuho | 0:de3e4a57ebe0 | 494 | status_t LIS3DH_GetStatusBit(u8_t statusBIT, u8_t* val); |
jejuho | 0:de3e4a57ebe0 | 495 | status_t LIS3DH_GetStatusAUXBit(u8_t statusBIT, u8_t* val); |
jejuho | 0:de3e4a57ebe0 | 496 | status_t LIS3DH_GetStatusAUX(u8_t* val); |
jejuho | 0:de3e4a57ebe0 | 497 | |
jejuho | 0:de3e4a57ebe0 | 498 | status_t LIS3DH_GetAccAxesRaw(AxesRaw_t* buff); |
jejuho | 0:de3e4a57ebe0 | 499 | status_t LIS3DH_GetAuxRaw(LIS3DH_Aux123Raw_t* buff); |
jejuho | 0:de3e4a57ebe0 | 500 | status_t LIS3DH_GetClickResponse(u8_t* val); |
jejuho | 0:de3e4a57ebe0 | 501 | status_t LIS3DH_GetTempRaw(i8_t* val); |
jejuho | 0:de3e4a57ebe0 | 502 | status_t LIS3DH_GetWHO_AM_I(u8_t* val); |
jejuho | 0:de3e4a57ebe0 | 503 | status_t LIS3DH_Get6DPosition(u8_t* val); |
jejuho | 0:de3e4a57ebe0 | 504 | |
jejuho | 0:de3e4a57ebe0 | 505 | private: |
jejuho | 0:de3e4a57ebe0 | 506 | u8_t LIS3DH_ReadReg(u8_t Reg, u8_t* Data); |
jejuho | 0:de3e4a57ebe0 | 507 | u8_t LIS3DH_WriteReg(u8_t WriteAddr, u8_t Data); |
jejuho | 0:de3e4a57ebe0 | 508 | |
jejuho | 0:de3e4a57ebe0 | 509 | |
jejuho | 0:de3e4a57ebe0 | 510 | protected: |
jejuho | 0:de3e4a57ebe0 | 511 | SPI _spi; |
jejuho | 0:de3e4a57ebe0 | 512 | DigitalOut _ss; |
jejuho | 0:de3e4a57ebe0 | 513 | |
jejuho | 0:de3e4a57ebe0 | 514 | }; |
jejuho | 0:de3e4a57ebe0 | 515 | } //Namespace |
jejuho | 0:de3e4a57ebe0 | 516 | #endif |