vl53l1_core_support.h
Go to the documentation of this file.
1 /*
2 * Copyright (c) 2017, STMicroelectronics - All Rights Reserved
3 *
4 * This file is part of VL53L1 Core and is dual licensed,
5 * either 'STMicroelectronics
6 * Proprietary license'
7 * or 'BSD 3-clause "New" or "Revised" License' , at your option.
8 *
9 ********************************************************************************
10 *
11 * 'STMicroelectronics Proprietary license'
12 *
13 ********************************************************************************
14 *
15 * License terms: STMicroelectronics Proprietary in accordance with licensing
16 * terms at www.st.com/sla0081
17 *
18 * STMicroelectronics confidential
19 * Reproduction and Communication of this document is strictly prohibited unless
20 * specifically authorized in writing by STMicroelectronics.
21 *
22 *
23 ********************************************************************************
24 *
25 * Alternatively, VL53L1 Core may be distributed under the terms of
26 * 'BSD 3-clause "New" or "Revised" License', in which case the following
27 * provisions apply instead of the ones mentioned above :
28 *
29 ********************************************************************************
30 *
31 * License terms: BSD 3-clause "New" or "Revised" License.
32 *
33 * Redistribution and use in source and binary forms, with or without
34 * modification, are permitted provided that the following conditions are met:
35 *
36 * 1. Redistributions of source code must retain the above copyright notice, this
37 * list of conditions and the following disclaimer.
38 *
39 * 2. Redistributions in binary form must reproduce the above copyright notice,
40 * this list of conditions and the following disclaimer in the documentation
41 * and/or other materials provided with the distribution.
42 *
43 * 3. Neither the name of the copyright holder nor the names of its contributors
44 * may be used to endorse or promote products derived from this software
45 * without specific prior written permission.
46 *
47 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
48 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
49 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
50 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
51 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
52 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
53 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
54 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
55 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
56 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
57 *
58 *
59 ********************************************************************************
60 *
61 */
62 
69 #ifndef _VL53L1_CORE_SUPPORT_H_
70 #define _VL53L1_CORE_SUPPORT_H_
71 
72 #include "vl53l1_types.h"
73 
74 #ifdef __cplusplus
75 extern "C" {
76 #endif
77 
78 
89  uint16_t fast_osc_frequency);
90 
91 
92 
93 #ifdef PAL_EXTENDED
94 
108 uint32_t VL53L1_duration_maths(
109  uint32_t pll_period_us,
110  uint32_t vcsel_parm_pclks,
111  uint32_t window_vclks,
112  uint32_t periods_elapsed_mclks);
113 
114 
125 uint32_t VL53L1_isqrt(
126  uint32_t num);
127 
140 uint16_t VL53L1_rate_maths(
141  int32_t events,
142  uint32_t time_us);
143 
159 uint16_t VL53L1_rate_per_spad_maths(
160  uint32_t frac_bits,
161  uint32_t peak_count_rate,
162  uint16_t num_spads,
163  uint32_t max_output_value);
164 
165 
182 int32_t VL53L1_range_maths(
183  uint16_t fast_osc_frequency,
184  uint16_t phase,
185  uint16_t zero_distance_phase,
186  uint8_t fractional_bits,
187  int32_t gain_factor,
188  int32_t range_offset_mm);
189 #endif
190 
191 
202  uint8_t vcsel_period_reg);
203 
214  uint8_t spad_number,
215  uint8_t *prow,
216  uint8_t *pcol);
217 
218 #ifdef __cplusplus
219 }
220 #endif
221 
222 #endif /* _VL53L1_CORE_SUPPORT_H_ */
uint32_t
unsigned int uint32_t
Typedef defining 32 bit unsigned int type. The developer should modify this to suit the platform bein...
Definition: vl53l1_types.h:113
uint8_t
unsigned char uint8_t
Typedef defining 8 bit unsigned char type. The developer should modify this to suit the platform bein...
Definition: vl53l1_types.h:133
vl53l1_types.h
VL53L1 types definition.
VL53L1_calc_pll_period_us
uint32_t VL53L1_calc_pll_period_us(uint16_t fast_osc_frequency)
Calculates the PLL period in [us] from the input fast_osc_frequency.
Definition: vl53l1_core_support.c:94
int32_t
int int32_t
Typedef defining 32 bit int type. The developer should modify this to suit the platform being deploye...
Definition: vl53l1_types.h:118
VL53L1_decode_row_col
void VL53L1_decode_row_col(uint8_t spad_number, uint8_t *prow, uint8_t *pcol)
Decodes the Byte.Bit coord encoding into an (x,y) coord value.
Definition: vl53l1_core_support.c:426
uint16_t
unsigned short uint16_t
Typedef defining 16 bit unsigned short type. The developer should modify this to suit the platform be...
Definition: vl53l1_types.h:123
VL53L1_decode_vcsel_period
uint8_t VL53L1_decode_vcsel_period(uint8_t vcsel_period_reg)
Decodes VCSEL period register value into the real period in PLL clocks.
Definition: vl53l1_core_support.c:411


vl53l1x
Author(s):
autogenerated on Fri Aug 2 2024 08:35:54