47#include "lib/sensors.h"
67int16_t accm_read_axis(
enum ADXL345_AXIS axis);
76int accm_set_grange(uint8_t grange);
82int accm_set_irq(uint8_t int1, uint8_t int2);
89#define ACCM_REGISTER_INT1_CB(ptr) accm_int1_cb = ptr;
90#define ACCM_REGISTER_INT2_CB(ptr) accm_int2_cb = ptr;
98#define SUPPRESS_TIME_INT1 CLOCK_SECOND/4
99#define SUPPRESS_TIME_INT2 CLOCK_SECOND/4
102#define ADXL345_THRESH_TAP_DEFAULT 0x48
103#define ADXL345_OFSX_DEFAULT 0x00
104#define ADXL345_OFSY_DEFAULT 0x00
105#define ADXL345_OFSZ_DEFAULT 0x00
106#define ADXL345_DUR_DEFAULT 0x20
107#define ADXL345_LATENT_DEFAULT 0x50
108#define ADXL345_WINDOW_DEFAULT 0xFF
109#define ADXL345_THRESH_ACT_DEFAULT 0x15
110#define ADXL345_THRESH_INACT_DEFAULT 0x08
111#define ADXL345_TIME_INACT_DEFAULT 0x02
112#define ADXL345_ACT_INACT_CTL_DEFAULT 0xFF
113#define ADXL345_THRESH_FF_DEFAULT 0x09
114#define ADXL345_TIME_FF_DEFAULT 0x20
115#define ADXL345_TAP_AXES_DEFAULT 0x07
117#define ADXL345_BW_RATE_DEFAULT (0x00 | ADXL345_SRATE_100)
119#define ADXL345_POWER_CTL_DEFAULT 0x28
120#define ADXL345_INT_ENABLE_DEFAULT 0x00
121#define ADXL345_INT_MAP_DEFAULT 0x00
131#define ADXL345_DATA_FORMAT_DEFAULT (0x00 | ADXL345_RANGE_2G)
132#define ADXL345_FIFO_CTL_DEFAULT 0x00
137#define ADXL345_ADDR 0x53
140#define ADXL345_DEVID 0x00
142#define ADXL345_THRESH_TAP 0x1D
143#define ADXL345_OFSX 0x1E
144#define ADXL345_OFSY 0x1F
145#define ADXL345_OFSZ 0x20
146#define ADXL345_DUR 0x21
147#define ADXL345_LATENT 0x22
148#define ADXL345_WINDOW 0x23
149#define ADXL345_THRESH_ACT 0x24
150#define ADXL345_THRESH_INACT 0x25
151#define ADXL345_TIME_INACT 0x26
152#define ADXL345_ACT_INACT_CTL 0x27
153#define ADXL345_THRESH_FF 0x28
154#define ADXL345_TIME_FF 0x29
155#define ADXL345_TAP_AXES 0x2A
156#define ADXL345_ACT_TAP_STATUS 0x2B
157#define ADXL345_BW_RATE 0x2C
158#define ADXL345_POWER_CTL 0x2D
159#define ADXL345_INT_ENABLE 0x2E
160#define ADXL345_INT_MAP 0x2F
161#define ADXL345_INT_SOURCE 0x30
162#define ADXL345_DATA_FORMAT 0x31
163#define ADXL345_DATAX0 0x32
164#define ADXL345_DATAX1 0x33
165#define ADXL345_DATAY0 0x34
166#define ADXL345_DATAY1 0x35
167#define ADXL345_DATAZ0 0x36
168#define ADXL345_DATAZ1 0x37
169#define ADXL345_FIFO_CTL 0x38
170#define ADXL345_FIFO_STATUS 0x39
173#define ADXL345_INT_DISABLE 0X00
174#define ADXL345_INT_OVERRUN 0X01
175#define ADXL345_INT_WATERMARK 0X02
176#define ADXL345_INT_FREEFALL 0X04
177#define ADXL345_INT_INACTIVITY 0X08
178#define ADXL345_INT_ACTIVITY 0X10
179#define ADXL345_INT_DOUBLETAP 0X20
180#define ADXL345_INT_TAP 0X40
181#define ADXL345_INT_DATAREADY 0X80
184#define ADXL345_DIR P1DIR
185#define ADXL345_PIN P1PIN
186#define ADXL345_REN P1REN
187#define ADXL345_SEL P1SEL
188#define ADXL345_SEL2 P1SEL2
189#define ADXL345_INT1_PIN (1<<6)
190#define ADXL345_INT2_PIN (1<<7)
191#define ADXL345_IES P1IES
192#define ADXL345_IE P1IE
193#define ADXL345_IFG P1IFG
194#define ADXL345_VECTOR PORT1_VECTOR
197#define ADXL345_RANGE_2G 0x00
198#define ADXL345_RANGE_4G 0x01
199#define ADXL345_RANGE_8G 0x02
200#define ADXL345_RANGE_16G 0x03
214#define ADXL345_SRATE_3200 0x0F
216#define ADXL345_SRATE_1600 0x0E
217#define ADXL345_SRATE_800 0x0D
218#define ADXL345_SRATE_400 0x0C
219#define ADXL345_SRATE_200 0x0B
220#define ADXL345_SRATE_100 0x0A
221#define ADXL345_SRATE_50 0x09
222#define ADXL345_SRATE_25 0x08
223#define ADXL345_SRATE_12_5 0x07
224#define ADXL345_SRATE_6_25 0x06
225#define ADXL345_SRATE_3_13 0x05
226#define ADXL345_SRATE_1_56 0x04
227#define ADXL345_SRATE_0_78 0x03
228#define ADXL345_SRATE_0_39 0x02
229#define ADXL345_SRATE_0_20 0x01
230#define ADXL345_SRATE_0_10 0x00
233extern void (*accm_int1_cb)(uint8_t reg);
234extern void (*accm_int2_cb)(uint8_t reg);
236#define ACCM_INT1 0x01
237#define ACCM_INT2 0x02
238#define ADXL345_SUCCESS 0x00
239#define ADXL345_ERROR (-1)
241#define ADXL345_SENSOR "ADXL345 sensor"
243extern const struct sensors_sensor adxl345;
I2C communication device driver header file for Zolertia Z1 sensor node.