Loading...
Searching...
No Matches
vcnl40x0.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2017 Inria
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6#pragma once
7
21
22#include "saul.h"
23#include "periph/i2c.h"
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
32enum {
41};
42
46enum {
55};
56
62enum {
71};
72
76enum {
80};
81
85typedef struct {
87 uint8_t i2c_addr;
88 uint8_t led_current;
90 uint8_t ambient_rate;
91 uint8_t ambient_avg;
93
97typedef struct {
100
112
121
130
139
140#ifdef __cplusplus
141}
142#endif
143
Definition of the generic [S]ensor [A]ctuator [U]ber [L]ayer.
uint_fast8_t i2c_t
Default i2c_t type definition.
Definition i2c.h:155
int vcnl40x0_init(vcnl40x0_t *dev, const vcnl40x0_params_t *params)
Initialize the given VCNL40X0 device.
uint16_t vcnl40x0_read_proximity(const vcnl40x0_t *dev)
Read proximity value from the vcnl40X0 device.
uint16_t vcnl40x0_read_ambient_light(const vcnl40x0_t *dev)
Read ambient light value from the vcnl40X0 device.
uint16_t vcnl40x0_read_illuminance(const vcnl40x0_t *dev)
Read illuminance value from the vcnl40X0 device.
@ VCNL40X0_ERR_NODEV
Error wrong device.
Definition vcnl40x0.h:79
@ VCNL40X0_ERR_I2C
Error initializing the I2C bus.
Definition vcnl40x0.h:78
@ VCNL40X0_OK
Everything was fine.
Definition vcnl40x0.h:77
@ VCNL40X0_AMBIENT_RATE_2
2 sample/s (default)
Definition vcnl40x0.h:48
@ VCNL40X0_AMBIENT_RATE_6
6 sample/s
Definition vcnl40x0.h:52
@ VCNL40X0_AMBIENT_RATE_3
3 sample/s
Definition vcnl40x0.h:49
@ VCNL40X0_AMBIENT_RATE_8
8 sample/s
Definition vcnl40x0.h:53
@ VCNL40X0_AMBIENT_RATE_10
10 sample/s
Definition vcnl40x0.h:54
@ VCNL40X0_AMBIENT_RATE_4
4 sample/s
Definition vcnl40x0.h:50
@ VCNL40X0_AMBIENT_RATE_5
5 sample/s
Definition vcnl40x0.h:51
@ VCNL40X0_AMBIENT_RATE_1
1 sample/s
Definition vcnl40x0.h:47
@ VCNL40X0_AMBIENT_AVERAGE_64
Decimal value 64.
Definition vcnl40x0.h:69
@ VCNL40X0_AMBIENT_AVERAGE_1
Decimal value 1.
Definition vcnl40x0.h:63
@ VCNL40X0_AMBIENT_AVERAGE_128
Decimal value 128.
Definition vcnl40x0.h:70
@ VCNL40X0_AMBIENT_AVERAGE_2
Decimal value 2.
Definition vcnl40x0.h:64
@ VCNL40X0_AMBIENT_AVERAGE_16
Decimal value 16.
Definition vcnl40x0.h:67
@ VCNL40X0_AMBIENT_AVERAGE_8
Decimal value 8.
Definition vcnl40x0.h:66
@ VCNL40X0_AMBIENT_AVERAGE_32
Decimal value 32 (default)
Definition vcnl40x0.h:68
@ VCNL40X0_AMBIENT_AVERAGE_4
Decimal value 4.
Definition vcnl40x0.h:65
@ VCNL40X0_PROXIMITY_RATE_31
31.25 measurements/s
Definition vcnl40x0.h:37
@ VCNL40X0_PROXIMITY_RATE_2
1.95 measurements/s (default)
Definition vcnl40x0.h:33
@ VCNL40X0_PROXIMITY_RATE_8
7.8125 measurements/s
Definition vcnl40x0.h:35
@ VCNL40X0_PROXIMITY_RATE_62
62.5 measurements/s
Definition vcnl40x0.h:38
@ VCNL40X0_PROXIMITY_RATE_4
3.90625 measurements/s
Definition vcnl40x0.h:34
@ VCNL40X0_PROXIMITY_RATE_16
16.625 measurements/s
Definition vcnl40x0.h:36
@ VCNL40X0_PROXIMITY_RATE_250
250 measurements/s
Definition vcnl40x0.h:40
@ VCNL40X0_PROXIMITY_RATE_125
125 measurements/s
Definition vcnl40x0.h:39
Low-level I2C peripheral driver interface definition.
Device initialization parameters.
Definition vcnl40x0.h:85
uint8_t ambient_rate
Ambient light rate.
Definition vcnl40x0.h:90
uint8_t i2c_addr
Address on I2C bus.
Definition vcnl40x0.h:87
uint8_t led_current
LED current.
Definition vcnl40x0.h:88
uint8_t ambient_avg
Ambient light conversion average.
Definition vcnl40x0.h:91
uint8_t proximity_rate
Proximity rate.
Definition vcnl40x0.h:89
i2c_t i2c_dev
I2C device which is used.
Definition vcnl40x0.h:86
Device descriptor for the VCNL40X0 sensor.
Definition vcnl40x0.h:97
vcnl40x0_params_t params
Device parameters.
Definition vcnl40x0.h:98