diff --git a/drivers/adxl345/adxl345.c b/drivers/adxl345/adxl345.c index 28a437b7cedccdb2018f8dd608fcde81b79f7f9d..cb1e89bb475c4894d036ad163ffa6f858ba20b9c 100644 --- a/drivers/adxl345/adxl345.c +++ b/drivers/adxl345/adxl345.c @@ -29,8 +29,8 @@ #define ENABLE_DEBUG (0) #include "debug.h" -#define BUS (dev->i2c) -#define ADDR (dev->addr) +#define BUS (dev->params->i2c) +#define ADDR (dev->params->addr) int adxl345_init(adxl345_t *dev, const adxl345_params_t* params) { diff --git a/drivers/adxl345/include/adxl345_params.h b/drivers/adxl345/include/adxl345_params.h index ec106d7f15670a38d5b478d2fd1fb8c77e1c1d3d..a9acd26c56d7bc8ca065c4bef0252a00b502dbd9 100644 --- a/drivers/adxl345/include/adxl345_params.h +++ b/drivers/adxl345/include/adxl345_params.h @@ -57,7 +57,9 @@ extern "C" { #define ADXL345_PARAM_SCALE_FACTOR (3.9) #endif #ifndef ADXL345_PARAMS -#define ADXL345_PARAMS { .offset = ADXL345_PARAM_OFFSET, \ +#define ADXL345_PARAMS { .i2c = ADXL345_PARAM_I2C, \ + .addr = ADXL345_PARAM_ADDR, \ + .offset = ADXL345_PARAM_OFFSET, \ .range = ADXL345_PARAM_RANGE, \ .rate = ADXL345_PARAM_RATE, \ .full_res = ADXL345_PARAM_FULL_RES } diff --git a/drivers/include/adxl345.h b/drivers/include/adxl345.h index 5b177989f8121ab82a23b271bde89467b0e9dfa3..1106ef6fa701d371e01aa023e1abf82fb52eac80 100644 --- a/drivers/include/adxl345.h +++ b/drivers/include/adxl345.h @@ -40,20 +40,20 @@ enum { * @brief List ADXL345 power mode */ enum { - ADXL345_MEASURE_MODE, - ADXL345_STANDBY_MODE, - ADXL345_SLEEP_MODE, - ADXL345_AUTOSLEEP_MODE, + ADXL345_MEASURE_MODE, /**< Measure mode */ + ADXL345_STANDBY_MODE, /**< Standby mode */ + ADXL345_SLEEP_MODE, /**< Sleep mode */ + ADXL345_AUTOSLEEP_MODE, /**< Autosleep mode */ }; /** * @brief Define ADXL345 sensitivity */ enum { - ADXL345_RANGE_2G = 1, /**< +/- 2 g Full Scale Rang */ - ADXL345_RANGE_4G = 2, /**< +/- 4 g Full Scale Rang */ - ADXL345_RANGE_8G = 4, /**< +/- 8 g Full Scale Rang */ - ADXL345_RANGE_16G = 8 /**< +/- 16 g Full Scale Rang */ + ADXL345_RANGE_2G = 1, /**< +/- 2 g Full Scale Range */ + ADXL345_RANGE_4G = 2, /**< +/- 4 g Full Scale Range */ + ADXL345_RANGE_8G = 4, /**< +/- 8 g Full Scale Range */ + ADXL345_RANGE_16G = 8 /**< +/- 16 g Full Scale Range */ }; /** @@ -140,6 +140,8 @@ typedef struct { * @brief Configuration struct for the ADXL345 sensor */ typedef struct { + i2c_t i2c; /**< I2C device which is used */ + uint8_t addr; /**< I2C address */ gpio_t int1; /**< accelerometer int1 pin */ gpio_t int2; /**< accelerometer int2 pin */ uint8_t offset[3]; /**< offset axis */ @@ -152,8 +154,6 @@ typedef struct { * @brief Device descriptor for the ADXL345 sensor */ typedef struct { - i2c_t i2c; /**< I2C device which is used */ - uint8_t addr; /**< I2C address */ adxl345_params_t *params; /**< Device configuration */ adxl345_interrupt_t interrupt; /**< Interrupts configuration */ float scale_factor; /**< Scale factor for converting value to mg */ diff --git a/tests/driver_adxl345/main.c b/tests/driver_adxl345/main.c index 9bb20193d2deb9afb42b166bb74bf406e773162b..69a74e48c2ac0a3f33339301448b10cbbe9c517e 100644 --- a/tests/driver_adxl345/main.c +++ b/tests/driver_adxl345/main.c @@ -31,14 +31,11 @@ int main(void) adxl345_t dev; adxl345_data_t data; - dev.i2c = ADXL345_PARAM_I2C; - dev.addr = ADXL345_PARAM_ADDR; - puts("ADXL345 test application"); printf("Initializing ADXL345 accelerometer at I2C_DEV(%i)... ", - dev.i2c); + adxl345_params[0].i2c); - if (adxl345_init(&dev, (adxl345_params_t*)adxl345_params) == ADXL345_OK) { + if (adxl345_init(&dev, &adxl345_params[0]) == ADXL345_OK) { puts("[OK]\n"); } else {