LibDriver ADXL345  2.0.0
ADXL345 full-featured driver
driver_adxl345.h File Reference

driver adxl345 header file More...

#include <stdint.h>
#include <stdio.h>
#include <string.h>

Go to the source code of this file.

Data Structures

struct  adxl345_handle_s
 adxl345 handle structure definition More...
 
struct  adxl345_info_s
 adxl345 information structure definition More...
 

Macros

#define DRIVER_ADXL345_LINK_INIT(HANDLE, STRUCTURE)   memset(HANDLE, 0, sizeof(STRUCTURE))
 initialize adxl345_handle_t structure More...
 
#define DRIVER_ADXL345_LINK_IIC_INIT(HANDLE, FUC)   (HANDLE)->iic_init = FUC
 link iic_init function More...
 
#define DRIVER_ADXL345_LINK_IIC_DEINIT(HANDLE, FUC)   (HANDLE)->iic_deinit = FUC
 link iic_deinit function More...
 
#define DRIVER_ADXL345_LINK_IIC_READ(HANDLE, FUC)   (HANDLE)->iic_read = FUC
 link iic_read function More...
 
#define DRIVER_ADXL345_LINK_IIC_WRITE(HANDLE, FUC)   (HANDLE)->iic_write = FUC
 link iic_write function More...
 
#define DRIVER_ADXL345_LINK_SPI_INIT(HANDLE, FUC)   (HANDLE)->spi_init = FUC
 link spi_init function More...
 
#define DRIVER_ADXL345_LINK_SPI_DEINIT(HANDLE, FUC)   (HANDLE)->spi_deinit = FUC
 link spi_deinit function More...
 
#define DRIVER_ADXL345_LINK_SPI_READ(HANDLE, FUC)   (HANDLE)->spi_read = FUC
 link spi_read function More...
 
#define DRIVER_ADXL345_LINK_SPI_WRITE(HANDLE, FUC)   (HANDLE)->spi_write = FUC
 link spi_write function More...
 
#define DRIVER_ADXL345_LINK_DELAY_MS(HANDLE, FUC)   (HANDLE)->delay_ms = FUC
 link delay_ms function More...
 
#define DRIVER_ADXL345_LINK_DEBUG_PRINT(HANDLE, FUC)   (HANDLE)->debug_print = FUC
 link debug_print function More...
 
#define DRIVER_ADXL345_LINK_RECEIVE_CALLBACK(HANDLE, FUC)   (HANDLE)->receive_callback = FUC
 link receive_callback function More...
 

Typedefs

typedef struct adxl345_handle_s adxl345_handle_t
 adxl345 handle structure definition More...
 
typedef struct adxl345_info_s adxl345_info_t
 adxl345 information structure definition More...
 

Enumerations

enum  adxl345_interface_t { ADXL345_INTERFACE_IIC = 0x00 , ADXL345_INTERFACE_SPI = 0x01 }
 adxl345 interface enumeration definition More...
 
enum  adxl345_address_t { ADXL345_ADDRESS_ALT_0 = 0xA6 , ADXL345_ADDRESS_ALT_1 = 0x3A }
 adxl345 address enumeration definition More...
 
enum  adxl345_bool_t { ADXL345_BOOL_FALSE = 0x00 , ADXL345_BOOL_TRUE = 0x01 }
 adxl345 bool enumeration definition More...
 
enum  adxl345_coupled_t { ADXL345_COUPLED_DC = 0x00 , ADXL345_COUPLED_AC = 0x01 }
 adxl345 coupled enumeration definition More...
 
enum  adxl345_action_inaction_t {
  ADXL345_ACTION_X = 0x06 , ADXL345_ACTION_Y = 0x05 , ADXL345_ACTION_Z = 0x04 , ADXL345_INACTION_X = 0x02 ,
  ADXL345_INACTION_Y = 0x01 , ADXL345_INACTION_Z = 0x00
}
 adxl345 action inaction enumeration definition More...
 
