Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
ADXL345.h@1:186b5a33dce3, 2017-08-19 (annotated)
- Committer:
- mcm
- Date:
- Sat Aug 19 08:18:27 2017 +0000
- Revision:
- 1:186b5a33dce3
- Parent:
- 0:5e0fa5be068d
- Child:
- 2:b96d481934ae
The header file is ready to be tested. All the registers were implemented but FIFO?s.
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| mcm | 0:5e0fa5be068d | 1 | /** |
| mcm | 0:5e0fa5be068d | 2 | * @brief ADXL345.h |
| mcm | 1:186b5a33dce3 | 3 | * @details 3-Axis, ±2 g/±4 g/±8 g/±16 g Digital Accelerometer. |
| mcm | 0:5e0fa5be068d | 4 | * Header file. |
| mcm | 0:5e0fa5be068d | 5 | * |
| mcm | 0:5e0fa5be068d | 6 | * |
| mcm | 0:5e0fa5be068d | 7 | * @return NA |
| mcm | 0:5e0fa5be068d | 8 | * |
| mcm | 0:5e0fa5be068d | 9 | * @author Manuel Caballero |
| mcm | 0:5e0fa5be068d | 10 | * @date 19/August/2017 |
| mcm | 0:5e0fa5be068d | 11 | * @version 19/August/2017 The ORIGIN |
| mcm | 1:186b5a33dce3 | 12 | * @pre Although the ADXL345 can be handled by SPI or I2C, this library is only |
| mcm | 1:186b5a33dce3 | 13 | * adapted to be used by I2C. |
| mcm | 1:186b5a33dce3 | 14 | * @pre FIFO functions are NOT implemented. |
| mcm | 0:5e0fa5be068d | 15 | * @warning NaN |
| mcm | 0:5e0fa5be068d | 16 | * @pre This code belongs to AqueronteBlog ( http://unbarquero.blogspot.com ). |
| mcm | 0:5e0fa5be068d | 17 | */ |
| mcm | 0:5e0fa5be068d | 18 | #ifndef ADXL345_H |
| mcm | 0:5e0fa5be068d | 19 | #define ADXL345_H |
| mcm | 0:5e0fa5be068d | 20 | |
| mcm | 0:5e0fa5be068d | 21 | #include "mbed.h" |
| mcm | 0:5e0fa5be068d | 22 | |
| mcm | 0:5e0fa5be068d | 23 | |
| mcm | 0:5e0fa5be068d | 24 | /** |
| mcm | 0:5e0fa5be068d | 25 | Example: |
| mcm | 0:5e0fa5be068d | 26 | |
| mcm | 0:5e0fa5be068d | 27 | #include "mbed.h" |
| mcm | 0:5e0fa5be068d | 28 | #include "ADXL345.h" |
| mcm | 0:5e0fa5be068d | 29 | |
| mcm | 0:5e0fa5be068d | 30 | // ADXL345 myLightSensor ( I2C_SDA, I2C_SCL, ADXL345::ADXL345_ADDR_L, 400000 ); //[todo] |
| mcm | 0:5e0fa5be068d | 31 | Serial pc ( USBTX, USBRX ); // tx, rx |
| mcm | 0:5e0fa5be068d | 32 | |
| mcm | 0:5e0fa5be068d | 33 | Ticker serial; |
| mcm | 0:5e0fa5be068d | 34 | |
| mcm | 0:5e0fa5be068d | 35 | DigitalOut myled(LED1); |
| mcm | 0:5e0fa5be068d | 36 | |
| mcm | 0:5e0fa5be068d | 37 | |
| mcm | 0:5e0fa5be068d | 38 | void sendDATA ( void ) |
| mcm | 0:5e0fa5be068d | 39 | { |
| mcm | 0:5e0fa5be068d | 40 | float myLux = 0; |
| mcm | 0:5e0fa5be068d | 41 | |
| mcm | 0:5e0fa5be068d | 42 | myled = 0; |
| mcm | 0:5e0fa5be068d | 43 | |
| mcm | 0:5e0fa5be068d | 44 | |
| mcm | 0:5e0fa5be068d | 45 | |
| mcm | 0:5e0fa5be068d | 46 | // pc.printf( "Lux: %0.1f\r\n", myLux ); |
| mcm | 0:5e0fa5be068d | 47 | |
| mcm | 0:5e0fa5be068d | 48 | myled = 1; |
| mcm | 0:5e0fa5be068d | 49 | |
| mcm | 0:5e0fa5be068d | 50 | } |
| mcm | 0:5e0fa5be068d | 51 | |
| mcm | 0:5e0fa5be068d | 52 | |
| mcm | 0:5e0fa5be068d | 53 | int main() { |
| mcm | 0:5e0fa5be068d | 54 | pc.baud ( 115200 ); |
| mcm | 0:5e0fa5be068d | 55 | serial.attach( &sendDATA, 0.5 ); // the address of the function to be attached ( sendDATA ) and the interval ( 0.5s ) |
| mcm | 0:5e0fa5be068d | 56 | |
| mcm | 0:5e0fa5be068d | 57 | // Let the callbacks take care of everything |
| mcm | 0:5e0fa5be068d | 58 | while(1) sleep(); |
| mcm | 0:5e0fa5be068d | 59 | } |
| mcm | 0:5e0fa5be068d | 60 | */ |
| mcm | 0:5e0fa5be068d | 61 | |
| mcm | 0:5e0fa5be068d | 62 | /*! |
| mcm | 0:5e0fa5be068d | 63 | Library for the ADXL345 3-Axis, ±2 g/±4 g/±8 g/±16 g Digital Accelerometer. |
| mcm | 0:5e0fa5be068d | 64 | */ |
| mcm | 0:5e0fa5be068d | 65 | class ADXL345 |
| mcm | 0:5e0fa5be068d | 66 | { |
| mcm | 0:5e0fa5be068d | 67 | public: |
| mcm | 0:5e0fa5be068d | 68 | /** |
| mcm | 0:5e0fa5be068d | 69 | * @brief DEFAULT ADDRESSES |
| mcm | 0:5e0fa5be068d | 70 | */ |
| mcm | 0:5e0fa5be068d | 71 | typedef enum { |
| mcm | 0:5e0fa5be068d | 72 | ADXL345_ALT_ADDRESS_LOW = ( 0x53 << 1 ), /**< Addr pin = GND */ |
| mcm | 0:5e0fa5be068d | 73 | ADXL345_ALT_ADDRESS_HIGH = ( 0x1D << 1 ) /**< Addr pin = VDD */ |
| mcm | 0:5e0fa5be068d | 74 | } ADXL345_address_t; |
| mcm | 0:5e0fa5be068d | 75 | |
| mcm | 0:5e0fa5be068d | 76 | |
| mcm | 0:5e0fa5be068d | 77 | /** |
| mcm | 0:5e0fa5be068d | 78 | * @brief REGISTERS MAP |
| mcm | 0:5e0fa5be068d | 79 | */ |
| mcm | 0:5e0fa5be068d | 80 | #define ADXL345_DEVID 0x00 /*!< Device ID */ |
| mcm | 0:5e0fa5be068d | 81 | #define ADXL345_THRESH_TAP 0x1D /*!< Tap threshold */ |
| mcm | 0:5e0fa5be068d | 82 | #define ADXL345_OFSX 0x1E /*!< X-axis offset */ |
| mcm | 0:5e0fa5be068d | 83 | #define ADXL345_OFSY 0x1F /*!< Y-axis offset */ |
| mcm | 0:5e0fa5be068d | 84 | #define ADXL345_OFSZ 0x20 /*!< Z-axis offset */ |
| mcm | 0:5e0fa5be068d | 85 | #define ADXL345_DUR 0x21 /*!< Tap duration */ |
| mcm | 0:5e0fa5be068d | 86 | #define ADXL345_LATENT 0x22 /*!< Tap latency */ |
| mcm | 0:5e0fa5be068d | 87 | #define ADXL345_WINDOW 0x23 /*!< Tap window */ |
| mcm | 0:5e0fa5be068d | 88 | #define ADXL345_THRESH_ACT 0x24 /*!< Activity threshold */ |
| mcm | 0:5e0fa5be068d | 89 | #define ADXL345_THRESH_INACT 0x25 /*!< Inactivity threshold */ |
| mcm | 0:5e0fa5be068d | 90 | #define ADXL345_TIME_INACT 0x26 /*!< Inactivity time */ |
| mcm | 0:5e0fa5be068d | 91 | #define ADXL345_ACT_INACT_CTL 0x27 /*!< Axis enable control for activity and inactivity detection */ |
| mcm | 0:5e0fa5be068d | 92 | #define ADXL345_THRESH_FF 0x28 /*!< Free-fall threshold */ |
| mcm | 0:5e0fa5be068d | 93 | #define ADXL345_TIME_FF 0x29 /*!< Free-fall time */ |
| mcm | 0:5e0fa5be068d | 94 | #define ADXL345_TAP_AXES 0x2A /*!< Axis control for single tap/double tap */ |
| mcm | 0:5e0fa5be068d | 95 | #define ADXL345_ACT_TAP_STATUS 0x2B /*!< Source of single tap/double tap */ |
| mcm | 0:5e0fa5be068d | 96 | #define ADXL345_BW_RATE 0x2C /*!< Data rate and power mode control */ |
| mcm | 0:5e0fa5be068d | 97 | #define ADXL345_POWER_CTL 0x2D /*!< Power-saving features control */ |
| mcm | 0:5e0fa5be068d | 98 | #define ADXL345_INT_ENABLE 0x2E /*!< Interrupt enable control */ |
| mcm | 0:5e0fa5be068d | 99 | #define ADXL345_INT_MAP 0x2F /*!< Interrupt mapping control */ |
| mcm | 0:5e0fa5be068d | 100 | #define ADXL345_INT_SOURCE 0x30 /*!< Source of interrupts */ |
| mcm | 0:5e0fa5be068d | 101 | #define ADXL345_DATA_FORMAT 0x31 /*!< Data format control */ |
| mcm | 0:5e0fa5be068d | 102 | #define ADXL345_DATAX0 0x32 /*!< X-Axis Data 0 */ |
| mcm | 0:5e0fa5be068d | 103 | #define ADXL345_DATAX1 0x33 /*!< X-Axis Data 1 */ |
| mcm | 0:5e0fa5be068d | 104 | #define ADXL345_DATAY0 0x34 /*!< Y-Axis Data 0 */ |
| mcm | 0:5e0fa5be068d | 105 | #define ADXL345_DATAY1 0x35 /*!< Y-Axis Data 1 */ |
| mcm | 0:5e0fa5be068d | 106 | #define ADXL345_DATAZ0 0x36 /*!< Z-Axis Data 0 */ |
| mcm | 0:5e0fa5be068d | 107 | #define ADXL345_DATAZ1 0x37 /*!< Z-Axis Data 1 */ |
| mcm | 0:5e0fa5be068d | 108 | #define ADXL345_FIFO_CTL 0x38 /*!< FIFO control */ |
| mcm | 0:5e0fa5be068d | 109 | #define ADXL345_FIFO_STATUS 0x39 /*!< FIFO status */ |
| mcm | 0:5e0fa5be068d | 110 | |
| mcm | 0:5e0fa5be068d | 111 | |
| mcm | 0:5e0fa5be068d | 112 | /* Commands Registers */ |
| mcm | 0:5e0fa5be068d | 113 | /** |
| mcm | 0:5e0fa5be068d | 114 | * @brief DEVID |
| mcm | 0:5e0fa5be068d | 115 | */ |
| mcm | 0:5e0fa5be068d | 116 | #define DEVID_ID 0xE5 /*!< A fixed device ID code */ |
| mcm | 0:5e0fa5be068d | 117 | |
| mcm | 0:5e0fa5be068d | 118 | |
| mcm | 0:5e0fa5be068d | 119 | /** |
| mcm | 0:5e0fa5be068d | 120 | * @brief ACT_INACT_CTL |
| mcm | 0:5e0fa5be068d | 121 | */ |
| mcm | 0:5e0fa5be068d | 122 | /* Bit 7 : ACT ac/dc ( D7 ). */ |
| mcm | 0:5e0fa5be068d | 123 | typedef enum { |
| mcm | 0:5e0fa5be068d | 124 | ACTIVITY_DC_Enabled = 1, /*!< Activity DC-Coupled Enabled. */ |
| mcm | 0:5e0fa5be068d | 125 | ACTIVITY_AC_Enabled = 2 /*!< Activity AC-Coupled Enabled. */ |
| mcm | 0:5e0fa5be068d | 126 | } ADXL345_act_inact_ctl_activity_dc_coupled_t; |
| mcm | 0:5e0fa5be068d | 127 | |
| mcm | 0:5e0fa5be068d | 128 | |
| mcm | 0:5e0fa5be068d | 129 | /* Bit 6 - 4 : ACT_X ( D6 ), ACT_Y ( D5 ) y ACT_Z enable ( D4 ). */ |
| mcm | 0:5e0fa5be068d | 130 | typedef enum { |
| mcm | 0:5e0fa5be068d | 131 | ACT_X_Enabled = 1, /*!< X-axis Enabled. */ |
| mcm | 0:5e0fa5be068d | 132 | ACT_Y_Enabled = 2, /*!< Y-axis Enabled. */ |
| mcm | 0:5e0fa5be068d | 133 | ACT_Z_Enabled = 3, /*!< Z-axis Enabled. */ |
| mcm | 0:5e0fa5be068d | 134 | ACT_YZ_Enabled = 4, /*!< YZ-axis Enabled. */ |
| mcm | 0:5e0fa5be068d | 135 | ACT_XZ_Enabled = 5, /*!< XZ-axis Enabled. */ |
| mcm | 0:5e0fa5be068d | 136 | ACT_XY_Enabled = 6, /*!< XY-axis Enabled. */ |
| mcm | 0:5e0fa5be068d | 137 | ACT_XYZ_Enabled = 7, /*!< XYZ-axis Enabled. */ |
| mcm | 0:5e0fa5be068d | 138 | ACT_XYZ_Disabled = 8 /*!< XYZ-axis Disabled. */ |
| mcm | 0:5e0fa5be068d | 139 | } ADXL345_act_inact_ctl_activity_axis_t; |
| mcm | 0:5e0fa5be068d | 140 | |
| mcm | 0:5e0fa5be068d | 141 | |
| mcm | 0:5e0fa5be068d | 142 | /* Bit 3 : INACT ac/dc ( D3 ). */ |
| mcm | 0:5e0fa5be068d | 143 | typedef enum { |
| mcm | 0:5e0fa5be068d | 144 | INACTIVITY_DC_Enabled = 1, /*!< Inactivity DC-Coupled Enabled. */ |
| mcm | 0:5e0fa5be068d | 145 | INACTIVITY_AC_Enabled = 2 /*!< Inactivity AC-Coupled Enabled. */ |
| mcm | 0:5e0fa5be068d | 146 | } ADXL345_act_inact_ctl_inactivity_dc_coupled_t; |
| mcm | 0:5e0fa5be068d | 147 | |
| mcm | 0:5e0fa5be068d | 148 | |
| mcm | 0:5e0fa5be068d | 149 | /* Bit 2 - 0 : INACT_X ( D2 ), INACT_X ( D1 ) y INACT_X enable ( D0 ). */ |
| mcm | 0:5e0fa5be068d | 150 | typedef enum { |
| mcm | 0:5e0fa5be068d | 151 | INACT_X_Enabled = 1, /*!< X-axis Enabled. */ |
| mcm | 0:5e0fa5be068d | 152 | INACT_Y_Enabled = 2, /*!< Y-axis Enabled. */ |
| mcm | 0:5e0fa5be068d | 153 | INACT_Z_Enabled = 3, /*!< Z-axis Enabled. */ |
| mcm | 0:5e0fa5be068d | 154 | INACT_YZ_Enabled = 4, /*!< YZ-axis Enabled. */ |
| mcm | 0:5e0fa5be068d | 155 | INACT_XZ_Enabled = 5, /*!< XZ-axis Enabled. */ |
| mcm | 0:5e0fa5be068d | 156 | INACT_XY_Enabled = 6, /*!< XY-axis Enabled. */ |
| mcm | 0:5e0fa5be068d | 157 | INACT_XYZ_Enabled = 7, /*!< XYZ-axis Enabled. */ |
| mcm | 0:5e0fa5be068d | 158 | INACT_XYZ_Disabled = 8 /*!< XYZ-axis Disabled. */ |
| mcm | 0:5e0fa5be068d | 159 | } ADXL345_act_inact_ctl_inactivity_axis_t; |
| mcm | 0:5e0fa5be068d | 160 | |
| mcm | 0:5e0fa5be068d | 161 | |
| mcm | 0:5e0fa5be068d | 162 | |
| mcm | 0:5e0fa5be068d | 163 | /** |
| mcm | 0:5e0fa5be068d | 164 | * @brief TAP_AXES |
| mcm | 0:5e0fa5be068d | 165 | */ |
| mcm | 0:5e0fa5be068d | 166 | /* Bit 3 : SUPPRESS ( D3 ). */ |
| mcm | 0:5e0fa5be068d | 167 | typedef enum { |
| mcm | 0:5e0fa5be068d | 168 | SUPPRESS_Enabled = 1, /*!< SUPPRESS Enabled. */ |
| mcm | 0:5e0fa5be068d | 169 | SUPPRESS_Disabled = 2 /*!< SUPPRESS Disabled. */ |
| mcm | 0:5e0fa5be068d | 170 | } ADXL345_tap_axes_suppress_t; |
| mcm | 0:5e0fa5be068d | 171 | |
| mcm | 0:5e0fa5be068d | 172 | /* Bit 2 - 0 : TAP_X ( D2 ), TAP_Y ( D1 ) y TAP_Z enable ( D0 ). */ |
| mcm | 0:5e0fa5be068d | 173 | typedef enum { |
| mcm | 0:5e0fa5be068d | 174 | TAP_X_Enabled = 1, /*!< X-axis Enabled. */ |
| mcm | 0:5e0fa5be068d | 175 | TAP_Y_Enabled = 2, /*!< Y-axis Enabled. */ |
| mcm | 0:5e0fa5be068d | 176 | TAP_Z_Enabled = 3, /*!< Z-axis Enabled. */ |
| mcm | 0:5e0fa5be068d | 177 | TAP_YZ_Enabled = 4, /*!< YZ-axis Enabled. */ |
| mcm | 0:5e0fa5be068d | 178 | TAP_XZ_Enabled = 5, /*!< XZ-axis Enabled. */ |
| mcm | 0:5e0fa5be068d | 179 | TAP_XY_Enabled = 6, /*!< XY-axis Enabled. */ |
| mcm | 0:5e0fa5be068d | 180 | TAP_XYZ_Enabled = 7, /*!< XYZ-axis Enabled. */ |
| mcm | 0:5e0fa5be068d | 181 | TAP_XYZ_Disabled = 8 /*!< XYZ-axis Disabled. */ |
| mcm | 0:5e0fa5be068d | 182 | } ADXL345_tap_axes_axis_t; |
| mcm | 0:5e0fa5be068d | 183 | |
| mcm | 0:5e0fa5be068d | 184 | |
| mcm | 0:5e0fa5be068d | 185 | |
| mcm | 0:5e0fa5be068d | 186 | /** |
| mcm | 0:5e0fa5be068d | 187 | * @brief BW_RATE |
| mcm | 0:5e0fa5be068d | 188 | */ |
| mcm | 0:5e0fa5be068d | 189 | /* Bit 4 : LOW_POWER ( D4 ). */ |
| mcm | 0:5e0fa5be068d | 190 | typedef enum { |
| mcm | 0:5e0fa5be068d | 191 | BW_RATE_LOW_POWER_Enabled = true, /*!< LOW_POWER Enabled. */ |
| mcm | 0:5e0fa5be068d | 192 | BW_RATE_LOW_POWER_Disabled = false /*!< LOW_POWER Disabled. */ |
| mcm | 0:5e0fa5be068d | 193 | } AXDL345_bw_rate_low_power_t; |
| mcm | 0:5e0fa5be068d | 194 | |
| mcm | 0:5e0fa5be068d | 195 | |
| mcm | 0:5e0fa5be068d | 196 | /* Bit 3 - 0 : RATE ( D3 - D0 ). */ |
| mcm | 0:5e0fa5be068d | 197 | /* Normal operation */ |
| mcm | 0:5e0fa5be068d | 198 | typedef enum { |
| mcm | 0:5e0fa5be068d | 199 | BW_RATE_RATE_3200HZ = 0x0F, /*!< RATE 3200 Hz. */ |
| mcm | 0:5e0fa5be068d | 200 | BW_RATE_RATE_1600HZ = 0x0E, /*!< RATE 1600 Hz. */ |
| mcm | 0:5e0fa5be068d | 201 | BW_RATE_RATE_800HZ = 0x0D, /*!< RATE 800 Hz. */ |
| mcm | 0:5e0fa5be068d | 202 | BW_RATE_RATE_400HZ = 0x0C, /*!< RATE 400 Hz. */ |
| mcm | 0:5e0fa5be068d | 203 | BW_RATE_RATE_200HZ = 0x0B, /*!< RATE 200 Hz. */ |
| mcm | 0:5e0fa5be068d | 204 | BW_RATE_RATE_100HZ = 0x0A, /*!< RATE 100 Hz. ( DEFAULT ) */ |
| mcm | 0:5e0fa5be068d | 205 | BW_RATE_RATE_50HZ = 0x09, /*!< RATE 50 Hz. */ |
| mcm | 0:5e0fa5be068d | 206 | BW_RATE_RATE_25HZ = 0x08, /*!< RATE 25 Hz. */ |
| mcm | 0:5e0fa5be068d | 207 | BW_RATE_RATE_12_5HZ = 0x07, /*!< RATE 12.5 Hz. */ |
| mcm | 0:5e0fa5be068d | 208 | BW_RATE_RATE_6_25HZ = 0x06, /*!< RATE 6.25 Hz. */ |
| mcm | 0:5e0fa5be068d | 209 | BW_RATE_RATE_3_13HZ = 0x05, /*!< RATE 3.13 Hz. */ |
| mcm | 0:5e0fa5be068d | 210 | BW_RATE_RATE_1_56HZ = 0x04, /*!< RATE 1.56 Hz. */ |
| mcm | 0:5e0fa5be068d | 211 | BW_RATE_RATE_0_78HZ = 0x03, /*!< RATE 0.78 Hz. */ |
| mcm | 0:5e0fa5be068d | 212 | BW_RATE_RATE_0_39HZ = 0x02, /*!< RATE 0.39 Hz. */ |
| mcm | 0:5e0fa5be068d | 213 | BW_RATE_RATE_0_20HZ = 0x01, /*!< RATE 0.20 Hz. */ |
| mcm | 0:5e0fa5be068d | 214 | BW_RATE_RATE_0_10HZ = 0x00 /*!< RATE 0.10 Hz. */ |
| mcm | 0:5e0fa5be068d | 215 | } AXDL345_bw_rate_rate_t; |
| mcm | 0:5e0fa5be068d | 216 | |
| mcm | 0:5e0fa5be068d | 217 | |
| mcm | 0:5e0fa5be068d | 218 | |
| mcm | 0:5e0fa5be068d | 219 | /** |
| mcm | 0:5e0fa5be068d | 220 | * @brief POWER_CTL |
| mcm | 0:5e0fa5be068d | 221 | */ |
| mcm | 0:5e0fa5be068d | 222 | /* Bit 5 : LINK ( D5 ). */ |
| mcm | 0:5e0fa5be068d | 223 | typedef enum { |
| mcm | 0:5e0fa5be068d | 224 | LINK_Enabled = 1, /*!< LINK Enabled. */ |
| mcm | 0:5e0fa5be068d | 225 | LINK_Disabled = 0 /*!< LINK Disabled */ |
| mcm | 0:5e0fa5be068d | 226 | } AXDL345_power_ctl_link_t; |
| mcm | 0:5e0fa5be068d | 227 | |
| mcm | 0:5e0fa5be068d | 228 | /* Bit 4 : AUTO_SLEEP ( D4 ). */ |
| mcm | 0:5e0fa5be068d | 229 | typedef enum { |
| mcm | 0:5e0fa5be068d | 230 | AUTO_SLEEP_Enabled = 1, /*!< AUTO_SLEEP Enabled. */ |
| mcm | 0:5e0fa5be068d | 231 | AUTO_SLEEP_Disabled = 0 /*!< AUTO_SLEEP Disabled */ |
| mcm | 0:5e0fa5be068d | 232 | } AXDL345_power_ctl_auto_sleep_t; |
| mcm | 0:5e0fa5be068d | 233 | |
| mcm | 0:5e0fa5be068d | 234 | /* Bit 3 : MEASURE ( D3 ). */ |
| mcm | 0:5e0fa5be068d | 235 | typedef enum { |
| mcm | 0:5e0fa5be068d | 236 | MEASURE_MODE = true, /*!< MEASURE Enabled. */ |
| mcm | 0:5e0fa5be068d | 237 | STANDBY_MODE = false /*!< MEASURE Disabled, Standby mode. */ |
| mcm | 0:5e0fa5be068d | 238 | } AXDL345_power_ctl_measure_t; |
| mcm | 0:5e0fa5be068d | 239 | |
| mcm | 0:5e0fa5be068d | 240 | /* Bit 2 : SLEEP ( D2 ). */ |
| mcm | 0:5e0fa5be068d | 241 | typedef enum { |
| mcm | 0:5e0fa5be068d | 242 | SLEEP_Enabled = 1, /*!< SLEEP Enabled. */ |
| mcm | 0:5e0fa5be068d | 243 | SLEEP_Disabled = 0 /*!< SLEEP Disabled */ |
| mcm | 0:5e0fa5be068d | 244 | } AXDL345_power_ctl_sleep_t; |
| mcm | 0:5e0fa5be068d | 245 | |
| mcm | 0:5e0fa5be068d | 246 | /* Bit 1 - 0 : WAKEUP ( D1 - D0 ). */ |
| mcm | 0:5e0fa5be068d | 247 | typedef enum { |
| mcm | 0:5e0fa5be068d | 248 | WAKEUP_FREQ_8HZ = 0, /*!< WAKEUP frequency 8Hz. */ |
| mcm | 0:5e0fa5be068d | 249 | WAKEUP_FREQ_4HZ = 1, /*!< WAKEUP frequency 4Hz. */ |
| mcm | 0:5e0fa5be068d | 250 | WAKEUP_FREQ_2HZ = 2, /*!< WAKEUP frequency 2Hz. */ |
| mcm | 0:5e0fa5be068d | 251 | WAKEUP_FREQ_1HZ = 3 /*!< WAKEUP frequency 1Hz. */ |
| mcm | 0:5e0fa5be068d | 252 | } AXDL345_power_ctl_wakeup_t; |
| mcm | 0:5e0fa5be068d | 253 | |
| mcm | 0:5e0fa5be068d | 254 | |
| mcm | 0:5e0fa5be068d | 255 | /** |
| mcm | 0:5e0fa5be068d | 256 | * @brief INT_MAP |
| mcm | 0:5e0fa5be068d | 257 | */ |
| mcm | 0:5e0fa5be068d | 258 | /* Bit 7 - 0 : */ |
| mcm | 0:5e0fa5be068d | 259 | typedef enum { |
| mcm | 0:5e0fa5be068d | 260 | INT_DATA_READY = 0x80, /*!< Data ready. */ |
| mcm | 0:5e0fa5be068d | 261 | INT_SINGLE_TAP = 0x40, /*!< single tap. */ |
| mcm | 0:5e0fa5be068d | 262 | INT_DOUBLE_TAP = 0x20, /*!< double tap. */ |
| mcm | 0:5e0fa5be068d | 263 | INT_ACTIVITY = 0x10, /*!< activity. */ |
| mcm | 0:5e0fa5be068d | 264 | INT_INACTIVITY = 0x08, /*!< inactivity. */ |
| mcm | 0:5e0fa5be068d | 265 | INT_FREE_FALL = 0x04, /*!< Free fall. */ |
| mcm | 0:5e0fa5be068d | 266 | INT_WATERMARK = 0x02, /*!< Watermark. */ |
| mcm | 0:5e0fa5be068d | 267 | INT_OVERRUN = 0x01 /*!< Overrun. */ |
| mcm | 0:5e0fa5be068d | 268 | } AXDL345_int_map_t; |
| mcm | 0:5e0fa5be068d | 269 | |
| mcm | 0:5e0fa5be068d | 270 | typedef enum { |
| mcm | 0:5e0fa5be068d | 271 | INT1_PIN = 0x01, /*!< PIN 1 */ |
| mcm | 0:5e0fa5be068d | 272 | INT2_PIN = 0x02 /*!< PIN 2 */ |
| mcm | 0:5e0fa5be068d | 273 | } AXDL345_int_pin_t; |
| mcm | 0:5e0fa5be068d | 274 | |
| mcm | 0:5e0fa5be068d | 275 | |
| mcm | 0:5e0fa5be068d | 276 | /** |
| mcm | 0:5e0fa5be068d | 277 | * @brief DATA_FORMAT |
| mcm | 0:5e0fa5be068d | 278 | */ |
| mcm | 0:5e0fa5be068d | 279 | /* Bit 7 : SELF_TEST ( D7 ). */ |
| mcm | 0:5e0fa5be068d | 280 | typedef enum { |
| mcm | 0:5e0fa5be068d | 281 | DATA_FORMAT_SELF_TEST_Enabled = true, /*!< SELF_TEST Enabled. */ |
| mcm | 0:5e0fa5be068d | 282 | DATA_FORMAT_SELF_TEST_Disabled = false /*!< SELF_TEST Disabled. */ |
| mcm | 0:5e0fa5be068d | 283 | } ADXL345_data_format_self_test_t; |
| mcm | 0:5e0fa5be068d | 284 | |
| mcm | 0:5e0fa5be068d | 285 | |
| mcm | 0:5e0fa5be068d | 286 | /* Bit 6 : SPI ( D6 ). */ |
| mcm | 0:5e0fa5be068d | 287 | typedef enum { |
| mcm | 0:5e0fa5be068d | 288 | DATA_FORMAT_SPI_Enabled = true, /*!< 3-wire SPI Enabled. */ |
| mcm | 0:5e0fa5be068d | 289 | DATA_FORMAT_SPI_Disabled = false /*!< 4-wire SPI Enabled. */ |
| mcm | 0:5e0fa5be068d | 290 | } ADXL345_data_format_spi_t; |
| mcm | 0:5e0fa5be068d | 291 | |
| mcm | 0:5e0fa5be068d | 292 | |
| mcm | 0:5e0fa5be068d | 293 | /* Bit 5 : INT_INVERT ( D5 ). */ |
| mcm | 0:5e0fa5be068d | 294 | typedef enum { |
| mcm | 0:5e0fa5be068d | 295 | DATA_FORMAT_INT_INVERT_Enabled = true, /*!< INT_INVERT Enabled. */ |
| mcm | 0:5e0fa5be068d | 296 | DATA_FORMAT_INT_INVERT_Disabled = false /*!< INT_INVERT Disabled. */ |
| mcm | 0:5e0fa5be068d | 297 | } ADXL345_data_format_int_invert_t; |
| mcm | 0:5e0fa5be068d | 298 | |
| mcm | 0:5e0fa5be068d | 299 | |
| mcm | 0:5e0fa5be068d | 300 | /* Bit 3 : FULL_RES ( D3 ). */ |
| mcm | 0:5e0fa5be068d | 301 | typedef enum { |
| mcm | 0:5e0fa5be068d | 302 | DATA_FORMAT_FULL_RES_Enabled = true, /*!< FULL_RES Enabled. */ |
| mcm | 0:5e0fa5be068d | 303 | DATA_FORMAT_FULL_RES_Disabled = false /*!< FULL_RES Disabled. */ |
| mcm | 0:5e0fa5be068d | 304 | } ADXL345_data_format_full_res_t; |
| mcm | 0:5e0fa5be068d | 305 | |
| mcm | 0:5e0fa5be068d | 306 | |
| mcm | 0:5e0fa5be068d | 307 | /* Bit 2 : JUSTIFY ( D2 ). */ |
| mcm | 0:5e0fa5be068d | 308 | typedef enum { |
| mcm | 0:5e0fa5be068d | 309 | DATA_FORMAT_JUSTIFY_Enabled = true, /*!< JUSTIFY Enabled. */ |
| mcm | 0:5e0fa5be068d | 310 | DATA_FORMAT_JUSTIFY_Disabled = false /*!< JUSTIFY Disabled. */ |
| mcm | 0:5e0fa5be068d | 311 | } ADXL345_data_format_justify_t; |
| mcm | 0:5e0fa5be068d | 312 | |
| mcm | 0:5e0fa5be068d | 313 | |
| mcm | 0:5e0fa5be068d | 314 | /* Bit 1 - 0 : RANGE ( D1 - D0 ). */ |
| mcm | 0:5e0fa5be068d | 315 | typedef enum { |
| mcm | 0:5e0fa5be068d | 316 | DATA_FORMAT_RANGE_2_G = 0x00, /*!< RANGE ±2g. */ |
| mcm | 0:5e0fa5be068d | 317 | DATA_FORMAT_RANGE_4_G = 0x01, /*!< RANGE ±4g. */ |
| mcm | 0:5e0fa5be068d | 318 | DATA_FORMAT_RANGE_8_G = 0x02, /*!< RANGE ±8g. */ |
| mcm | 0:5e0fa5be068d | 319 | DATA_FORMAT_RANGE_16_G = 0x03 /*!< RANGE ±16g. */ |
| mcm | 0:5e0fa5be068d | 320 | } ADXL345_data_format_range_t; |
| mcm | 0:5e0fa5be068d | 321 | |
| mcm | 0:5e0fa5be068d | 322 | |
| mcm | 0:5e0fa5be068d | 323 | |
| mcm | 0:5e0fa5be068d | 324 | /** |
| mcm | 0:5e0fa5be068d | 325 | * @brief FIFO_CTL |
| mcm | 0:5e0fa5be068d | 326 | */ |
| mcm | 0:5e0fa5be068d | 327 | /* Bit 7 - 6 : FIFO_MODE ( D7 - D6 ). */ |
| mcm | 0:5e0fa5be068d | 328 | #define FIFO_CTL_FIFO_MODE_Pos 0x07 /*!< Position of FIFO_MODE field. */ |
| mcm | 0:5e0fa5be068d | 329 | #define FIFO_CTL_FIFO_MODE_Mask 0xC0 /*!< Bit mask of FIFO_MODE field. */ |
| mcm | 0:5e0fa5be068d | 330 | #define FIFO_CTL_FIFO_MODE_BYPASS 0x00 /*!< FIFO_MODE BYPASS mode. */ |
| mcm | 0:5e0fa5be068d | 331 | #define FIFO_CTL_FIFO_MODE_FIFO 0x01 /*!< FIFO_MODE FIFO mode. */ |
| mcm | 0:5e0fa5be068d | 332 | #define FIFO_CTL_FIFO_MODE_STREAM 0x02 /*!< FIFO_MODE STREAM mode. */ |
| mcm | 0:5e0fa5be068d | 333 | #define FIFO_CTL_FIFO_MODE_TRIGGER 0x03 /*!< FIFO_MODE TRIGGER mode. */ |
| mcm | 0:5e0fa5be068d | 334 | |
| mcm | 0:5e0fa5be068d | 335 | /* Bit 5 : TRIGGER ( D5 ). */ |
| mcm | 0:5e0fa5be068d | 336 | #define TRIGGER_FIFO_MODE_Pos 0x05 /*!< Position of TRIGGER field. */ |
| mcm | 0:5e0fa5be068d | 337 | #define TRIGGER_FIFO_MODE_Mask 0x20 /*!< Bit mask of TRIGGER field. */ |
| mcm | 0:5e0fa5be068d | 338 | #define TRIGGER_FIFO_MODE_Enabled 0x01 /*!< TRIGGER Enabled. */ |
| mcm | 0:5e0fa5be068d | 339 | #define TRIGGER_FIFO_MODE_Disabled 0x00 /*!< TRIGGER Disabled. */ |
| mcm | 0:5e0fa5be068d | 340 | |
| mcm | 0:5e0fa5be068d | 341 | |
| mcm | 0:5e0fa5be068d | 342 | /** |
| mcm | 0:5e0fa5be068d | 343 | * @brief FIFO_STATUS |
| mcm | 0:5e0fa5be068d | 344 | */ |
| mcm | 0:5e0fa5be068d | 345 | /* Bit 7 : FIFO_TRIG ( D7 ). */ |
| mcm | 0:5e0fa5be068d | 346 | #define FIFO_STATUS_FIFO_TRIG_Pos 0x07 /*!< Position of FIFO_TRIG field. */ |
| mcm | 0:5e0fa5be068d | 347 | #define FIFO_STATUS_FIFO_TRIG_Mask 0x80 /*!< Bit mask of FIFO_TRIG field. */ |
| mcm | 0:5e0fa5be068d | 348 | #define FIFO_STATUS_FIFO_TRIG_Enabled 0x01 /*!< FIFO_TRIG Enabled. */ |
| mcm | 0:5e0fa5be068d | 349 | #define FIFO_STATUS_FIFO_TRIG_Disabled 0x00 /*!< FIFO_TRIG Disabled. */ |
| mcm | 0:5e0fa5be068d | 350 | |
| mcm | 0:5e0fa5be068d | 351 | |
| mcm | 0:5e0fa5be068d | 352 | |
| mcm | 0:5e0fa5be068d | 353 | |
| mcm | 0:5e0fa5be068d | 354 | #ifndef VECTOR_STRUCT_H |
| mcm | 0:5e0fa5be068d | 355 | #define VECTOR_STRUCT_H |
| mcm | 0:5e0fa5be068d | 356 | typedef struct { |
| mcm | 1:186b5a33dce3 | 357 | int16_t XAxis; /*!< X-axis raw data */ |
| mcm | 1:186b5a33dce3 | 358 | int16_t YAxis; /*!< Y-axis raw data */ |
| mcm | 1:186b5a33dce3 | 359 | int16_t ZAxis; /*!< Z-axis raw data */ |
| mcm | 1:186b5a33dce3 | 360 | } Vector_t; /*!< Struct to get the raw data */ |
| mcm | 0:5e0fa5be068d | 361 | |
| mcm | 0:5e0fa5be068d | 362 | |
| mcm | 0:5e0fa5be068d | 363 | typedef struct { |
| mcm | 1:186b5a33dce3 | 364 | float Xmg_Axis; /*!< X-axis scaled data */ |
| mcm | 1:186b5a33dce3 | 365 | float Ymg_Axis; /*!< X-axis scaled data */ |
| mcm | 1:186b5a33dce3 | 366 | float Zmg_Axis; /*!< X-axis scaled data */ |
| mcm | 1:186b5a33dce3 | 367 | } Vector_f; /*!< Struct to get the scaled data */ |
| mcm | 0:5e0fa5be068d | 368 | #endif |
| mcm | 0:5e0fa5be068d | 369 | |
| mcm | 0:5e0fa5be068d | 370 | |
| mcm | 0:5e0fa5be068d | 371 | |
| mcm | 0:5e0fa5be068d | 372 | |
| mcm | 0:5e0fa5be068d | 373 | /** |
| mcm | 0:5e0fa5be068d | 374 | * @brief INTERNAL CONSTANTS |
| mcm | 0:5e0fa5be068d | 375 | */ |
| mcm | 0:5e0fa5be068d | 376 | typedef enum { |
| mcm | 0:5e0fa5be068d | 377 | ADXL345_SUCCESS = 0, /*!< The communication was fine */ |
| mcm | 0:5e0fa5be068d | 378 | ADXL345_FAILURE = 1, /*!< Something went wrong */ |
| mcm | 0:5e0fa5be068d | 379 | I2C_SUCCESS = 0 /*!< I2C communication was fine */ |
| mcm | 0:5e0fa5be068d | 380 | } ADXL345_status_t; |
| mcm | 0:5e0fa5be068d | 381 | |
| mcm | 0:5e0fa5be068d | 382 | |
| mcm | 0:5e0fa5be068d | 383 | /** Create an ADXL345 object connected to the specified I2C pins. |
| mcm | 0:5e0fa5be068d | 384 | * |
| mcm | 0:5e0fa5be068d | 385 | * @param sda I2C data pin |
| mcm | 0:5e0fa5be068d | 386 | * @param scl I2C clock pin |
| mcm | 0:5e0fa5be068d | 387 | * @param addr I2C slave address |
| mcm | 0:5e0fa5be068d | 388 | * @param freq I2C frequency in Hz. |
| mcm | 0:5e0fa5be068d | 389 | */ |
| mcm | 0:5e0fa5be068d | 390 | ADXL345 ( PinName sda, PinName scl, uint32_t addr, uint32_t freq ); |
| mcm | 0:5e0fa5be068d | 391 | |
| mcm | 0:5e0fa5be068d | 392 | /** Delete ADXL345 object. |
| mcm | 0:5e0fa5be068d | 393 | */ |
| mcm | 0:5e0fa5be068d | 394 | ~ADXL345(); |
| mcm | 0:5e0fa5be068d | 395 | |
| mcm | 0:5e0fa5be068d | 396 | |
| mcm | 0:5e0fa5be068d | 397 | /** It configures the device. |
| mcm | 0:5e0fa5be068d | 398 | */ |
| mcm | 0:5e0fa5be068d | 399 | ADXL345_status_t ADXL345_Init ( AXDL345_bw_rate_low_power_t LOWPOWER, AXDL345_bw_rate_rate_t RATE, |
| mcm | 0:5e0fa5be068d | 400 | ADXL345_data_format_int_invert_t INT_INVERT, ADXL345_data_format_full_res_t FULLRESOLUTION, ADXL345_data_format_justify_t JUSTIFY, |
| mcm | 0:5e0fa5be068d | 401 | ADXL345_data_format_range_t RANGE ); |
| mcm | 0:5e0fa5be068d | 402 | |
| mcm | 0:5e0fa5be068d | 403 | /** It sets the device in Standby mode or Measure mode. |
| mcm | 0:5e0fa5be068d | 404 | */ |
| mcm | 0:5e0fa5be068d | 405 | ADXL345_status_t ADXL345_PowerMode ( AXDL345_power_ctl_measure_t MEASUREMODE ); |
| mcm | 0:5e0fa5be068d | 406 | |
| mcm | 0:5e0fa5be068d | 407 | /** It gets the device ID |
| mcm | 0:5e0fa5be068d | 408 | */ |
| mcm | 0:5e0fa5be068d | 409 | ADXL345_status_t ADXL345_GetID ( uint8_t* myID ); |
| mcm | 0:5e0fa5be068d | 410 | |
| mcm | 0:5e0fa5be068d | 411 | /** It gets the range. |
| mcm | 0:5e0fa5be068d | 412 | */ |
| mcm | 0:5e0fa5be068d | 413 | ADXL345_status_t ADXL345_GetRange ( ADXL345_data_format_range_t* myRANGE ); |
| mcm | 0:5e0fa5be068d | 414 | |
| mcm | 0:5e0fa5be068d | 415 | /** It sets the range. |
| mcm | 0:5e0fa5be068d | 416 | */ |
| mcm | 0:5e0fa5be068d | 417 | ADXL345_status_t ADXL345_SetRange ( ADXL345_data_format_range_t myRANGE ); |
| mcm | 0:5e0fa5be068d | 418 | |
| mcm | 0:5e0fa5be068d | 419 | /** It gets the rate. |
| mcm | 0:5e0fa5be068d | 420 | */ |
| mcm | 0:5e0fa5be068d | 421 | ADXL345_status_t ADXL345_GetRate ( AXDL345_bw_rate_rate_t* myRATE ); |
| mcm | 0:5e0fa5be068d | 422 | |
| mcm | 0:5e0fa5be068d | 423 | /** It sets the rate. |
| mcm | 0:5e0fa5be068d | 424 | */ |
| mcm | 0:5e0fa5be068d | 425 | ADXL345_status_t ADXL345_SetRate ( AXDL345_bw_rate_rate_t myRATE ); |
| mcm | 0:5e0fa5be068d | 426 | |
| mcm | 0:5e0fa5be068d | 427 | /** It reads the raw data. |
| mcm | 0:5e0fa5be068d | 428 | */ |
| mcm | 0:5e0fa5be068d | 429 | ADXL345_status_t ADXL345_ReadRawData ( Vector_t* myXYZVector ); |
| mcm | 0:5e0fa5be068d | 430 | |
| mcm | 0:5e0fa5be068d | 431 | /** It reads the scaled data. |
| mcm | 0:5e0fa5be068d | 432 | */ |
| mcm | 0:5e0fa5be068d | 433 | ADXL345_status_t ADXL345_ReadScaledData ( Vector_f* myScaled_XYZVector ); |
| mcm | 0:5e0fa5be068d | 434 | |
| mcm | 0:5e0fa5be068d | 435 | /** It sets the free fall threshold. |
| mcm | 0:5e0fa5be068d | 436 | */ |
| mcm | 0:5e0fa5be068d | 437 | ADXL345_status_t ADXL345_SetFreeFallThreshold ( uint8_t myThreshold ); |
| mcm | 0:5e0fa5be068d | 438 | |
| mcm | 0:5e0fa5be068d | 439 | /** It sets the free fall duration. |
| mcm | 0:5e0fa5be068d | 440 | */ |
| mcm | 0:5e0fa5be068d | 441 | ADXL345_status_t ADXL345_SetFreeFallDuration ( uint8_t myDuration ); |
| mcm | 0:5e0fa5be068d | 442 | |
| mcm | 0:5e0fa5be068d | 443 | /** It sets the tap threshold. |
| mcm | 0:5e0fa5be068d | 444 | */ |
| mcm | 0:5e0fa5be068d | 445 | ADXL345_status_t ADXL345_SetTapThreshold ( uint8_t myThreshold ); |
| mcm | 0:5e0fa5be068d | 446 | |
| mcm | 0:5e0fa5be068d | 447 | /** It sets the tap duration. |
| mcm | 0:5e0fa5be068d | 448 | */ |
| mcm | 0:5e0fa5be068d | 449 | ADXL345_status_t ADXL345_SetTapDuration ( uint8_t myDuration ); |
| mcm | 0:5e0fa5be068d | 450 | |
| mcm | 0:5e0fa5be068d | 451 | /** It sets the douvble tap latency. |
| mcm | 0:5e0fa5be068d | 452 | */ |
| mcm | 0:5e0fa5be068d | 453 | ADXL345_status_t ADXL345_SetDoubleTapLatency ( uint8_t myLatency ); |
| mcm | 0:5e0fa5be068d | 454 | |
| mcm | 0:5e0fa5be068d | 455 | /** It sets the double tap window. |
| mcm | 0:5e0fa5be068d | 456 | */ |
| mcm | 0:5e0fa5be068d | 457 | ADXL345_status_t ADXL345_SetDoubleTapWindow ( uint8_t myWindow ); |
| mcm | 0:5e0fa5be068d | 458 | |
| mcm | 0:5e0fa5be068d | 459 | /** It sets the tap axis. |
| mcm | 0:5e0fa5be068d | 460 | */ |
| mcm | 0:5e0fa5be068d | 461 | ADXL345_status_t ADXL345_SetTap_Axis ( ADXL345_tap_axes_axis_t myAxisEnabled ); |
| mcm | 0:5e0fa5be068d | 462 | |
| mcm | 0:5e0fa5be068d | 463 | /** It sets the suppress for double tap. |
| mcm | 0:5e0fa5be068d | 464 | */ |
| mcm | 0:5e0fa5be068d | 465 | ADXL345_status_t ADXL345_SetDouble_Suppress ( ADXL345_tap_axes_suppress_t mySuppressEnabled ); |
| mcm | 0:5e0fa5be068d | 466 | |
| mcm | 0:5e0fa5be068d | 467 | /** It sets the activity threshold. |
| mcm | 0:5e0fa5be068d | 468 | */ |
| mcm | 0:5e0fa5be068d | 469 | ADXL345_status_t ADXL345_SetActivityThreshold ( uint8_t myActivityThreshold ); |
| mcm | 0:5e0fa5be068d | 470 | |
| mcm | 0:5e0fa5be068d | 471 | /** It sets the activity AC or DC coupled. |
| mcm | 0:5e0fa5be068d | 472 | */ |
| mcm | 0:5e0fa5be068d | 473 | ADXL345_status_t ADXL345_SetActivity_AC_DC_Coupled ( ADXL345_act_inact_ctl_activity_dc_coupled_t myDC_Coupled ); |
| mcm | 0:5e0fa5be068d | 474 | |
| mcm | 0:5e0fa5be068d | 475 | /** It sets the activity axis. |
| mcm | 0:5e0fa5be068d | 476 | */ |
| mcm | 0:5e0fa5be068d | 477 | ADXL345_status_t ADXL345_SetActivity_Axis ( ADXL345_act_inact_ctl_activity_axis_t myAxisEnabled ); |
| mcm | 0:5e0fa5be068d | 478 | |
| mcm | 0:5e0fa5be068d | 479 | /** It reads the ACT_TAP status register. |
| mcm | 0:5e0fa5be068d | 480 | */ |
| mcm | 0:5e0fa5be068d | 481 | ADXL345_status_t ADXL345_Read_ACT_TAP_STATUS ( uint8_t* myACT_TAP_STATUS ); |
| mcm | 0:5e0fa5be068d | 482 | |
| mcm | 0:5e0fa5be068d | 483 | /** It sets the inactivity threshold. |
| mcm | 0:5e0fa5be068d | 484 | */ |
| mcm | 0:5e0fa5be068d | 485 | ADXL345_status_t ADXL345_SetInactivityThreshold ( uint8_t myInactivityThreshold ); |
| mcm | 0:5e0fa5be068d | 486 | |
| mcm | 0:5e0fa5be068d | 487 | /** It sets the inactivity time. |
| mcm | 0:5e0fa5be068d | 488 | */ |
| mcm | 0:5e0fa5be068d | 489 | ADXL345_status_t ADXL345_SetTimeInactivity ( uint8_t myTimeInactivity ); |
| mcm | 0:5e0fa5be068d | 490 | |
| mcm | 0:5e0fa5be068d | 491 | /** It sets the inactivity AC or DC coupled. |
| mcm | 0:5e0fa5be068d | 492 | */ |
| mcm | 0:5e0fa5be068d | 493 | ADXL345_status_t ADXL345_SetInactivity_AC_DC_Coupled ( ADXL345_act_inact_ctl_inactivity_dc_coupled_t myDC_Coupled ); |
| mcm | 0:5e0fa5be068d | 494 | |
| mcm | 0:5e0fa5be068d | 495 | /** It sets the inactivity axis. |
| mcm | 0:5e0fa5be068d | 496 | */ |
| mcm | 0:5e0fa5be068d | 497 | ADXL345_status_t ADXL345_SetInactivity_Axis ( ADXL345_act_inact_ctl_inactivity_axis_t myAxisEnabled ); |
| mcm | 0:5e0fa5be068d | 498 | |
| mcm | 0:5e0fa5be068d | 499 | /** It sets the interrupt map. |
| mcm | 0:5e0fa5be068d | 500 | */ |
| mcm | 0:5e0fa5be068d | 501 | ADXL345_status_t ADXL345_SetInterruptsMap ( AXDL345_int_map_t myInterruptsMap, AXDL345_int_pin_t myInterruptPin ); |
| mcm | 0:5e0fa5be068d | 502 | |
| mcm | 0:5e0fa5be068d | 503 | /** It enables the interrupts. |
| mcm | 0:5e0fa5be068d | 504 | */ |
| mcm | 0:5e0fa5be068d | 505 | ADXL345_status_t ADXL345_EnableInterrupts ( AXDL345_int_map_t myInterruptsEnabled ); |
| mcm | 0:5e0fa5be068d | 506 | |
| mcm | 0:5e0fa5be068d | 507 | /** It reads the interrupt sources. |
| mcm | 0:5e0fa5be068d | 508 | */ |
| mcm | 0:5e0fa5be068d | 509 | ADXL345_status_t ADXL345_ReadInterruptSource ( uint8_t* myIntSource ); |
| mcm | 0:5e0fa5be068d | 510 | |
| mcm | 0:5e0fa5be068d | 511 | |
| mcm | 0:5e0fa5be068d | 512 | private: |
| mcm | 0:5e0fa5be068d | 513 | I2C i2c; |
| mcm | 0:5e0fa5be068d | 514 | uint32_t ADXL345_Addr; |
| mcm | 0:5e0fa5be068d | 515 | }; |
| mcm | 0:5e0fa5be068d | 516 | |
| mcm | 0:5e0fa5be068d | 517 | #endif |