Zephyr API Documentation 4.3.0-rc1
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
veml60xx-common.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2025 Andreas Klinger
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
12
13#ifndef ZEPHYR_INCLUDE_DRIVERS_SENSOR_VEML60XX_H_
14#define ZEPHYR_INCLUDE_DRIVERS_SENSOR_VEML60XX_H_
15
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
46
47/*
48 * @brief VEML60xx integration time struct.
49 */
55
56/*
57 * @brief VEML60xx integration time setting values.
58 *
59 * The enumerators of enum veml60xx_it provide indices into this array to get
60 * the related value for the ALS_IT configuration bits.
61 */
62static const struct veml60xx_it_data veml60xx_it_values[VEML60XX_IT_COUNT] = {
63 {VEML60XX_IT_3_125, 0x00, 3125}, /* 3.125 - 0b0000 */
64 {VEML60XX_IT_6_25, 0x01, 6250}, /* 6.25 - 0b0001 */
65 {VEML60XX_IT_12_5, 0x02, 12500}, /* 12.5 - 0b0010 */
66 {VEML60XX_IT_25, 0x03, 25000}, /* 25 - 0b0011 */
67 {VEML60XX_IT_50, 0x04, 50000}, /* 50 - 0b0100 */
68 {VEML60XX_IT_100, 0x05, 100000}, /* 100 - 0b0101 */
69 {VEML60XX_IT_200, 0x06, 200000}, /* 200 - 0b0110 */
70 {VEML60XX_IT_400, 0x07, 400000}, /* 400 - 0b0111 */
71};
72
81 VEML60XX_GAIN_COUNT = 4,
83};
84
97
98
99static inline bool veml60xx_gain_in_range(int32_t gain)
100{
101 return (gain >= VEML60XX_GAIN_1) && (gain <= VEML60XX_GAIN_0_5);
102}
103
104static inline bool veml60xx_it_in_range(int32_t it)
105{
106 return (it >= VEML60XX_IT_3_125) && (it <= VEML60XX_IT_400);
107}
108
109static inline bool veml60xx_pers_in_range(int32_t pers)
110{
111 return (pers >= VEML60XX_PERS_1) && (pers <= VEML60XX_PERS_8);
112}
113
114#ifdef __cplusplus
115}
116#endif
117
121
122#endif /* ZEPHYR_INCLUDE_DRIVERS_SENSOR_VEML60XX_H_ */
static bool veml60xx_pers_in_range(int32_t pers)
Definition veml60xx-common.h:109
static bool veml60xx_it_in_range(int32_t it)
Definition veml60xx-common.h:104
veml60xx_it
VEML60xx integration time options for ambient light measurements.
Definition veml60xx-common.h:33
static const struct veml60xx_it_data veml60xx_it_values[VEML60XX_IT_COUNT]
Definition veml60xx-common.h:62
static bool veml60xx_gain_in_range(int32_t gain)
Definition veml60xx-common.h:99
veml60xx_pers
VEML60xx ALS interrupt persistence protect number options.
Definition veml60xx-common.h:91
veml60xx_gain
VEML60xx gain options for ambient light measurements.
Definition veml60xx-common.h:75
@ VEML60XX_IT_50
50 ms
Definition veml60xx-common.h:38
@ VEML60XX_IT_12_5
12.5 ms
Definition veml60xx-common.h:36
@ VEML60XX_IT_25
25 ms
Definition veml60xx-common.h:37
@ VEML60XX_IT_100
100 ms
Definition veml60xx-common.h:39
@ VEML60XX_IT_6_25
6.25 ms
Definition veml60xx-common.h:35
@ VEML60XX_IT_3_125
3.125 ms
Definition veml60xx-common.h:34
@ VEML60XX_IT_400
400 ms
Definition veml60xx-common.h:41
@ VEML60XX_IT_200
200 ms
Definition veml60xx-common.h:40
@ VEML60XX_PERS_4
4 measurements
Definition veml60xx-common.h:94
@ VEML60XX_PERS_8
8 measurements
Definition veml60xx-common.h:95
@ VEML60XX_PERS_1
1 measurement
Definition veml60xx-common.h:92
@ VEML60XX_PERS_2
2 measurements
Definition veml60xx-common.h:93
@ VEML60XX_GAIN_0_5
0.5x gain
Definition veml60xx-common.h:79
@ VEML60XX_GAIN_2
2x gain
Definition veml60xx-common.h:77
@ VEML60XX_GAIN_1
1x gain
Definition veml60xx-common.h:76
@ VEML60XX_GAIN_0_66
0.66x gain
Definition veml60xx-common.h:78
__INT32_TYPE__ int32_t
Definition stdint.h:74
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
Definition veml60xx-common.h:50
uint8_t val
Definition veml60xx-common.h:52
int us
Definition veml60xx-common.h:53
enum veml60xx_it num
Definition veml60xx-common.h:51