Rename library
Dependencies: X_NUCLEO_COMMON ST_INTERFACES
Dependents: VL53L3CX_NoShield_1Sensor_poll_Mb06x VL53L3_NoShield_1Sensor_polling_Mb63 X_NUCLEO_53L3A2 53L3A2_Ranging
modules/vl53lx_core_support.h@7:7f1bbf370283, 2021-07-21 (annotated)
- Committer:
- charlesmn
- Date:
- Wed Jul 21 14:07:59 2021 +0000
- Revision:
- 7:7f1bbf370283
- Parent:
- 5:89031b2f5316
Moved vl53l3cx_class.cpp and .h to 53l3a2_RangingClass
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Charles MacNeill |
5:89031b2f5316 | 1 | |
Charles MacNeill |
5:89031b2f5316 | 2 | /* SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause */ |
Charles MacNeill |
5:89031b2f5316 | 3 | /****************************************************************************** |
Charles MacNeill |
5:89031b2f5316 | 4 | * Copyright (c) 2020, STMicroelectronics - All Rights Reserved |
Charles MacNeill |
5:89031b2f5316 | 5 | |
Charles MacNeill |
5:89031b2f5316 | 6 | This file is part of VL53LX and is dual licensed, |
Charles MacNeill |
5:89031b2f5316 | 7 | either GPL-2.0+ |
Charles MacNeill |
5:89031b2f5316 | 8 | or 'BSD 3-clause "New" or "Revised" License' , at your option. |
Charles MacNeill |
5:89031b2f5316 | 9 | ****************************************************************************** |
Charles MacNeill |
5:89031b2f5316 | 10 | */ |
Charles MacNeill |
5:89031b2f5316 | 11 | |
Charles MacNeill |
5:89031b2f5316 | 12 | |
Charles MacNeill |
5:89031b2f5316 | 13 | |
Charles MacNeill |
5:89031b2f5316 | 14 | |
Charles MacNeill |
5:89031b2f5316 | 15 | #ifndef _VL53LX_CORE_SUPPORT_H_ |
Charles MacNeill |
5:89031b2f5316 | 16 | #define _VL53LX_CORE_SUPPORT_H_ |
Charles MacNeill |
5:89031b2f5316 | 17 | |
Charles MacNeill |
5:89031b2f5316 | 18 | #include "vl53lx_types.h" |
Charles MacNeill |
5:89031b2f5316 | 19 | #include "vl53lx_hist_structs.h" |
Charles MacNeill |
5:89031b2f5316 | 20 | |
Charles MacNeill |
5:89031b2f5316 | 21 | #ifdef __cplusplus |
Charles MacNeill |
5:89031b2f5316 | 22 | extern "C" { |
Charles MacNeill |
5:89031b2f5316 | 23 | #endif |
Charles MacNeill |
5:89031b2f5316 | 24 | |
Charles MacNeill |
5:89031b2f5316 | 25 | |
Charles MacNeill |
5:89031b2f5316 | 26 | |
Charles MacNeill |
5:89031b2f5316 | 27 | |
Charles MacNeill |
5:89031b2f5316 | 28 | uint32_t VL53LX_calc_pll_period_us( |
Charles MacNeill |
5:89031b2f5316 | 29 | uint16_t fast_osc_frequency); |
Charles MacNeill |
5:89031b2f5316 | 30 | |
Charles MacNeill |
5:89031b2f5316 | 31 | |
Charles MacNeill |
5:89031b2f5316 | 32 | |
Charles MacNeill |
5:89031b2f5316 | 33 | |
Charles MacNeill |
5:89031b2f5316 | 34 | |
Charles MacNeill |
5:89031b2f5316 | 35 | uint32_t VL53LX_duration_maths( |
Charles MacNeill |
5:89031b2f5316 | 36 | uint32_t pll_period_us, |
Charles MacNeill |
5:89031b2f5316 | 37 | uint32_t vcsel_parm_pclks, |
Charles MacNeill |
5:89031b2f5316 | 38 | uint32_t window_vclks, |
Charles MacNeill |
5:89031b2f5316 | 39 | uint32_t periods_elapsed_mclks); |
Charles MacNeill |
5:89031b2f5316 | 40 | |
Charles MacNeill |
5:89031b2f5316 | 41 | |
Charles MacNeill |
5:89031b2f5316 | 42 | |
Charles MacNeill |
5:89031b2f5316 | 43 | uint32_t VL53LX_events_per_spad_maths( |
Charles MacNeill |
5:89031b2f5316 | 44 | int32_t VL53LX_p_010, |
Charles MacNeill |
5:89031b2f5316 | 45 | uint16_t num_spads, |
Charles MacNeill |
5:89031b2f5316 | 46 | uint32_t duration); |
Charles MacNeill |
5:89031b2f5316 | 47 | |
Charles MacNeill |
5:89031b2f5316 | 48 | |
Charles MacNeill |
5:89031b2f5316 | 49 | |
Charles MacNeill |
5:89031b2f5316 | 50 | |
Charles MacNeill |
5:89031b2f5316 | 51 | uint32_t VL53LX_isqrt( |
Charles MacNeill |
5:89031b2f5316 | 52 | uint32_t num); |
Charles MacNeill |
5:89031b2f5316 | 53 | |
Charles MacNeill |
5:89031b2f5316 | 54 | |
Charles MacNeill |
5:89031b2f5316 | 55 | |
Charles MacNeill |
5:89031b2f5316 | 56 | |
Charles MacNeill |
5:89031b2f5316 | 57 | void VL53LX_hist_calc_zero_distance_phase( |
Charles MacNeill |
5:89031b2f5316 | 58 | VL53LX_histogram_bin_data_t *pdata); |
Charles MacNeill |
5:89031b2f5316 | 59 | |
Charles MacNeill |
5:89031b2f5316 | 60 | |
Charles MacNeill |
5:89031b2f5316 | 61 | |
Charles MacNeill |
5:89031b2f5316 | 62 | |
Charles MacNeill |
5:89031b2f5316 | 63 | void VL53LX_hist_estimate_ambient_from_thresholded_bins( |
Charles MacNeill |
5:89031b2f5316 | 64 | int32_t ambient_threshold_sigma, |
Charles MacNeill |
5:89031b2f5316 | 65 | VL53LX_histogram_bin_data_t *pdata); |
Charles MacNeill |
5:89031b2f5316 | 66 | |
Charles MacNeill |
5:89031b2f5316 | 67 | |
Charles MacNeill |
5:89031b2f5316 | 68 | |
Charles MacNeill |
5:89031b2f5316 | 69 | |
Charles MacNeill |
5:89031b2f5316 | 70 | void VL53LX_hist_remove_ambient_bins( |
Charles MacNeill |
5:89031b2f5316 | 71 | VL53LX_histogram_bin_data_t *pdata); |
Charles MacNeill |
5:89031b2f5316 | 72 | |
Charles MacNeill |
5:89031b2f5316 | 73 | |
Charles MacNeill |
5:89031b2f5316 | 74 | |
Charles MacNeill |
5:89031b2f5316 | 75 | |
Charles MacNeill |
5:89031b2f5316 | 76 | uint32_t VL53LX_calc_pll_period_mm( |
Charles MacNeill |
5:89031b2f5316 | 77 | uint16_t fast_osc_frequency); |
Charles MacNeill |
5:89031b2f5316 | 78 | |
Charles MacNeill |
5:89031b2f5316 | 79 | |
Charles MacNeill |
5:89031b2f5316 | 80 | |
Charles MacNeill |
5:89031b2f5316 | 81 | |
Charles MacNeill |
5:89031b2f5316 | 82 | uint16_t VL53LX_rate_maths( |
Charles MacNeill |
5:89031b2f5316 | 83 | int32_t VL53LX_p_018, |
Charles MacNeill |
5:89031b2f5316 | 84 | uint32_t time_us); |
Charles MacNeill |
5:89031b2f5316 | 85 | |
Charles MacNeill |
5:89031b2f5316 | 86 | |
Charles MacNeill |
5:89031b2f5316 | 87 | |
Charles MacNeill |
5:89031b2f5316 | 88 | |
Charles MacNeill |
5:89031b2f5316 | 89 | uint16_t VL53LX_rate_per_spad_maths( |
Charles MacNeill |
5:89031b2f5316 | 90 | uint32_t frac_bits, |
Charles MacNeill |
5:89031b2f5316 | 91 | uint32_t peak_count_rate, |
Charles MacNeill |
5:89031b2f5316 | 92 | uint16_t num_spads, |
Charles MacNeill |
5:89031b2f5316 | 93 | uint32_t max_output_value); |
Charles MacNeill |
5:89031b2f5316 | 94 | |
Charles MacNeill |
5:89031b2f5316 | 95 | |
Charles MacNeill |
5:89031b2f5316 | 96 | |
Charles MacNeill |
5:89031b2f5316 | 97 | |
Charles MacNeill |
5:89031b2f5316 | 98 | int32_t VL53LX_range_maths( |
Charles MacNeill |
5:89031b2f5316 | 99 | uint16_t fast_osc_frequency, |
Charles MacNeill |
5:89031b2f5316 | 100 | uint16_t VL53LX_p_014, |
Charles MacNeill |
5:89031b2f5316 | 101 | uint16_t zero_distance_phase, |
Charles MacNeill |
5:89031b2f5316 | 102 | uint8_t fractional_bits, |
Charles MacNeill |
5:89031b2f5316 | 103 | int32_t gain_factor, |
Charles MacNeill |
5:89031b2f5316 | 104 | int32_t range_offset_mm); |
Charles MacNeill |
5:89031b2f5316 | 105 | |
Charles MacNeill |
5:89031b2f5316 | 106 | |
Charles MacNeill |
5:89031b2f5316 | 107 | |
Charles MacNeill |
5:89031b2f5316 | 108 | |
Charles MacNeill |
5:89031b2f5316 | 109 | uint8_t VL53LX_decode_vcsel_period( |
Charles MacNeill |
5:89031b2f5316 | 110 | uint8_t vcsel_period_reg); |
Charles MacNeill |
5:89031b2f5316 | 111 | |
Charles MacNeill |
5:89031b2f5316 | 112 | |
Charles MacNeill |
5:89031b2f5316 | 113 | |
Charles MacNeill |
5:89031b2f5316 | 114 | void VL53LX_copy_xtalk_bin_data_to_histogram_data_struct( |
Charles MacNeill |
5:89031b2f5316 | 115 | VL53LX_xtalk_histogram_shape_t *pxtalk, |
Charles MacNeill |
5:89031b2f5316 | 116 | VL53LX_histogram_bin_data_t *phist); |
Charles MacNeill |
5:89031b2f5316 | 117 | |
Charles MacNeill |
5:89031b2f5316 | 118 | |
Charles MacNeill |
5:89031b2f5316 | 119 | |
Charles MacNeill |
5:89031b2f5316 | 120 | |
Charles MacNeill |
5:89031b2f5316 | 121 | void VL53LX_init_histogram_bin_data_struct( |
Charles MacNeill |
5:89031b2f5316 | 122 | int32_t bin_value, |
Charles MacNeill |
5:89031b2f5316 | 123 | uint16_t VL53LX_p_021, |
Charles MacNeill |
5:89031b2f5316 | 124 | VL53LX_histogram_bin_data_t *pdata); |
Charles MacNeill |
5:89031b2f5316 | 125 | |
Charles MacNeill |
5:89031b2f5316 | 126 | |
Charles MacNeill |
5:89031b2f5316 | 127 | |
Charles MacNeill |
5:89031b2f5316 | 128 | |
Charles MacNeill |
5:89031b2f5316 | 129 | void VL53LX_decode_row_col( |
Charles MacNeill |
5:89031b2f5316 | 130 | uint8_t spad_number, |
Charles MacNeill |
5:89031b2f5316 | 131 | uint8_t *prow, |
Charles MacNeill |
5:89031b2f5316 | 132 | uint8_t *pcol); |
Charles MacNeill |
5:89031b2f5316 | 133 | |
Charles MacNeill |
5:89031b2f5316 | 134 | |
Charles MacNeill |
5:89031b2f5316 | 135 | |
Charles MacNeill |
5:89031b2f5316 | 136 | |
Charles MacNeill |
5:89031b2f5316 | 137 | void VL53LX_hist_find_min_max_bin_values( |
Charles MacNeill |
5:89031b2f5316 | 138 | VL53LX_histogram_bin_data_t *pdata); |
Charles MacNeill |
5:89031b2f5316 | 139 | |
Charles MacNeill |
5:89031b2f5316 | 140 | |
Charles MacNeill |
5:89031b2f5316 | 141 | |
Charles MacNeill |
5:89031b2f5316 | 142 | |
Charles MacNeill |
5:89031b2f5316 | 143 | void VL53LX_hist_estimate_ambient_from_ambient_bins( |
Charles MacNeill |
5:89031b2f5316 | 144 | VL53LX_histogram_bin_data_t *pdata); |
Charles MacNeill |
5:89031b2f5316 | 145 | |
Charles MacNeill |
5:89031b2f5316 | 146 | |
Charles MacNeill |
5:89031b2f5316 | 147 | #ifdef __cplusplus |
Charles MacNeill |
5:89031b2f5316 | 148 | } |
Charles MacNeill |
5:89031b2f5316 | 149 | #endif |
Charles MacNeill |
5:89031b2f5316 | 150 | |
Charles MacNeill |
5:89031b2f5316 | 151 | #endif |
Charles MacNeill |
5:89031b2f5316 | 152 |