enum  adxl345_tap_axis_t { ADXL345_TAP_AXIS_X = 0x02 , ADXL345_TAP_AXIS_Y = 0x01 , ADXL345_TAP_AXIS_Z = 0x00 }
 adxl345 tap axis enumeration definition More...
 
enum  adxl345_action_tap_status_t {
  ADXL345_ACTION_TAP_STATUS_ACT_X = (1 << 6) , ADXL345_ACTION_TAP_STATUS_ACT_Y = (1 << 5) , ADXL345_ACTION_TAP_STATUS_ACT_Z = (1 << 4) , ADXL345_ACTION_TAP_STATUS_ASLEEP = (1 << 3) ,
  ADXL345_ACTION_TAP_STATUS_TAP_X = (1 << 2) , ADXL345_ACTION_TAP_STATUS_TAP_Y = (1 << 1) , ADXL345_ACTION_TAP_STATUS_TAP_Z = (1 << 0)
}
 adxl345 action tap status enumeration definition More...
 
enum  adxl345_rate_t {
  ADXL345_RATE_0P1 = 0x00 , ADXL345_RATE_0P2 = 0x01 , ADXL345_RATE_0P39 = 0x02 , ADXL345_RATE_0P78 = 0x03 ,
  ADXL345_RATE_1P56 = 0x04 , ADXL345_RATE_3P13 = 0x05 , ADXL345_RATE_6P25 = 0x06 , ADXL345_RATE_12P5 = 0x07 ,
  ADXL345_RATE_25 = 0x08 , ADXL345_RATE_50 = 0x09 , ADXL345_RATE_100 = 0x0A , ADXL345_RATE_200 = 0x0B ,
  ADXL345_RATE_400 = 0x0C , ADXL345_RATE_800 = 0x0D , ADXL345_RATE_1600 = 0x0E , ADXL345_RATE_3200 = 0x0F ,
  ADXL345_LOW_POWER_RATE_12P5 = 0x17 , ADXL345_LOW_POWER_RATE_25 = 0x18 , ADXL345_LOW_POWER_RATE_50 = 0x19 , ADXL345_LOW_POWER_RATE_100 = 0x1A ,
  ADXL345_LOW_POWER_RATE_200 = 0x1B , ADXL345_LOW_POWER_RATE_400 = 0x1C
}
 adxl345 rate enumeration definition More...
 
enum  adxl345_spi_wire_t { ADXL345_SPI_WIRE_4 = 0x00 , ADXL345_SPI_WIRE_3 = 0x01 }
 adxl345 spi wire enumeration definition More...
 
enum  adxl345_justify_t { ADXL345_JUSTIFY_RIGHT = 0x00 , ADXL345_JUSTIFY_LEFT = 0x01 }
 adxl345 justify enumeration definition More...
 
enum  adxl345_range_t { ADXL345_RANGE_2G = 0x00 , ADXL345_RANGE_4G = 0x01 , ADXL345_RANGE_8G = 0x02 , ADXL345_RANGE_16G = 0x03 }
 adxl345 range enumeration definition More...
 
enum  adxl345_sleep_frequency_t { ADXL345_SLEEP_FREQUENCY_8HZ = 0x00 , ADXL345_SLEEP_FREQUENCY_4HZ = 0x01 , ADXL345_SLEEP_FREQUENCY_2HZ = 0x02 , ADXL345_SLEEP_FREQUENCY_1HZ = 0x03 }
 adxl345 sleep frequency enumeration definition More...
 
enum  adxl345_mode_t { ADXL345_MODE_BYPASS = 0x00 , ADXL345_MODE_FIFO = 0x01 , ADXL345_MODE_STREAM = 0x02 , ADXL345_MODE_TRIGGER = 0x03 }
 adxl345 mode enumeration definition More...
 
enum  adxl345_trigger_status_t { ADXL345_TRIGGER_NOT_OCCURRED = 0x00 , ADXL345_TRIGGER_OCCURRED = 0x01 }
 adxl345 trigger status enumeration definition More...
 
