diff --git a/tests/driver_l3g4200d/Makefile b/tests/driver_l3g4200d/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..a0797849d2eb6953bc83c5980f219b622a981aad --- /dev/null +++ b/tests/driver_l3g4200d/Makefile @@ -0,0 +1,34 @@ +APPLICATION = driver_l3g4200d +include ../Makefile.tests_common + +FEATURES_REQUIRED = periph_i2c periph_gpio + +USEMODULE += l3g4200d +USEMODULE += vtimer + +ifneq (,$(TEST_L3G4200D_I2C)) + CFLAGS += -DTEST_L3G4200D_I2C=$(TEST_L3G4200D_I2C) +else + # set random default + CFLAGS += -DTEST_L3G4200D_I2C=I2C_0 +endif +ifneq (,$(TEST_L3G4200D_ADDR)) + CFLAGS += -DTEST_L3G4200D_ADDR=$(TEST_L3G4200D_ADDR) +else + # set random default + CFLAGS += -DTEST_L3G4200D_ADDR=104 +endif +ifneq (,$(TEST_L3G4200D_INT)) + CFLAGS += -DTEST_L3G4200D_INT=$(TEST_L3G4200D_INT) +else + # set random default + CFLAGS += -DTEST_L3G4200D_INT=GPIO_8 +endif +ifneq (,$(TEST_L3G4200D_DRDY)) + CFLAGS += -DTEST_L3G4200D_DRDY=$(TEST_L3G4200D_DRDY) +else + # set random default + CFLAGS += -DTEST_L3G4200D_DRDY=GPIO_9 +endif + +include $(RIOTBASE)/Makefile.include diff --git a/tests/driver_l3g4200d/README.md b/tests/driver_l3g4200d/README.md new file mode 100644 index 0000000000000000000000000000000000000000..c189fc461d35f0173a15558430fcb91b11fb2b2c --- /dev/null +++ b/tests/driver_l3g4200d/README.md @@ -0,0 +1,11 @@ +# About +This is a manual test application for the L3G4200D gyroscope driver. + +# Usage +This test application will initialize the pressure sensor with the following parameters: + - Sampling Rate: 100Hz + - Bandwidth: 25Hz + - Scale: 500DPS + +After initialization, the sensor reads the angular speed values every 10ms +and prints them to the STDOUT. diff --git a/tests/driver_l3g4200d/main.c b/tests/driver_l3g4200d/main.c new file mode 100644 index 0000000000000000000000000000000000000000..7ba6188f74002b4001b31c3f3147c99ed77690f0 --- /dev/null +++ b/tests/driver_l3g4200d/main.c @@ -0,0 +1,69 @@ +/* + * 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 L3G4200 gyroscope driver + * + * @author Hauke Petersen <hauke.petersen@fu-berlin.de> + * + * @} + */ + +#ifndef TEST_L3G4200D_I2C +#error "TEST_L3G4200D_I2C not defined" +#endif +#ifndef TEST_L3G4200D_ADDR +#error "TEST_L3G4200D_ADDR not defined" +#endif +#ifndef TEST_L3G4200D_INT +#error "TEST_L3G4200D_INT not defined" +#endif +#ifndef TEST_L3G4200D_DRDY +#error "TEST_L3G4200D_DRDY not defined" +#endif + +#include <stdio.h> + +#include "vtimer.h" +#include "l3g4200d.h" + +#define MODE L3G4200D_MODE_100_25 +#define SCALE L3G4200D_SCALE_500DPS +#define SLEEP (100 * 1000U) + +int main(void) +{ + l3g4200d_t dev; + l3g4200d_data_t acc_data; + + puts("L3G4200 gyroscope driver test application\n"); + printf("Initializing L3G4200 sensor at I2C_%i... ", TEST_L3G4200D_I2C); + if (l3g4200d_init(&dev, TEST_L3G4200D_I2C, TEST_L3G4200D_ADDR, + TEST_L3G4200D_INT, TEST_L3G4200D_DRDY, MODE, SCALE) == 0) { + puts("[OK]\n"); + } + else { + puts("[Failed]"); + return 1; + } + + while (1) { + l3g4200d_read(&dev, &acc_data); + + printf("Gyro data [dps] - X: %6i Y: %6i Z: %6i\n", + acc_data.acc_x, acc_data.acc_y, acc_data.acc_z); + + vtimer_usleep(SLEEP); + } + + return 0; +}