The friendly Operating System for the Internet of Things
isl29125.h
Go to the documentation of this file.
1 /*
2  * Copyright 2015 Ludwig Knüpfer
3  * Copyright 2017 HAW Hamburg
4  *
5  * This file is subject to the terms and conditions of the GNU Lesser
6  * General Public License v2.1. See the file LICENSE in the top level
7  * directory for more details.
8  */
9 
48 #ifndef ISL29125_H
49 #define ISL29125_H
50 
51 #include <stdint.h>
52 
53 #include "periph/i2c.h"
54 #include "periph/gpio.h"
55 #include "color.h"
56 
57 #ifdef __cplusplus
58 extern "C" {
59 #endif
60 
64 typedef struct {
65  float red;
66  float green;
67  float blue;
69 
74 typedef enum {
78  ISL29125_MODE_R = 0x02,
79  ISL29125_MODE_G = 0x01,
80  ISL29125_MODE_B = 0x03,
84 
88 typedef enum {
92 
97 typedef enum {
101 
105 typedef struct {
107  gpio_t gpio;
110 } isl29125_t;
111 
115 typedef enum {
121 
125 typedef enum {
131 
135 typedef enum {
139 
153 int isl29125_init(isl29125_t *dev, i2c_t i2c, gpio_t gpio,
154  isl29125_mode_t mode, isl29125_range_t range,
155  isl29125_resolution_t resolution);
156 
172 int isl29125_init_int(isl29125_t *dev, isl29125_interrupt_status_t interrupt_status,
173  isl29125_interrupt_persist_t interrupt_persist,
174  isl29125_interrupt_conven_t interrupt_conven,
175  uint16_t lower_threshold, uint16_t higher_threshold,
176  gpio_cb_t cb, void *arg);
177 
185 
193 
201 
210 
211 #ifdef __cplusplus
212 }
213 #endif
214 
215 #endif /* ISL29125_H */
216 
isl29125_interrupt_status_t
Configuration-3 Register 0x03 B1:0.
Definition: isl29125.h:115
ADC powered down.
Definition: isl29125.h:75
range: 0.152 - 10,000 lux
Definition: isl29125.h:90
red conversion only
Definition: isl29125.h:78
gpio_t gpio
GPIO pin for interrupt/sync mode.
Definition: isl29125.h:107
RGB Conversion done to ~INT Control disable.
Definition: isl29125.h:136
void isl29125_set_mode(isl29125_t *dev, isl29125_mode_t mode)
set the device's operation mode
void isl29125_read_rgb_color(isl29125_t *dev, color_rgb_t *dest)
read color values from device
Low-level GPIO peripheral driver interface definitions.
float green
green lux value
Definition: isl29125.h:66
Device descriptor for ISL29125 sensors.
Definition: isl29125.h:105
range: 5.7m - 375 lux
Definition: isl29125.h:89
unsigned int i2c_t
Default i2c_t type definition.
Definition: i2c.h:104
isl29125_range_t
supported RGB sensing range values of the ISL29125 sensor
Definition: isl29125.h:88
RGB conversion.
Definition: isl29125.h:77
float red
red lux value
Definition: isl29125.h:65
isl29125_resolution_t res
sensor resolution
Definition: isl29125.h:109
int isl29125_init_int(isl29125_t *dev, isl29125_interrupt_status_t interrupt_status, isl29125_interrupt_persist_t interrupt_persist, isl29125_interrupt_conven_t interrupt_conven, uint16_t lower_threshold, uint16_t higher_threshold, gpio_cb_t cb, void *arg)
initialize interrupts
AD conversion not performed.
Definition: isl29125.h:76
int isl29125_init(isl29125_t *dev, i2c_t i2c, gpio_t gpio, isl29125_mode_t mode, isl29125_range_t range, isl29125_resolution_t resolution)
initialize a new ISL29125 device
isl29125_range_t range
sensor range
Definition: isl29125.h:108
void isl29125_read_rgb_lux(isl29125_t *dev, isl29125_rgb_t *dest)
read RGB values from device
isl29125_mode_t
supported operation modes of the ISL29125 sensor's AD conversion
Definition: isl29125.h:74
Headers for the color handling module.
green and blue conversion only
Definition: isl29125.h:82
RGB Conversion done to ~INT Control enable.
Definition: isl29125.h:137
isl29125_resolution_t
supported color resolutions of the ISL29125 sensor's AD conversion
Definition: isl29125.h:97
red and green conversion only
Definition: isl29125.h:81
isl29125_interrupt_persist_t
Configuration-3 Register 0x03 B3:2.
Definition: isl29125.h:125
int isl29125_read_irq_status(isl29125_t *dev)
read isl29125 interrupt status
data type for storing lux RGB sensor readings
Definition: isl29125.h:64
isl29125_interrupt_conven_t
Configuration-3 Register 0x03 B4.
Definition: isl29125.h:135
green conversion only
Definition: isl29125.h:79
float blue
blue lux value
Definition: isl29125.h:67
resolution: 12 bit
Definition: isl29125.h:98
Data-structure describing a RGB color.
Definition: color.h:35
i2c_t i2c
I2C device the sensor is connected to.
Definition: isl29125.h:106
blue conversion only
Definition: isl29125.h:80
void(* gpio_cb_t)(void *arg)
Signature of event callback functions triggered from interrupts.
Definition: gpio.h:124
Low-level I2C peripheral driver interface definition.
resolution: 16 bit
Definition: isl29125.h:99