enum  adxl345_interrupt_t {
  ADXL345_INTERRUPT_DATA_READY = 0x07 , ADXL345_INTERRUPT_SINGLE_TAP = 0x06 , ADXL345_INTERRUPT_DOUBLE_TAP = 0x05 , ADXL345_INTERRUPT_ACTIVITY = 0x04 ,
  ADXL345_INTERRUPT_INACTIVITY = 0x03 , ADXL345_INTERRUPT_FREE_FALL = 0x02 , ADXL345_INTERRUPT_WATERMARK = 0x01 , ADXL345_INTERRUPT_OVERRUN = 0x00
}
 adxl345 interrupt enumeration definition More...
 
enum  adxl345_interrupt_pin_t { ADXL345_INTERRUPT_PIN1 = 0x00 , ADXL345_INTERRUPT_PIN2 = 0x01 }
 adxl345 interrupt pin enumeration definition More...
 
enum  adxl345_interrupt_active_level_t { ADXL345_INTERRUPT_ACTIVE_LEVEL_HIGH = 0x00 , ADXL345_INTERRUPT_ACTIVE_LEVEL_LOW = 0x01 }
 adxl345 interrupt active_level enumeration definition More...
 

Functions

uint8_t adxl345_info (adxl345_info_t *info)
 get chip's information More...
 
uint8_t adxl345_init (adxl345_handle_t *handle)
 initialize the chip More...
 
uint8_t adxl345_deinit (adxl345_handle_t *handle)
 close the chip More...
 
uint8_t adxl345_set_interface (adxl345_handle_t *handle, adxl345_interface_t interface)
 set the chip interface More...
 
uint8_t adxl345_get_interface (adxl345_handle_t *handle, adxl345_interface_t *interface)
 get the chip interface More...
 
uint8_t adxl345_set_addr_pin (adxl345_handle_t *handle, adxl345_address_t addr_pin)
 set the iic address pin More...
 
uint8_t adxl345_get_addr_pin (adxl345_handle_t *handle, adxl345_address_t *addr_pin)
 get the iic address pin More...
 
uint8_t adxl345_read (adxl345_handle_t *handle, int16_t(*raw)[3], float(*g)[3], uint16_t *len)
 read the data More...
 
uint8_t adxl345_irq_handler (adxl345_handle_t *handle)
 irq handler More...
 
uint8_t adxl345_set_tap_threshold (adxl345_handle_t *handle, uint8_t threshold)
 set the tap threshold More...
 
uint8_t adxl345_get_tap_threshold (adxl345_handle_t *handle, uint8_t *threshold)
 get the tap threshold More...
 
uint8_t adxl345_tap_threshold_convert_to_register (adxl345_handle_t *handle, float g, uint8_t *reg)
 convert the tap threshold to the register raw data More...
 
uint8_t adxl345_tap_threshold_convert_to_data (adxl345_handle_t *handle, uint8_t reg, float *g)
 convert the register raw data to the tap threshold More...
 
uint8_t adxl345_set_offset (adxl345_handle_t *handle, int8_t x, int8_t y, int8_t z)
 set the axis offset More...
 
uint8_t adxl345_get_offset (adxl345_handle_t *handle, int8_t *x, int8_t *y, int8_t *z)
 get the axis offset More...
 
uint8_t adxl345_offset_convert_to_register (adxl345_handle_t *handle, float g, int8_t *reg)
 convert the offset to the register raw data More...
 
uint8_t adxl345_offset_convert_to_data (adxl345_handle_t *handle, int8_t reg, float *g)
 convert the register raw data to the offset More...
 
uint8_t adxl345_set_duration (adxl345_handle_t *handle, uint8_t t)
 set the duration More...
 
uint8_t adxl345_get_duration (adxl345_handle_t *handle, uint8_t *t)
 get the duration More...
 
uint8_t adxl345_duration_convert_to_register (adxl345_handle_t *handle, uint32_t us, uint8_t *reg)
 convert the duration to the register raw data More...
 
uint8_t adxl345_duration_convert_to_data (adxl345_handle_t *handle, uint8_t reg, uint32_t *us)
 convert the register raw data to the duration More...
 
uint8_t adxl345_set_latent (adxl345_handle_t *handle, uint8_t t)
 set the latent More...
 
