Rename library

Dependencies:   X_NUCLEO_COMMON ST_INTERFACES

Dependents:   VL53L3CX_NoShield_1Sensor_poll_Mb06x VL53L3_NoShield_1Sensor_polling_Mb63 X_NUCLEO_53L3A2 53L3A2_Ranging

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?

UserRevisionLine numberNew 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