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
Charles MacNeill 5:89031b2f5316 16 #include <stdio.h>
Charles MacNeill 5:89031b2f5316 17 #include <stdlib.h>
Charles MacNeill 5:89031b2f5316 18
Charles MacNeill 5:89031b2f5316 19
Charles MacNeill 5:89031b2f5316 20
Charles MacNeill 5:89031b2f5316 21 #include "vl53lx_core.h"
Charles MacNeill 5:89031b2f5316 22 #include "vl53lx_register_settings.h"
Charles MacNeill 5:89031b2f5316 23 #include "vl53lx_hist_char.h"
Charles MacNeill 5:89031b2f5316 24
Charles MacNeill 5:89031b2f5316 25 #define LOG_FUNCTION_START(fmt, ...) \
Charles MacNeill 5:89031b2f5316 26 _LOG_FUNCTION_START(VL53LX_TRACE_MODULE_HISTOGRAM, fmt, ##__VA_ARGS__)
Charles MacNeill 5:89031b2f5316 27 #define LOG_FUNCTION_END(status, ...) \
Charles MacNeill 5:89031b2f5316 28 _LOG_FUNCTION_END(VL53LX_TRACE_MODULE_HISTOGRAM, status, ##__VA_ARGS__)
Charles MacNeill 5:89031b2f5316 29 #define LOG_FUNCTION_END_FMT(status, fmt, ...) \
Charles MacNeill 5:89031b2f5316 30 _LOG_FUNCTION_END_FMT(VL53LX_TRACE_MODULE_HISTOGRAM,\
Charles MacNeill 5:89031b2f5316 31 status, fmt, ##__VA_ARGS__)
Charles MacNeill 5:89031b2f5316 32
Charles MacNeill 5:89031b2f5316 33
Charles MacNeill 5:89031b2f5316 34 VL53LX_Error VL53LX_set_calib_config(
Charles MacNeill 5:89031b2f5316 35 VL53LX_DEV Dev,
Charles MacNeill 5:89031b2f5316 36 uint8_t vcsel_delay__a0,
Charles MacNeill 5:89031b2f5316 37 uint8_t calib_1,
Charles MacNeill 5:89031b2f5316 38 uint8_t calib_2,
Charles MacNeill 5:89031b2f5316 39 uint8_t calib_3,
Charles MacNeill 5:89031b2f5316 40 uint8_t calib_2__a0,
Charles MacNeill 5:89031b2f5316 41 uint8_t spad_readout)
Charles MacNeill 5:89031b2f5316 42 {
Charles MacNeill 5:89031b2f5316 43
Charles MacNeill 5:89031b2f5316 44
Charles MacNeill 5:89031b2f5316 45 VL53LX_Error status = VL53LX_ERROR_NONE;
Charles MacNeill 5:89031b2f5316 46 uint8_t comms_buffer[3];
Charles MacNeill 5:89031b2f5316 47
Charles MacNeill 5:89031b2f5316 48 LOG_FUNCTION_START("");
Charles MacNeill 5:89031b2f5316 49
Charles MacNeill 5:89031b2f5316 50
Charles MacNeill 5:89031b2f5316 51
Charles MacNeill 5:89031b2f5316 52 status = VL53LX_enable_powerforce(Dev);
Charles MacNeill 5:89031b2f5316 53
Charles MacNeill 5:89031b2f5316 54
Charles MacNeill 5:89031b2f5316 55 if (status == VL53LX_ERROR_NONE)
Charles MacNeill 5:89031b2f5316 56 status = VL53LX_disable_firmware(Dev);
Charles MacNeill 5:89031b2f5316 57
Charles MacNeill 5:89031b2f5316 58
Charles MacNeill 5:89031b2f5316 59
Charles MacNeill 5:89031b2f5316 60
Charles MacNeill 5:89031b2f5316 61 if (status == VL53LX_ERROR_NONE) {
Charles MacNeill 5:89031b2f5316 62 status = VL53LX_WrByte(
Charles MacNeill 5:89031b2f5316 63 Dev,
Charles MacNeill 5:89031b2f5316 64 VL53LX_RANGING_CORE__VCSEL_DELAY__A0,
Charles MacNeill 5:89031b2f5316 65 vcsel_delay__a0);
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 if (status == VL53LX_ERROR_NONE) {
Charles MacNeill 5:89031b2f5316 71
Charles MacNeill 5:89031b2f5316 72
Charles MacNeill 5:89031b2f5316 73 comms_buffer[0] = calib_1;
Charles MacNeill 5:89031b2f5316 74 comms_buffer[1] = calib_2;
Charles MacNeill 5:89031b2f5316 75 comms_buffer[2] = calib_3;
Charles MacNeill 5:89031b2f5316 76
Charles MacNeill 5:89031b2f5316 77 status = VL53LX_WriteMulti(
Charles MacNeill 5:89031b2f5316 78 Dev,
Charles MacNeill 5:89031b2f5316 79 VL53LX_RANGING_CORE__CALIB_1,
Charles MacNeill 5:89031b2f5316 80 comms_buffer,
Charles MacNeill 5:89031b2f5316 81 3);
Charles MacNeill 5:89031b2f5316 82 }
Charles MacNeill 5:89031b2f5316 83
Charles MacNeill 5:89031b2f5316 84
Charles MacNeill 5:89031b2f5316 85
Charles MacNeill 5:89031b2f5316 86 if (status == VL53LX_ERROR_NONE)
Charles MacNeill 5:89031b2f5316 87 status = VL53LX_WrByte(
Charles MacNeill 5:89031b2f5316 88 Dev,
Charles MacNeill 5:89031b2f5316 89 VL53LX_RANGING_CORE__CALIB_2__A0,
Charles MacNeill 5:89031b2f5316 90 calib_2__a0);
Charles MacNeill 5:89031b2f5316 91
Charles MacNeill 5:89031b2f5316 92
Charles MacNeill 5:89031b2f5316 93
Charles MacNeill 5:89031b2f5316 94 if (status == VL53LX_ERROR_NONE)
Charles MacNeill 5:89031b2f5316 95 status = VL53LX_WrByte(
Charles MacNeill 5:89031b2f5316 96 Dev,
Charles MacNeill 5:89031b2f5316 97 VL53LX_RANGING_CORE__SPAD_READOUT,
Charles MacNeill 5:89031b2f5316 98 spad_readout);
Charles MacNeill 5:89031b2f5316 99
Charles MacNeill 5:89031b2f5316 100
Charles MacNeill 5:89031b2f5316 101
Charles MacNeill 5:89031b2f5316 102 if (status == VL53LX_ERROR_NONE)
Charles MacNeill 5:89031b2f5316 103 status = VL53LX_enable_firmware(Dev);
Charles MacNeill 5:89031b2f5316 104
Charles MacNeill 5:89031b2f5316 105 LOG_FUNCTION_END(status);
Charles MacNeill 5:89031b2f5316 106
Charles MacNeill 5:89031b2f5316 107 return status;
Charles MacNeill 5:89031b2f5316 108 }
Charles MacNeill 5:89031b2f5316 109
Charles MacNeill 5:89031b2f5316 110
Charles MacNeill 5:89031b2f5316 111
Charles MacNeill 5:89031b2f5316 112 VL53LX_Error VL53LX_set_hist_calib_pulse_delay(
Charles MacNeill 5:89031b2f5316 113 VL53LX_DEV Dev,
Charles MacNeill 5:89031b2f5316 114 uint8_t calib_delay)
Charles MacNeill 5:89031b2f5316 115 {
Charles MacNeill 5:89031b2f5316 116
Charles MacNeill 5:89031b2f5316 117
Charles MacNeill 5:89031b2f5316 118 VL53LX_Error status = VL53LX_ERROR_NONE;
Charles MacNeill 5:89031b2f5316 119
Charles MacNeill 5:89031b2f5316 120 LOG_FUNCTION_START("");
Charles MacNeill 5:89031b2f5316 121
Charles MacNeill 5:89031b2f5316 122 status =
Charles MacNeill 5:89031b2f5316 123 VL53LX_set_calib_config(
Charles MacNeill 5:89031b2f5316 124 Dev,
Charles MacNeill 5:89031b2f5316 125 0x01,
Charles MacNeill 5:89031b2f5316 126 calib_delay,
Charles MacNeill 5:89031b2f5316 127 0x04,
Charles MacNeill 5:89031b2f5316 128 0x08,
Charles MacNeill 5:89031b2f5316 129 0x14,
Charles MacNeill 5:89031b2f5316 130 VL53LX_RANGING_CORE__SPAD_READOUT__CALIB_PULSES);
Charles MacNeill 5:89031b2f5316 131
Charles MacNeill 5:89031b2f5316 132 LOG_FUNCTION_END(status);
Charles MacNeill 5:89031b2f5316 133
Charles MacNeill 5:89031b2f5316 134 return status;
Charles MacNeill 5:89031b2f5316 135 }
Charles MacNeill 5:89031b2f5316 136
Charles MacNeill 5:89031b2f5316 137
Charles MacNeill 5:89031b2f5316 138 VL53LX_Error VL53LX_disable_calib_pulse_delay(
Charles MacNeill 5:89031b2f5316 139 VL53LX_DEV Dev)
Charles MacNeill 5:89031b2f5316 140 {
Charles MacNeill 5:89031b2f5316 141
Charles MacNeill 5:89031b2f5316 142
Charles MacNeill 5:89031b2f5316 143 VL53LX_Error status = VL53LX_ERROR_NONE;
Charles MacNeill 5:89031b2f5316 144
Charles MacNeill 5:89031b2f5316 145 LOG_FUNCTION_START("");
Charles MacNeill 5:89031b2f5316 146
Charles MacNeill 5:89031b2f5316 147 status =
Charles MacNeill 5:89031b2f5316 148 VL53LX_set_calib_config(
Charles MacNeill 5:89031b2f5316 149 Dev,
Charles MacNeill 5:89031b2f5316 150 0x00,
Charles MacNeill 5:89031b2f5316 151 0x00,
Charles MacNeill 5:89031b2f5316 152 0x00,
Charles MacNeill 5:89031b2f5316 153 0x00,
Charles MacNeill 5:89031b2f5316 154 0x00,
Charles MacNeill 5:89031b2f5316 155 VL53LX_RANGING_CORE__SPAD_READOUT__STANDARD);
Charles MacNeill 5:89031b2f5316 156
Charles MacNeill 5:89031b2f5316 157 LOG_FUNCTION_END(status);
Charles MacNeill 5:89031b2f5316 158
Charles MacNeill 5:89031b2f5316 159 return status;
Charles MacNeill 5:89031b2f5316 160 }
Charles MacNeill 5:89031b2f5316 161
Charles MacNeill 5:89031b2f5316 162