uint8_t adxl345_get_latent (adxl345_handle_t *handle, uint8_t *t)
 get the latent More...
 
uint8_t adxl345_latent_convert_to_register (adxl345_handle_t *handle, float ms, uint8_t *reg)
 convert the latent to the register raw data More...
 
uint8_t adxl345_latent_convert_to_data (adxl345_handle_t *handle, uint8_t reg, float *ms)
 convert the register raw data to the latent More...
 
uint8_t adxl345_set_window (adxl345_handle_t *handle, uint8_t t)
 set the window More...
 
uint8_t adxl345_get_window (adxl345_handle_t *handle, uint8_t *t)
 get the window More...
 
uint8_t adxl345_window_convert_to_register (adxl345_handle_t *handle, float ms, uint8_t *reg)
 convert the window time to the register raw data More...
 
uint8_t adxl345_window_convert_to_data (adxl345_handle_t *handle, uint8_t reg, float *ms)
 convert the register raw data to the window time More...
 
uint8_t adxl345_set_action_threshold (adxl345_handle_t *handle, uint8_t threshold)
 set the action threshold More...
 
uint8_t adxl345_get_action_threshold (adxl345_handle_t *handle, uint8_t *threshold)
 get the action threshold More...
 
uint8_t adxl345_action_threshold_convert_to_register (adxl345_handle_t *handle, float g, uint8_t *reg)
 convert the action threshold to the register raw data More...
 
uint8_t adxl345_action_threshold_convert_to_data (adxl345_handle_t *handle, uint8_t reg, float *g)
 convert the register raw data to the action threshold More...
 
uint8_t adxl345_set_inaction_threshold (adxl345_handle_t *handle, uint8_t threshold)
 set the inaction threshold More...
 
uint8_t adxl345_get_inaction_threshold (adxl345_handle_t *handle, uint8_t *threshold)
 get the inaction threshold More...
 
uint8_t adxl345_inaction_threshold_convert_to_register (adxl345_handle_t *handle, float g, uint8_t *reg)
 convert the inaction threshold to the register raw data More...
 
uint8_t adxl345_inaction_threshold_convert_to_data (adxl345_handle_t *handle, uint8_t reg, float *g)
 convert the register raw data to the inaction threshold More...
 
uint8_t adxl345_set_inaction_time (adxl345_handle_t *handle, uint8_t t)
 set the inaction time More...
 
uint8_t adxl345_get_inaction_time (adxl345_handle_t *handle, uint8_t *t)
 get the inaction time More...
 
uint8_t adxl345_inaction_time_convert_to_register (adxl345_handle_t *handle, uint8_t s, uint8_t *reg)
 convert the inaction time to the register raw data More...
 
uint8_t adxl345_inaction_time_convert_to_data (adxl345_handle_t *handle, uint8_t reg, uint8_t *s)
 convert the register raw data to the inaction time More...
 
uint8_t adxl345_set_action_inaction (adxl345_handle_t *handle, adxl345_action_inaction_t type, adxl345_bool_t enable)
 enable or disable the action or inaction More...
 
uint8_t adxl345_get_action_inaction (adxl345_handle_t *handle, adxl345_action_inaction_t type, adxl345_bool_t *enable)
 get the action or inaction status More...
 
uint8_t adxl345_set_action_coupled (adxl345_handle_t *handle, adxl345_coupled_t coupled)
 set the action coupled More...
 
uint8_t adxl345_get_action_coupled (adxl345_handle_t *handle, adxl345_coupled_t *coupled)
 get the action coupled More...
 
uint8_t adxl345_set_inaction_coupled (adxl345_handle_t *handle, adxl345_coupled_t coupled)
 set the inaction coupled More...
 
uint8_t adxl345_get_inaction_coupled (adxl345_handle_t *handle, adxl345_coupled_t *coupled)
 get the inaction coupled More...
 
uint8_t adxl345_set_free_fall_threshold (adxl345_handle_t *handle, uint8_t threshold)
 set the free fall threshold More...
 
