tests/driver_lis3mdl: update to new driver api

This commit is contained in:
Alexandre Abadie 2017-11-07 15:02:49 +01:00
parent b39a3d79ef
commit aec32df131
2 changed files with 12 additions and 36 deletions

View File

@ -1,25 +1,7 @@
BOARD ?= limifrog-v1 BOARD ?= limifrog-v1
include ../Makefile.tests_common include ../Makefile.tests_common
# only this board is known (yet) to provide the sensor LIS3MDL
BOARD_WHITELIST = limifrog-v1
FEATURES_REQUIRED = periph_i2c periph_gpio
USEMODULE += lis3mdl USEMODULE += lis3mdl
USEMODULE += xtimer USEMODULE += xtimer
ifneq (,$(TEST_LIS3MDL_I2C))
CFLAGS += -DTEST_LIS3MDL_I2C=$(TEST_LIS3MDL_I2C)
else
# set random default
CFLAGS += -DTEST_LIS3MDL_I2C=I2C_DEV\(1\)
endif
ifneq (,$(TEST_LIS3MDL_MAG_ADDR))
CFLAGS += -DTEST_LIS3MDL_MAG_ADDR=$(TEST_LIS3MDL_MAG_ADDR)
else
# set random default 7 bit address
CFLAGS += -DTEST_LIS3MDL_MAG_ADDR=28
endif
include $(RIOTBASE)/Makefile.include include $(RIOTBASE)/Makefile.include

View File

@ -18,33 +18,23 @@
* *
* @} * @}
*/ */
#ifndef TEST_LIS3MDL_I2C
#error "TEST_LIS3MDL_I2C not defined"
#endif
#ifndef TEST_LIS3MDL_MAG_ADDR
#error "TEST_LIS3MDL_MAG_ADDR not defined"
#endif
#include <stdio.h> #include <stdio.h>
#include "xtimer.h" #include "xtimer.h"
#include "lis3mdl.h" #include "lis3mdl.h"
#include "lis3mdl_params.h"
#define SLEEP (800 * 800U) #define SLEEP (800 * 800U)
int main(void) int main(void)
{ {
lis3mdl_t dev; lis3mdl_t dev;
lis3mdl_3d_data_t mag_value;
int16_t temp_value = 0;
puts("\nLIS3MDL test application"); puts("LIS3MDL test application");
printf("Initializing LIS3MDL sensor at I2C_%i ... \n", TEST_LIS3MDL_I2C); puts("Initializing LIS3MDL sensor");
if (lis3mdl_init(&dev, TEST_LIS3MDL_I2C, TEST_LIS3MDL_MAG_ADDR, if (lis3mdl_init(&dev, &lis3mdl_params[0]) == 0) {
LIS3MDL_XY_MODE_MEDIUM,
LIS3MDL_Z_MODE_MEDIUM, LIS3MDL_ODR_10Hz,
LIS3MDL_SCALE_4G, LIS3MDL_OP_CONT_CONV) == 0) {
puts("[ OK ]\n"); puts("[ OK ]\n");
} }
else { else {
@ -53,10 +43,14 @@ int main(void)
} }
while(1) { while(1) {
lis3mdl_3d_data_t mag_value;
lis3mdl_read_mag(&dev, &mag_value); lis3mdl_read_mag(&dev, &mag_value);
printf("Magnetometer [G]:\tX: %2d\tY: %2d\tZ: %2d\n", mag_value.x_axis, printf("Magnetometer [G]:\tX: %2d\tY: %2d\tZ: %2d\n",
mag_value.x_axis,
mag_value.y_axis, mag_value.y_axis,
mag_value.z_axis); mag_value.z_axis);
int16_t temp_value;
lis3mdl_read_temp(&dev, &temp_value); lis3mdl_read_temp(&dev, &temp_value);
printf("Temperature:\t\t%i°C\n", temp_value); printf("Temperature:\t\t%i°C\n", temp_value);