LibDriver VEML7700
Loading...
Searching...
No Matches
driver_veml7700_interrupt.c
Go to the documentation of this file.
1
36
38
39static veml7700_handle_t gs_handle;
40
50uint8_t veml7700_interrupt_init(uint16_t low_threshold, uint16_t high_threshold)
51{
52 uint8_t res;
53
54 /* link interface function */
62
63 /* init */
64 res = veml7700_init(&gs_handle);
65 if (res != 0)
66 {
67 veml7700_interface_debug_print("veml7700: init failed.\n");
68
69 return 1;
70 }
71
72 /* disable auto range */
74 if (res != 0)
75 {
76 veml7700_interface_debug_print("veml7700: set auto range failed.\n");
77 (void)veml7700_deinit(&gs_handle);
78
79 return 1;
80 }
81
82 /* set default als gain */
84 if (res != 0)
85 {
86 veml7700_interface_debug_print("veml7700: set als gain failed.\n");
87 (void)veml7700_deinit(&gs_handle);
88
89 return 1;
90 }
91
92 /* set default als integration time */
94 if (res != 0)
95 {
96 veml7700_interface_debug_print("veml7700: set als integration time failed.\n");
97 (void)veml7700_deinit(&gs_handle);
98
99 return 1;
100 }
101
102 /* set default als persistence */
104 if (res != 0)
105 {
106 veml7700_interface_debug_print("veml7700: set als persistence failed.\n");
107 (void)veml7700_deinit(&gs_handle);
108
109 return 1;
110 }
111
112 /* set default power saving mode */
114 if (res != 0)
115 {
116 veml7700_interface_debug_print("veml7700: set power saving mode failed.\n");
117 (void)veml7700_deinit(&gs_handle);
118
119 return 1;
120 }
121
122 /* set default power saving */
124 if (res != 0)
125 {
126 veml7700_interface_debug_print("veml7700: set power saving failed.\n");
127 (void)veml7700_deinit(&gs_handle);
128
129 return 1;
130 }
131
132 /* enable als interrupt */
134 if (res != 0)
135 {
136 veml7700_interface_debug_print("veml7700: set als interrupt failed.\n");
137 (void)veml7700_deinit(&gs_handle);
138
139 return 1;
140 }
141
142 /* set als low threshold */
143 res = veml7700_set_als_low_threshold(&gs_handle, low_threshold);
144 if (res != 0)
145 {
146 veml7700_interface_debug_print("veml7700: set als low threshold failed.\n");
147 (void)veml7700_deinit(&gs_handle);
148
149 return 1;
150 }
151
152 /* set als high threshold */
153 res = veml7700_set_als_high_threshold(&gs_handle, high_threshold);
154 if (res != 0)
155 {
156 veml7700_interface_debug_print("veml7700: set als high threshold failed.\n");
157 (void)veml7700_deinit(&gs_handle);
158
159 return 1;
160 }
161
162 /* power on */
164 if (res != 0)
165 {
166 veml7700_interface_debug_print("veml7700: set als mode failed.\n");
167 (void)veml7700_deinit(&gs_handle);
168
169 return 1;
170 }
171
172 return 0;
173}
174
183uint8_t veml7700_interrupt_read(double *lux)
184{
185 uint8_t res;
186 uint16_t raw;
187
188 /* read als */
189 res = veml7700_read_als(&gs_handle, &raw, lux);
190 if (res != 0)
191 {
192 return 1;
193 }
194
195 return 0;
196}
197
206uint8_t veml7700_interrupt_read_white(uint16_t *raw)
207{
208 uint8_t res;
209
210 /* read white */
211 res = veml7700_read_white(&gs_handle, raw);
212 if (res != 0)
213 {
214 return 1;
215 }
216
217 return 0;
218}
219
230{
231 uint8_t res;
232
233 /* get interrupt status */
234 res = veml7700_get_interrupt_status(&gs_handle, low_threshold, high_threshold);
235 if (res != 0)
236 {
237 return 1;
238 }
239
240 return 0;
241}
242
251{
252 uint8_t res;
253
254 /* deinit veml7700 */
255 res = veml7700_deinit(&gs_handle);
256 if (res != 0)
257 {
258 return 1;
259 }
260
261 return 0;
262}
driver veml7700 interrupt header file
uint8_t veml7700_get_interrupt_status(veml7700_handle_t *handle, veml7700_bool_t *low_threshold, veml7700_bool_t *high_threshold)
get interrupt status
uint8_t veml7700_set_als_integration_time(veml7700_handle_t *handle, veml7700_als_integration_time_t t)
set als integration time
veml7700_bool_t
veml7700 bool enumeration definition
uint8_t veml7700_deinit(veml7700_handle_t *handle)
close the chip
uint8_t veml7700_set_als_interrupt(veml7700_handle_t *handle, veml7700_bool_t enable)
enable or disable als interrupt
uint8_t veml7700_read_white(veml7700_handle_t *handle, uint16_t *raw)
read white channel
uint8_t veml7700_init(veml7700_handle_t *handle)
initialize the chip
uint8_t veml7700_read_als(veml7700_handle_t *handle, uint16_t *raw, double *lux)
read als channel
uint8_t veml7700_set_als_mode(veml7700_handle_t *handle, veml7700_als_mode_t mode)
set als mode
uint8_t veml7700_set_als_gain(veml7700_handle_t *handle, veml7700_als_gain_t gain)
set als gain
struct veml7700_handle_s veml7700_handle_t
veml7700 handle structure definition
uint8_t veml7700_set_als_persistence(veml7700_handle_t *handle, veml7700_als_persistence_t persistence)
set als persistence
uint8_t veml7700_set_als_low_threshold(veml7700_handle_t *handle, uint16_t threshold)
set als low threshold
uint8_t veml7700_set_als_high_threshold(veml7700_handle_t *handle, uint16_t threshold)
set als high threshold
uint8_t veml7700_set_auto_range(veml7700_handle_t *handle, veml7700_bool_t enable)
set auto range
uint8_t veml7700_set_power_saving(veml7700_handle_t *handle, veml7700_bool_t enable)
enable or disable power saving
uint8_t veml7700_set_power_saving_mode(veml7700_handle_t *handle, veml7700_power_saving_mode_t mode)
set power saving mode
@ VEML7700_BOOL_DISABLE
@ VEML7700_BOOL_ENABLE
@ VEML7700_ALS_MODE_POWER_ON
uint8_t veml7700_interrupt_deinit(void)
interrupt example deinit
uint8_t veml7700_interrupt_init(uint16_t low_threshold, uint16_t high_threshold)
interrupt example init
uint8_t veml7700_interrupt_get_interrupt_status(veml7700_bool_t *low_threshold, veml7700_bool_t *high_threshold)
interrupt example get interrupt status
#define VEML7700_INTERRUPT_DEFAULT_ALS_INTEGRATION_TIME
#define VEML7700_INTERRUPT_DEFAULT_ALS_GAIN
veml7700 interrupt example default definition
#define VEML7700_INTERRUPT_DEFAULT_POWER_SAVING_MODE
uint8_t veml7700_interrupt_read(double *lux)
interrupt example read
uint8_t veml7700_interrupt_read_white(uint16_t *raw)
interrupt example read white
#define VEML7700_INTERRUPT_DEFAULT_ALS_PERSISTENCE
#define VEML7700_INTERRUPT_DEFAULT_POWER_SAVING
uint8_t veml7700_interface_iic_write(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus write
void veml7700_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t veml7700_interface_iic_init(void)
interface iic bus init
void veml7700_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t veml7700_interface_iic_read(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read
uint8_t veml7700_interface_iic_deinit(void)
interface iic bus deinit