uint8_t adxl345_get_free_fall_threshold (adxl345_handle_t *handle, uint8_t *threshold)
 get the free fall threshold More...
 
uint8_t adxl345_free_fall_threshold_convert_to_register (adxl345_handle_t *handle, float g, uint8_t *reg)
 convert the free fall threshold to the register raw data More...
 
uint8_t adxl345_free_fall_threshold_convert_to_data (adxl345_handle_t *handle, uint8_t reg, float *g)
 convert the register raw data to the free fall threshold More...
 
uint8_t adxl345_set_free_fall_time (adxl345_handle_t *handle, uint8_t t)
 set the free fall time More...
 
uint8_t adxl345_get_free_fall_time (adxl345_handle_t *handle, uint8_t *t)
 get the free fall time More...
 
uint8_t adxl345_free_fall_time_convert_to_register (adxl345_handle_t *handle, uint16_t ms, uint8_t *reg)
 convert the free fall time to the register raw data More...
 
uint8_t adxl345_free_fall_time_convert_to_data (adxl345_handle_t *handle, uint8_t reg, uint16_t *ms)
 convert the register raw data to the free fall time More...
 
uint8_t adxl345_set_tap_axis (adxl345_handle_t *handle, adxl345_tap_axis_t axis, adxl345_bool_t enable)
 enable or disable the tap axis More...
 
uint8_t adxl345_get_tap_axis (adxl345_handle_t *handle, adxl345_tap_axis_t axis, adxl345_bool_t *enable)
 get the tap axis status More...
 
uint8_t adxl345_set_tap_suppress (adxl345_handle_t *handle, adxl345_bool_t enable)
 enable or disable the tap suppress More...
 
uint8_t adxl345_get_tap_suppress (adxl345_handle_t *handle, adxl345_bool_t *enable)
 get the tap suppress status More...
 
uint8_t adxl345_get_tap_status (adxl345_handle_t *handle, uint8_t *status)
 get the tap status More...
 
uint8_t adxl345_set_rate (adxl345_handle_t *handle, adxl345_rate_t rate)
 set the sampling rate More...
 
uint8_t adxl345_get_rate (adxl345_handle_t *handle, adxl345_rate_t *rate)
 get the sampling rate More...
 
uint8_t adxl345_set_self_test (adxl345_handle_t *handle, adxl345_bool_t enable)
 enable or disable the self test More...
 
uint8_t adxl345_get_self_test (adxl345_handle_t *handle, adxl345_bool_t *enable)
 get the self test status More...
 
uint8_t adxl345_set_spi_wire (adxl345_handle_t *handle, adxl345_spi_wire_t wire)
 set the chip spi wire More...
 
uint8_t adxl345_get_spi_wire (adxl345_handle_t *handle, adxl345_spi_wire_t *wire)
 get the chip spi wire More...
 
uint8_t adxl345_set_full_resolution (adxl345_handle_t *handle, adxl345_bool_t enable)
 enable or disable the full resolution More...
 
uint8_t adxl345_get_full_resolution (adxl345_handle_t *handle, adxl345_bool_t *enable)
 get the full resolution status More...
 
uint8_t adxl345_set_justify (adxl345_handle_t *handle, adxl345_justify_t enable)
 enable or disable the justify More...
 
uint8_t adxl345_get_justify (adxl345_handle_t *handle, adxl345_justify_t *enable)
 get the justify status More...
 
uint8_t adxl345_set_range (adxl345_handle_t *handle, adxl345_range_t range)
 set the chip range More...
 
uint8_t adxl345_get_range (adxl345_handle_t *handle, adxl345_range_t *range)
 get the chip range More...
 
uint8_t adxl345_set_mode (adxl345_handle_t *handle, adxl345_mode_t mode)
 set the chip mode More...
 
uint8_t adxl345_get_mode (adxl345_handle_t *handle, adxl345_mode_t *mode)
 get the chip mode More...
 
uint8_t adxl345_set_trigger_pin (adxl345_handle_t *handle, adxl345_interrupt_pin_t pin)
 set the trigger pin More...
 
