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
core/inc/vl53l0x_api_core.h@1:ccc67c76fecb, 2019-07-30 (annotated)
- 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?
User | Revision | Line number | New 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_ */ |