diff --git a/tests/driver_lps331ap/Makefile b/tests/driver_lps331ap/Makefile new file mode 100644 index 0000000000..f5a4426a89 --- /dev/null +++ b/tests/driver_lps331ap/Makefile @@ -0,0 +1,22 @@ +APPLICATION = driver_lps331ap +include ../Makefile.tests_common + +FEATURES_REQUIRED = periph_i2c + +USEMODULE += lps331ap +USEMODULE += vtimer + +ifneq (,$(TEST_LPS331AP_I2C)) + CFLAGS += -DTEST_LPS331AP_I2C=$(TEST_LPS331AP_I2C) +else + # set random default + CFLAGS += -DTEST_LPS331AP_I2C=I2C_0 +endif +ifneq (,$(TEST_LPS331AP_ADDR)) + CFLAGS += -DTEST_LPS331AP_ADDR=$(TEST_LPS331AP_ADDR) +else + # set random default + CFLAGS += -DTEST_LPS331AP_ADDR=92 +endif + +include $(RIOTBASE)/Makefile.include diff --git a/tests/driver_lps331ap/README.md b/tests/driver_lps331ap/README.md new file mode 100644 index 0000000000..96daac3736 --- /dev/null +++ b/tests/driver_lps331ap/README.md @@ -0,0 +1,9 @@ +# About +This is a manual test application for the LPS331AP pressure sensor driver. + +# Usage +This test application will initialize the pressure sensor with the following parameters: + - Sampling Rate: 7Hz + +After initialization, the sensor reads the pressure and temperature values every 250ms +and prints them to the STDOUT. diff --git a/tests/driver_lps331ap/main.c b/tests/driver_lps331ap/main.c new file mode 100644 index 0000000000..04f51d1bcb --- /dev/null +++ b/tests/driver_lps331ap/main.c @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2014 Freie Universität Berlin + * + * This file is subject to the terms and conditions of the GNU Lesser + * General Public License v2.1. See the file LICENSE in the top level + * directory for more details. + */ + +/** + * @ingroup tests + * @{ + * + * @file + * @brief Test application for the LPS331AP pressure sensor + * + * @author Hauke Petersen + * + * @} + */ + +#ifndef TEST_LPS331AP_I2C +#error "TEST_LPS331AP_I2C not defined" +#endif +#ifndef TEST_LPS331AP_ADDR +#error "TEST_LPS331AP_ADDR not defined" +#endif + +#include + +#include "vtimer.h" +#include "lps331ap.h" + +#define RATE LPS331AP_RATE_7HZ +#define SLEEP (250 * 1000U) + +int main(void) +{ + lps331ap_t dev; + int temp, pres; + int temp_abs, pres_abs; + + puts("LPS331AP pressure sensor test application\n"); + printf("Initializing LPS331AP sensor at I2C_%i... ", TEST_LPS331AP_I2C); + if (lps331ap_init(&dev, TEST_LPS331AP_I2C, TEST_LPS331AP_ADDR, RATE) == 0) { + puts("[OK]\n"); + } + else { + puts("[Failed]"); + return 1; + } + + while (1) { + pres = lps331ap_read_pres(&dev); + temp = lps331ap_read_temp(&dev); + + pres_abs = pres / 1000; + pres -= pres_abs * 1000; + temp_abs = temp / 1000; + temp -= temp_abs * 1000; + + printf("Pressure value: %2i.%03i bar - Temperature: %2i.%03i °C\n", + pres_abs, pres, temp_abs, temp); + + vtimer_usleep(SLEEP); + } + + return 0; +}