uint8_t adxl345_get_trigger_pin (adxl345_handle_t *handle, adxl345_interrupt_pin_t *pin)
 get the trigger pin More...
 
uint8_t adxl345_get_trigger_status (adxl345_handle_t *handle, adxl345_trigger_status_t *status)
 get the trigger status More...
 
uint8_t adxl345_set_link_activity_inactivity (adxl345_handle_t *handle, adxl345_bool_t enable)
 enable or disable the activity and inactivity linking More...
 
uint8_t adxl345_get_link_activity_inactivity (adxl345_handle_t *handle, adxl345_bool_t *enable)
 get the activity and inactivity linking status More...
 
uint8_t adxl345_set_auto_sleep (adxl345_handle_t *handle, adxl345_bool_t enable)
 enable or disable the auto sleep More...
 
uint8_t adxl345_get_auto_sleep (adxl345_handle_t *handle, adxl345_bool_t *enable)
 get the auto sleep status More...
 
uint8_t adxl345_set_measure (adxl345_handle_t *handle, adxl345_bool_t enable)
 enable or disable the measure More...
 
uint8_t adxl345_get_measure (adxl345_handle_t *handle, adxl345_bool_t *enable)
 get the measure status More...
 
uint8_t adxl345_set_sleep (adxl345_handle_t *handle, adxl345_bool_t enable)
 enable or disable the sleep mode More...
 
uint8_t adxl345_get_sleep (adxl345_handle_t *handle, adxl345_bool_t *enable)
 get the sleep mode status More...
 
uint8_t adxl345_set_sleep_frequency (adxl345_handle_t *handle, adxl345_sleep_frequency_t sleep_frequency)
 set the sleep frequency More...
 
uint8_t adxl345_get_sleep_frequency (adxl345_handle_t *handle, adxl345_sleep_frequency_t *sleep_frequency)
 get the sleep frequency More...
 
uint8_t adxl345_set_interrupt (adxl345_handle_t *handle, adxl345_interrupt_t type, adxl345_bool_t enable)
 enable or disable the interrupt More...
 
uint8_t adxl345_get_interrupt (adxl345_handle_t *handle, adxl345_interrupt_t type, adxl345_bool_t *enable)
 get the interrupt status More...
 
uint8_t adxl345_get_interrupt_source (adxl345_handle_t *handle, uint8_t *source)
 get the interrupt source More...
 
uint8_t adxl345_set_interrupt_map (adxl345_handle_t *handle, adxl345_interrupt_t type, adxl345_interrupt_pin_t pin)
 set the interrupt map More...
 
uint8_t adxl345_get_interrupt_map (adxl345_handle_t *handle, adxl345_interrupt_t type, adxl345_interrupt_pin_t *pin)
 get the interrupt map More...
 
uint8_t adxl345_set_interrupt_active_level (adxl345_handle_t *handle, adxl345_interrupt_active_level_t active_level)
 set the interrupt active level More...
 
uint8_t adxl345_get_interrupt_active_level (adxl345_handle_t *handle, adxl345_interrupt_active_level_t *active_level)
 get the interrupt active level More...
 
uint8_t adxl345_set_watermark (adxl345_handle_t *handle, uint8_t level)
 set the fifo watermark More...
 
uint8_t adxl345_get_watermark (adxl345_handle_t *handle, uint8_t *level)
 get the fifo watermark More...
 
uint8_t adxl345_get_watermark_level (adxl345_handle_t *handle, uint8_t *level)
 get the current fifo watermark level More...
 
uint8_t adxl345_set_reg (adxl345_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len)
 set the chip register More...
 
uint8_t adxl345_get_reg (adxl345_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len)
 get the chip register More...
 

Detailed Description

driver adxl345 header file

Copyright (c) 2015 - present LibDriver All rights reserved

The MIT License (MIT)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Version
2.0.0
Author
Shifeng Li
Date
2021-04-20

history

Date Version Author Description
2021/04/20 2.0 Shifeng Li format the code
2020/12/23 1.0 Shifeng Li first upload

Definition in file driver_adxl345.h.