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:
Charles MacNeill
Date:
Wed Jul 14 12:45:49 2021 +0100
Revision:
5:89031b2f5316
The class files now just are wrappers for the files in the "MODULES" directory.The porting directory includes the mbed interface

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