A mbed library for the VL53L0X proximity sensor. This is a wrapper, so beware of big file sizes.

Dependents:   BigBot_v1 PololuDistanceSensorTest Lidar Ares test ... more

Committer:
joelvonrotz
Date:
Tue Jul 30 13:56:11 2019 +0000
Revision:
1:ccc67c76fecb
Parent:
0:11ad6aaed10a
updated to mbed doc-format

Who changed what in which revision?

UserRevisionLine numberNew contents of line
joelvonrotz 0:11ad6aaed10a 1 /*******************************************************************************
joelvonrotz 0:11ad6aaed10a 2 Copyright © 2016, STMicroelectronics International N.V.
joelvonrotz 0:11ad6aaed10a 3 All rights reserved.
joelvonrotz 0:11ad6aaed10a 4
joelvonrotz 0:11ad6aaed10a 5 Redistribution and use in source and binary forms, with or without
joelvonrotz 0:11ad6aaed10a 6 modification, are permitted provided that the following conditions are met:
joelvonrotz 0:11ad6aaed10a 7 * Redistributions of source code must retain the above copyright
joelvonrotz 0:11ad6aaed10a 8 notice, this list of conditions and the following disclaimer.
joelvonrotz 0:11ad6aaed10a 9 * Redistributions in binary form must reproduce the above copyright
joelvonrotz 0:11ad6aaed10a 10 notice, this list of conditions and the following disclaimer in the
joelvonrotz 0:11ad6aaed10a 11 documentation and/or other materials provided with the distribution.
joelvonrotz 0:11ad6aaed10a 12 * Neither the name of STMicroelectronics nor the
joelvonrotz 0:11ad6aaed10a 13 names of its contributors may be used to endorse or promote products
joelvonrotz 0:11ad6aaed10a 14 derived from this software without specific prior written permission.
joelvonrotz 0:11ad6aaed10a 15
joelvonrotz 0:11ad6aaed10a 16 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
joelvonrotz 0:11ad6aaed10a 17 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
joelvonrotz 0:11ad6aaed10a 18 WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
joelvonrotz 0:11ad6aaed10a 19 NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
joelvonrotz 0:11ad6aaed10a 20 IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. BE LIABLE FOR ANY
joelvonrotz 0:11ad6aaed10a 21 DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
joelvonrotz 0:11ad6aaed10a 22 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
joelvonrotz 0:11ad6aaed10a 23 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
joelvonrotz 0:11ad6aaed10a 24 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
joelvonrotz 0:11ad6aaed10a 25 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
joelvonrotz 0:11ad6aaed10a 26 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
joelvonrotz 0:11ad6aaed10a 27 *******************************************************************************/
joelvonrotz 0:11ad6aaed10a 28
joelvonrotz 0:11ad6aaed10a 29 #ifndef _VL53L0X_API_CORE_H_
joelvonrotz 0:11ad6aaed10a 30 #define _VL53L0X_API_CORE_H_
joelvonrotz 0:11ad6aaed10a 31
joelvonrotz 0:11ad6aaed10a 32 #include "vl53l0x_def.h"
joelvonrotz 0:11ad6aaed10a 33 #include "vl53l0x_platform.h"
joelvonrotz 0:11ad6aaed10a 34
joelvonrotz 0:11ad6aaed10a 35
joelvonrotz 0:11ad6aaed10a 36 #ifdef __cplusplus
joelvonrotz 0:11ad6aaed10a 37 extern "C" {
joelvonrotz 0:11ad6aaed10a 38 #endif
joelvonrotz 0:11ad6aaed10a 39
joelvonrotz 0:11ad6aaed10a 40
joelvonrotz 0:11ad6aaed10a 41 VL53L0X_Error VL53L0X_reverse_bytes(uint8_t *data, uint32_t size);
joelvonrotz 0:11ad6aaed10a 42
joelvonrotz 0:11ad6aaed10a 43 VL53L0X_Error VL53L0X_measurement_poll_for_completion(VL53L0X_DEV Dev);
joelvonrotz 0:11ad6aaed10a 44
joelvonrotz 0:11ad6aaed10a 45 uint8_t VL53L0X_encode_vcsel_period(uint8_t vcsel_period_pclks);
joelvonrotz 0:11ad6aaed10a 46
joelvonrotz 0:11ad6aaed10a 47 uint8_t VL53L0X_decode_vcsel_period(uint8_t vcsel_period_reg);
joelvonrotz 0:11ad6aaed10a 48
joelvonrotz 0:11ad6aaed10a 49 uint32_t VL53L0X_isqrt(uint32_t num);
joelvonrotz 0:11ad6aaed10a 50
joelvonrotz 0:11ad6aaed10a 51 uint32_t VL53L0X_quadrature_sum(uint32_t a, uint32_t b);
joelvonrotz 0:11ad6aaed10a 52
joelvonrotz 0:11ad6aaed10a 53 VL53L0X_Error VL53L0X_get_info_from_device(VL53L0X_DEV Dev, uint8_t option);
joelvonrotz 0:11ad6aaed10a 54
joelvonrotz 0:11ad6aaed10a 55 VL53L0X_Error VL53L0X_set_vcsel_pulse_period(VL53L0X_DEV Dev,
joelvonrotz 0:11ad6aaed10a 56 VL53L0X_VcselPeriod VcselPeriodType, uint8_t VCSELPulsePeriodPCLK);
joelvonrotz 0:11ad6aaed10a 57
joelvonrotz 0:11ad6aaed10a 58 VL53L0X_Error VL53L0X_get_vcsel_pulse_period(VL53L0X_DEV Dev,
joelvonrotz 0:11ad6aaed10a 59 VL53L0X_VcselPeriod VcselPeriodType, uint8_t *pVCSELPulsePeriodPCLK);
joelvonrotz 0:11ad6aaed10a 60
joelvonrotz 0:11ad6aaed10a 61 uint32_t VL53L0X_decode_timeout(uint16_t encoded_timeout);
joelvonrotz 0:11ad6aaed10a 62
joelvonrotz 0:11ad6aaed10a 63 VL53L0X_Error get_sequence_step_timeout(VL53L0X_DEV Dev,
joelvonrotz 0:11ad6aaed10a 64 VL53L0X_SequenceStepId SequenceStepId,
joelvonrotz 0:11ad6aaed10a 65 uint32_t *pTimeOutMicroSecs);
joelvonrotz 0:11ad6aaed10a 66
joelvonrotz 0:11ad6aaed10a 67 VL53L0X_Error set_sequence_step_timeout(VL53L0X_DEV Dev,
joelvonrotz 0:11ad6aaed10a 68 VL53L0X_SequenceStepId SequenceStepId,
joelvonrotz 0:11ad6aaed10a 69 uint32_t TimeOutMicroSecs);
joelvonrotz 0:11ad6aaed10a 70
joelvonrotz 0:11ad6aaed10a 71 VL53L0X_Error VL53L0X_set_measurement_timing_budget_micro_seconds(VL53L0X_DEV Dev,
joelvonrotz 0:11ad6aaed10a 72 uint32_t MeasurementTimingBudgetMicroSeconds);
joelvonrotz 0:11ad6aaed10a 73
joelvonrotz 0:11ad6aaed10a 74 VL53L0X_Error VL53L0X_get_measurement_timing_budget_micro_seconds(VL53L0X_DEV Dev,
joelvonrotz 0:11ad6aaed10a 75 uint32_t *pMeasurementTimingBudgetMicroSeconds);
joelvonrotz 0:11ad6aaed10a 76
joelvonrotz 0:11ad6aaed10a 77 VL53L0X_Error VL53L0X_load_tuning_settings(VL53L0X_DEV Dev,
joelvonrotz 0:11ad6aaed10a 78 uint8_t *pTuningSettingBuffer);
joelvonrotz 0:11ad6aaed10a 79
joelvonrotz 0:11ad6aaed10a 80 VL53L0X_Error VL53L0X_calc_sigma_estimate(VL53L0X_DEV Dev,
joelvonrotz 0:11ad6aaed10a 81 VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
joelvonrotz 0:11ad6aaed10a 82 FixPoint1616_t *pSigmaEstimate, uint32_t *pDmax_mm);
joelvonrotz 0:11ad6aaed10a 83
joelvonrotz 0:11ad6aaed10a 84 VL53L0X_Error VL53L0X_get_total_xtalk_rate(VL53L0X_DEV Dev,
joelvonrotz 0:11ad6aaed10a 85 VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
joelvonrotz 0:11ad6aaed10a 86 FixPoint1616_t *ptotal_xtalk_rate_mcps);
joelvonrotz 0:11ad6aaed10a 87
joelvonrotz 0:11ad6aaed10a 88 VL53L0X_Error VL53L0X_get_total_signal_rate(VL53L0X_DEV Dev,
joelvonrotz 0:11ad6aaed10a 89 VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
joelvonrotz 0:11ad6aaed10a 90 FixPoint1616_t *ptotal_signal_rate_mcps);
joelvonrotz 0:11ad6aaed10a 91
joelvonrotz 0:11ad6aaed10a 92 VL53L0X_Error VL53L0X_get_pal_range_status(VL53L0X_DEV Dev,
joelvonrotz 0:11ad6aaed10a 93 uint8_t DeviceRangeStatus,
joelvonrotz 0:11ad6aaed10a 94 FixPoint1616_t SignalRate,
joelvonrotz 0:11ad6aaed10a 95 uint16_t EffectiveSpadRtnCount,
joelvonrotz 0:11ad6aaed10a 96 VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
joelvonrotz 0:11ad6aaed10a 97 uint8_t *pPalRangeStatus);
joelvonrotz 0:11ad6aaed10a 98
joelvonrotz 0:11ad6aaed10a 99 uint32_t VL53L0X_calc_timeout_mclks(VL53L0X_DEV Dev,
joelvonrotz 0:11ad6aaed10a 100 uint32_t timeout_period_us, uint8_t vcsel_period_pclks);
joelvonrotz 0:11ad6aaed10a 101
joelvonrotz 0:11ad6aaed10a 102 uint16_t VL53L0X_encode_timeout(uint32_t timeout_macro_clks);
joelvonrotz 0:11ad6aaed10a 103
joelvonrotz 0:11ad6aaed10a 104 #ifdef __cplusplus
joelvonrotz 0:11ad6aaed10a 105 }
joelvonrotz 0:11ad6aaed10a 106 #endif
joelvonrotz 0:11ad6aaed10a 107
joelvonrotz 0:11ad6aaed10a 108 #endif /* _VL53L0X_API_CORE_H_ */