diff --git a/tests/driver_isl29125/Makefile b/tests/driver_isl29125/Makefile index 07923fb5eb..da728a5234 100644 --- a/tests/driver_isl29125/Makefile +++ b/tests/driver_isl29125/Makefile @@ -1,4 +1,8 @@ APPLICATION = driver_isl29125 + +# If no BOARD is found in the environment, use this default: +BOARD ?= samr21-xpro + include ../Makefile.tests_common FEATURES_REQUIRED = periph_i2c diff --git a/tests/driver_isl29125/main.c b/tests/driver_isl29125/main.c index 4b839e3364..d00a637e66 100644 --- a/tests/driver_isl29125/main.c +++ b/tests/driver_isl29125/main.c @@ -1,5 +1,6 @@ /* * Copyright 2015 Ludwig Knüpfer + * Copyright 2017 HAW Hamburg * * 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 @@ -14,6 +15,8 @@ * @brief Test application for the ISL29125 RGB light sensor * * @author Ludwig Knüpfer + * @author Martin Heusmann + * @author Cenk Gündoğan * * @} */ @@ -34,6 +37,12 @@ #define SLEEP (250 * 1000U) +void cb(void *arg) +{ + (void) arg; + printf("INT: external interrupt\n"); +} + int main(void) { isl29125_t dev; @@ -41,6 +50,10 @@ int main(void) color_rgb_t data8bit; memset(&data, 0x00, sizeof(data)); + /* Parameters for testing, change if needed. */ + uint16_t lower_threshold = 0; + uint16_t higher_threshold = 8000; + puts("ISL29125 light sensor test application\n"); printf("Initializing ISL29125 sensor at I2C_%i... ", TEST_ISL29125_I2C); if (isl29125_init(&dev, TEST_ISL29125_I2C, TEST_ISL29125_IRQ_PIN, @@ -53,6 +66,15 @@ int main(void) return 1; } + puts("Initializing interrupt"); + + if (isl29125_init_int(&dev, ISL29125_INTERRUPT_STATUS_RED, + ISL29125_INTERRUPT_PERSIST_1, ISL29125_INTERRUPT_CONV_DIS, + lower_threshold, higher_threshold, cb, NULL) != 0) { + puts("[Failed]"); + return 1; + } + /* try out some modes */ static const isl29125_mode_t modes[] = { ISL29125_MODE_DOWN, ISL29125_MODE_STANDBY, ISL29125_MODE_RGB, @@ -80,6 +102,7 @@ int main(void) printf("RGB value: (%5i / %5i / %5i) lux\n", (int)data.red, (int)data.green, (int)data.blue); xtimer_usleep(SLEEP); + printf("IRQ-Status: %i \n", isl29125_read_irq_status(&dev)); } return 0;