Rename library
Dependencies: X_NUCLEO_COMMON ST_INTERFACES
Dependents: VL53L3CX_NoShield_1Sensor_poll_Mb06x VL53L3_NoShield_1Sensor_polling_Mb63 X_NUCLEO_53L3A2 53L3A2_Ranging
porting/vl53lx_platform.h@5:89031b2f5316, 2021-07-14 (annotated)
- 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?
User | Revision | Line number | New 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 | #ifndef _VL53LX_PLATFORM_H_ |
Charles MacNeill |
5:89031b2f5316 | 13 | #define _VL53LX_PLATFORM_H_ |
Charles MacNeill |
5:89031b2f5316 | 14 | |
Charles MacNeill |
5:89031b2f5316 | 15 | #include "vl53lx_ll_def.h" |
Charles MacNeill |
5:89031b2f5316 | 16 | #include "vl53lx_platform_log.h" |
Charles MacNeill |
5:89031b2f5316 | 17 | |
Charles MacNeill |
5:89031b2f5316 | 18 | #define VL53LX_IPP_API |
Charles MacNeill |
5:89031b2f5316 | 19 | #include "vl53lx_platform_ipp_imports.h" |
Charles MacNeill |
5:89031b2f5316 | 20 | #include "vl53lx_platform_user_data.h" |
Charles MacNeill |
5:89031b2f5316 | 21 | |
Charles MacNeill |
5:89031b2f5316 | 22 | #ifdef __cplusplus |
Charles MacNeill |
5:89031b2f5316 | 23 | extern "C" |
Charles MacNeill |
5:89031b2f5316 | 24 | { |
Charles MacNeill |
5:89031b2f5316 | 25 | #endif |
Charles MacNeill |
5:89031b2f5316 | 26 | |
Charles MacNeill |
5:89031b2f5316 | 27 | /** |
Charles MacNeill |
5:89031b2f5316 | 28 | * @file vl53lx_platform.h |
Charles MacNeill |
5:89031b2f5316 | 29 | * |
Charles MacNeill |
5:89031b2f5316 | 30 | * @brief All end user OS/platform/application porting |
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 | /** |
Charles MacNeill |
5:89031b2f5316 | 36 | * @brief Initialise platform comms. |
Charles MacNeill |
5:89031b2f5316 | 37 | * |
Charles MacNeill |
5:89031b2f5316 | 38 | * @param[in] pdev : pointer to device structure (device handle) |
Charles MacNeill |
5:89031b2f5316 | 39 | * @param[in] comms_type : selects between I2C and SPI |
Charles MacNeill |
5:89031b2f5316 | 40 | * @param[in] comms_speed_khz : unsigned short containing the I2C speed in kHz |
Charles MacNeill |
5:89031b2f5316 | 41 | * |
Charles MacNeill |
5:89031b2f5316 | 42 | * @return VL53LX_ERROR_NONE Success |
Charles MacNeill |
5:89031b2f5316 | 43 | * @return "Other error code" See ::VL53LX_Error |
Charles MacNeill |
5:89031b2f5316 | 44 | */ |
Charles MacNeill |
5:89031b2f5316 | 45 | |
Charles MacNeill |
5:89031b2f5316 | 46 | VL53LX_Error VL53LX_CommsInitialise( |
Charles MacNeill |
5:89031b2f5316 | 47 | VL53LX_DEV Dev, |
Charles MacNeill |
5:89031b2f5316 | 48 | uint8_t comms_type, |
Charles MacNeill |
5:89031b2f5316 | 49 | uint16_t comms_speed_khz); |
Charles MacNeill |
5:89031b2f5316 | 50 | |
Charles MacNeill |
5:89031b2f5316 | 51 | |
Charles MacNeill |
5:89031b2f5316 | 52 | /** |
Charles MacNeill |
5:89031b2f5316 | 53 | * @brief Close platform comms. |
Charles MacNeill |
5:89031b2f5316 | 54 | * |
Charles MacNeill |
5:89031b2f5316 | 55 | * @param[in] pdev : pointer to device structure (device handle) |
Charles MacNeill |
5:89031b2f5316 | 56 | * |
Charles MacNeill |
5:89031b2f5316 | 57 | * @return VL53LX_ERROR_NONE Success |
Charles MacNeill |
5:89031b2f5316 | 58 | * @return "Other error code" See ::VL53LX_Error |
Charles MacNeill |
5:89031b2f5316 | 59 | */ |
Charles MacNeill |
5:89031b2f5316 | 60 | |
Charles MacNeill |
5:89031b2f5316 | 61 | VL53LX_Error VL53LX_CommsClose( |
Charles MacNeill |
5:89031b2f5316 | 62 | VL53LX_DEV Dev); |
Charles MacNeill |
5:89031b2f5316 | 63 | |
Charles MacNeill |
5:89031b2f5316 | 64 | |
Charles MacNeill |
5:89031b2f5316 | 65 | /** |
Charles MacNeill |
5:89031b2f5316 | 66 | * @brief Writes the supplied byte buffer to the device |
Charles MacNeill |
5:89031b2f5316 | 67 | * |
Charles MacNeill |
5:89031b2f5316 | 68 | * @param[in] pdev : pointer to device structure (device handle) |
Charles MacNeill |
5:89031b2f5316 | 69 | * @param[in] index : uint16_t register index value |
Charles MacNeill |
5:89031b2f5316 | 70 | * @param[in] pdata : pointer to uint8_t (byte) buffer containing the data to be written |
Charles MacNeill |
5:89031b2f5316 | 71 | * @param[in] count : number of bytes in the supplied byte buffer |
Charles MacNeill |
5:89031b2f5316 | 72 | * |
Charles MacNeill |
5:89031b2f5316 | 73 | * @return VL53LX_ERROR_NONE Success |
Charles MacNeill |
5:89031b2f5316 | 74 | * @return "Other error code" See ::VL53LX_Error |
Charles MacNeill |
5:89031b2f5316 | 75 | */ |
Charles MacNeill |
5:89031b2f5316 | 76 | |
Charles MacNeill |
5:89031b2f5316 | 77 | VL53LX_Error VL53LX_WriteMulti( |
Charles MacNeill |
5:89031b2f5316 | 78 | VL53LX_DEV Dev, |
Charles MacNeill |
5:89031b2f5316 | 79 | uint16_t index, |
Charles MacNeill |
5:89031b2f5316 | 80 | uint8_t *pdata, |
Charles MacNeill |
5:89031b2f5316 | 81 | uint32_t count); |
Charles MacNeill |
5:89031b2f5316 | 82 | |
Charles MacNeill |
5:89031b2f5316 | 83 | |
Charles MacNeill |
5:89031b2f5316 | 84 | /** |
Charles MacNeill |
5:89031b2f5316 | 85 | * @brief Reads the requested number of bytes from the device |
Charles MacNeill |
5:89031b2f5316 | 86 | * |
Charles MacNeill |
5:89031b2f5316 | 87 | * @param[in] pdev : pointer to device structure (device handle) |
Charles MacNeill |
5:89031b2f5316 | 88 | * @param[in] index : uint16_t register index value |
Charles MacNeill |
5:89031b2f5316 | 89 | * @param[out] pdata : pointer to the uint8_t (byte) buffer to store read data |
Charles MacNeill |
5:89031b2f5316 | 90 | * @param[in] count : number of bytes to read |
Charles MacNeill |
5:89031b2f5316 | 91 | * |
Charles MacNeill |
5:89031b2f5316 | 92 | * @return VL53LX_ERROR_NONE Success |
Charles MacNeill |
5:89031b2f5316 | 93 | * @return "Other error code" See ::VL53LX_Error |
Charles MacNeill |
5:89031b2f5316 | 94 | */ |
Charles MacNeill |
5:89031b2f5316 | 95 | |
Charles MacNeill |
5:89031b2f5316 | 96 | VL53LX_Error VL53LX_ReadMulti( |
Charles MacNeill |
5:89031b2f5316 | 97 | VL53LX_DEV Dev, |
Charles MacNeill |
5:89031b2f5316 | 98 | uint16_t index, |
Charles MacNeill |
5:89031b2f5316 | 99 | uint8_t *pdata, |
Charles MacNeill |
5:89031b2f5316 | 100 | uint32_t count); |
Charles MacNeill |
5:89031b2f5316 | 101 | |
Charles MacNeill |
5:89031b2f5316 | 102 | |
Charles MacNeill |
5:89031b2f5316 | 103 | /** |
Charles MacNeill |
5:89031b2f5316 | 104 | * @brief Writes a single byte to the device |
Charles MacNeill |
5:89031b2f5316 | 105 | * |
Charles MacNeill |
5:89031b2f5316 | 106 | * @param[in] pdev : pointer to device structure (device handle) |
Charles MacNeill |
5:89031b2f5316 | 107 | * @param[in] index : uint16_t register index value |
Charles MacNeill |
5:89031b2f5316 | 108 | * @param[in] data : uint8_t data value to write |
Charles MacNeill |
5:89031b2f5316 | 109 | * |
Charles MacNeill |
5:89031b2f5316 | 110 | * @return VL53LX_ERROR_NONE Success |
Charles MacNeill |
5:89031b2f5316 | 111 | * @return "Other error code" See ::VL53LX_Error |
Charles MacNeill |
5:89031b2f5316 | 112 | */ |
Charles MacNeill |
5:89031b2f5316 | 113 | |
Charles MacNeill |
5:89031b2f5316 | 114 | VL53LX_Error VL53LX_WrByte( |
Charles MacNeill |
5:89031b2f5316 | 115 | VL53LX_DEV Dev, |
Charles MacNeill |
5:89031b2f5316 | 116 | uint16_t index, |
Charles MacNeill |
5:89031b2f5316 | 117 | uint8_t data); |
Charles MacNeill |
5:89031b2f5316 | 118 | |
Charles MacNeill |
5:89031b2f5316 | 119 | |
Charles MacNeill |
5:89031b2f5316 | 120 | /** |
Charles MacNeill |
5:89031b2f5316 | 121 | * @brief Writes a single word (16-bit unsigned) to the device |
Charles MacNeill |
5:89031b2f5316 | 122 | * |
Charles MacNeill |
5:89031b2f5316 | 123 | * Manages the big-endian nature of the device register map |
Charles MacNeill |
5:89031b2f5316 | 124 | * (first byte written is the MS byte). |
Charles MacNeill |
5:89031b2f5316 | 125 | * |
Charles MacNeill |
5:89031b2f5316 | 126 | * @param[in] pdev : pointer to device structure (device handle) |
Charles MacNeill |
5:89031b2f5316 | 127 | * @param[in] index : uint16_t register index value |
Charles MacNeill |
5:89031b2f5316 | 128 | * @param[in] data : uin16_t data value write |
Charles MacNeill |
5:89031b2f5316 | 129 | * |
Charles MacNeill |
5:89031b2f5316 | 130 | * @return VL53LX_ERROR_NONE Success |
Charles MacNeill |
5:89031b2f5316 | 131 | * @return "Other error code" See ::VL53LX_Error |
Charles MacNeill |
5:89031b2f5316 | 132 | */ |
Charles MacNeill |
5:89031b2f5316 | 133 | |
Charles MacNeill |
5:89031b2f5316 | 134 | VL53LX_Error VL53LX_WrWord( |
Charles MacNeill |
5:89031b2f5316 | 135 | VL53LX_DEV Dev, |
Charles MacNeill |
5:89031b2f5316 | 136 | uint16_t index, |
Charles MacNeill |
5:89031b2f5316 | 137 | uint16_t data); |
Charles MacNeill |
5:89031b2f5316 | 138 | |
Charles MacNeill |
5:89031b2f5316 | 139 | |
Charles MacNeill |
5:89031b2f5316 | 140 | /** |
Charles MacNeill |
5:89031b2f5316 | 141 | * @brief Writes a single dword (32-bit unsigned) to the device |
Charles MacNeill |
5:89031b2f5316 | 142 | * |
Charles MacNeill |
5:89031b2f5316 | 143 | * Manages the big-endian nature of the device register map |
Charles MacNeill |
5:89031b2f5316 | 144 | * (first byte written is the MS byte). |
Charles MacNeill |
5:89031b2f5316 | 145 | * |
Charles MacNeill |
5:89031b2f5316 | 146 | * @param[in] pdev : pointer to device structure (device handle) |
Charles MacNeill |
5:89031b2f5316 | 147 | * @param[in] index : uint16_t register index value |
Charles MacNeill |
5:89031b2f5316 | 148 | * @param[in] data : uint32_t data value to write |
Charles MacNeill |
5:89031b2f5316 | 149 | * |
Charles MacNeill |
5:89031b2f5316 | 150 | * @return VL53LX_ERROR_NONE Success |
Charles MacNeill |
5:89031b2f5316 | 151 | * @return "Other error code" See ::VL53LX_Error |
Charles MacNeill |
5:89031b2f5316 | 152 | */ |
Charles MacNeill |
5:89031b2f5316 | 153 | |
Charles MacNeill |
5:89031b2f5316 | 154 | VL53LX_Error VL53LX_WrDWord( |
Charles MacNeill |
5:89031b2f5316 | 155 | VL53LX_DEV Dev, |
Charles MacNeill |
5:89031b2f5316 | 156 | uint16_t index, |
Charles MacNeill |
5:89031b2f5316 | 157 | uint32_t data); |
Charles MacNeill |
5:89031b2f5316 | 158 | |
Charles MacNeill |
5:89031b2f5316 | 159 | |
Charles MacNeill |
5:89031b2f5316 | 160 | |
Charles MacNeill |
5:89031b2f5316 | 161 | /** |
Charles MacNeill |
5:89031b2f5316 | 162 | * @brief Reads a single byte from the device |
Charles MacNeill |
5:89031b2f5316 | 163 | * |
Charles MacNeill |
5:89031b2f5316 | 164 | * @param[in] pdev : pointer to device structure (device handle) |
Charles MacNeill |
5:89031b2f5316 | 165 | * @param[in] index : uint16_t register index |
Charles MacNeill |
5:89031b2f5316 | 166 | * @param[out] pdata : pointer to uint8_t data value |
Charles MacNeill |
5:89031b2f5316 | 167 | * |
Charles MacNeill |
5:89031b2f5316 | 168 | * @return VL53LX_ERROR_NONE Success |
Charles MacNeill |
5:89031b2f5316 | 169 | * @return "Other error code" See ::VL53LX_Error |
Charles MacNeill |
5:89031b2f5316 | 170 | * |
Charles MacNeill |
5:89031b2f5316 | 171 | */ |
Charles MacNeill |
5:89031b2f5316 | 172 | |
Charles MacNeill |
5:89031b2f5316 | 173 | VL53LX_Error VL53LX_RdByte( |
Charles MacNeill |
5:89031b2f5316 | 174 | VL53LX_DEV Dev, |
Charles MacNeill |
5:89031b2f5316 | 175 | uint16_t index, |
Charles MacNeill |
5:89031b2f5316 | 176 | uint8_t *pdata); |
Charles MacNeill |
5:89031b2f5316 | 177 | |
Charles MacNeill |
5:89031b2f5316 | 178 | |
Charles MacNeill |
5:89031b2f5316 | 179 | /** |
Charles MacNeill |
5:89031b2f5316 | 180 | * @brief Reads a single word (16-bit unsigned) from the device |
Charles MacNeill |
5:89031b2f5316 | 181 | * |
Charles MacNeill |
5:89031b2f5316 | 182 | * Manages the big-endian nature of the device (first byte read is the MS byte). |
Charles MacNeill |
5:89031b2f5316 | 183 | * |
Charles MacNeill |
5:89031b2f5316 | 184 | * @param[in] pdev : pointer to device structure (device handle) |
Charles MacNeill |
5:89031b2f5316 | 185 | * @param[in] index : uint16_t register index value |
Charles MacNeill |
5:89031b2f5316 | 186 | * @param[out] pdata : pointer to uint16_t data value |
Charles MacNeill |
5:89031b2f5316 | 187 | * |
Charles MacNeill |
5:89031b2f5316 | 188 | * @return VL53LX_ERROR_NONE Success |
Charles MacNeill |
5:89031b2f5316 | 189 | * @return "Other error code" See ::VL53LX_Error |
Charles MacNeill |
5:89031b2f5316 | 190 | */ |
Charles MacNeill |
5:89031b2f5316 | 191 | |
Charles MacNeill |
5:89031b2f5316 | 192 | VL53LX_Error VL53LX_RdWord( |
Charles MacNeill |
5:89031b2f5316 | 193 | VL53LX_DEV Dev, |
Charles MacNeill |
5:89031b2f5316 | 194 | uint16_t index, |
Charles MacNeill |
5:89031b2f5316 | 195 | uint16_t *pdata); |
Charles MacNeill |
5:89031b2f5316 | 196 | |
Charles MacNeill |
5:89031b2f5316 | 197 | |
Charles MacNeill |
5:89031b2f5316 | 198 | /** |
Charles MacNeill |
5:89031b2f5316 | 199 | * @brief Reads a single dword (32-bit unsigned) from the device |
Charles MacNeill |
5:89031b2f5316 | 200 | * |
Charles MacNeill |
5:89031b2f5316 | 201 | * Manages the big-endian nature of the device (first byte read is the MS byte). |
Charles MacNeill |
5:89031b2f5316 | 202 | * |
Charles MacNeill |
5:89031b2f5316 | 203 | * @param[in] pdev : pointer to device structure (device handle) |
Charles MacNeill |
5:89031b2f5316 | 204 | * @param[in] index : uint16_t register index value |
Charles MacNeill |
5:89031b2f5316 | 205 | * @param[out] pdata : pointer to uint32_t data value |
Charles MacNeill |
5:89031b2f5316 | 206 | * |
Charles MacNeill |
5:89031b2f5316 | 207 | * @return VL53LX_ERROR_NONE Success |
Charles MacNeill |
5:89031b2f5316 | 208 | * @return "Other error code" See ::VL53LX_Error |
Charles MacNeill |
5:89031b2f5316 | 209 | */ |
Charles MacNeill |
5:89031b2f5316 | 210 | |
Charles MacNeill |
5:89031b2f5316 | 211 | VL53LX_Error VL53LX_RdDWord( |
Charles MacNeill |
5:89031b2f5316 | 212 | VL53LX_DEV Dev, |
Charles MacNeill |
5:89031b2f5316 | 213 | uint16_t index, |
Charles MacNeill |
5:89031b2f5316 | 214 | uint32_t *pdata); |
Charles MacNeill |
5:89031b2f5316 | 215 | |
Charles MacNeill |
5:89031b2f5316 | 216 | |
Charles MacNeill |
5:89031b2f5316 | 217 | |
Charles MacNeill |
5:89031b2f5316 | 218 | /** |
Charles MacNeill |
5:89031b2f5316 | 219 | * @brief Implements a programmable wait in us |
Charles MacNeill |
5:89031b2f5316 | 220 | * |
Charles MacNeill |
5:89031b2f5316 | 221 | * @param[in] pdev : pointer to device structure (device handle) |
Charles MacNeill |
5:89031b2f5316 | 222 | * @param[in] wait_us : integer wait in micro seconds |
Charles MacNeill |
5:89031b2f5316 | 223 | * |
Charles MacNeill |
5:89031b2f5316 | 224 | * @return VL53LX_ERROR_NONE Success |
Charles MacNeill |
5:89031b2f5316 | 225 | * @return "Other error code" See ::VL53LX_Error |
Charles MacNeill |
5:89031b2f5316 | 226 | */ |
Charles MacNeill |
5:89031b2f5316 | 227 | |
Charles MacNeill |
5:89031b2f5316 | 228 | VL53LX_Error VL53LX_WaitUs( |
Charles MacNeill |
5:89031b2f5316 | 229 | VL53LX_DEV Dev, |
Charles MacNeill |
5:89031b2f5316 | 230 | int32_t wait_us); |
Charles MacNeill |
5:89031b2f5316 | 231 | |
Charles MacNeill |
5:89031b2f5316 | 232 | |
Charles MacNeill |
5:89031b2f5316 | 233 | /** |
Charles MacNeill |
5:89031b2f5316 | 234 | * @brief Implements a programmable wait in ms |
Charles MacNeill |
5:89031b2f5316 | 235 | * |
Charles MacNeill |
5:89031b2f5316 | 236 | * @param[in] pdev : pointer to device structure (device handle) |
Charles MacNeill |
5:89031b2f5316 | 237 | * @param[in] wait_ms : integer wait in milliseconds |
Charles MacNeill |
5:89031b2f5316 | 238 | * |
Charles MacNeill |
5:89031b2f5316 | 239 | * @return VL53LX_ERROR_NONE Success |
Charles MacNeill |
5:89031b2f5316 | 240 | * @return "Other error code" See ::VL53LX_Error |
Charles MacNeill |
5:89031b2f5316 | 241 | */ |
Charles MacNeill |
5:89031b2f5316 | 242 | |
Charles MacNeill |
5:89031b2f5316 | 243 | |
Charles MacNeill |
5:89031b2f5316 | 244 | |
Charles MacNeill |
5:89031b2f5316 | 245 | VL53LX_Error VL53LX_WaitMs( |
Charles MacNeill |
5:89031b2f5316 | 246 | VL53LX_DEV Dev, |
Charles MacNeill |
5:89031b2f5316 | 247 | int32_t wait_ms); |
Charles MacNeill |
5:89031b2f5316 | 248 | |
Charles MacNeill |
5:89031b2f5316 | 249 | |
Charles MacNeill |
5:89031b2f5316 | 250 | |
Charles MacNeill |
5:89031b2f5316 | 251 | /** |
Charles MacNeill |
5:89031b2f5316 | 252 | * @brief Get the frequency of the timer used for ranging results time stamps |
Charles MacNeill |
5:89031b2f5316 | 253 | * |
Charles MacNeill |
5:89031b2f5316 | 254 | * @param[out] ptimer_freq_hz : pointer for timer frequency |
Charles MacNeill |
5:89031b2f5316 | 255 | * |
Charles MacNeill |
5:89031b2f5316 | 256 | * @return VL53LX_ERROR_NONE Success |
Charles MacNeill |
5:89031b2f5316 | 257 | * @return "Other error code" See ::VL53LX_Error |
Charles MacNeill |
5:89031b2f5316 | 258 | */ |
Charles MacNeill |
5:89031b2f5316 | 259 | |
Charles MacNeill |
5:89031b2f5316 | 260 | VL53LX_Error VL53LX_GetTimerFrequency(int32_t *ptimer_freq_hz); |
Charles MacNeill |
5:89031b2f5316 | 261 | |
Charles MacNeill |
5:89031b2f5316 | 262 | /** |
Charles MacNeill |
5:89031b2f5316 | 263 | * @brief Get the timer value in units of timer_freq_hz (see VL53LX_get_timestamp_frequency()) |
Charles MacNeill |
5:89031b2f5316 | 264 | * |
Charles MacNeill |
5:89031b2f5316 | 265 | * @param[out] ptimer_count : pointer for timer count value |
Charles MacNeill |
5:89031b2f5316 | 266 | * |
Charles MacNeill |
5:89031b2f5316 | 267 | * @return VL53LX_ERROR_NONE Success |
Charles MacNeill |
5:89031b2f5316 | 268 | * @return "Other error code" See ::VL53LX_Error |
Charles MacNeill |
5:89031b2f5316 | 269 | */ |
Charles MacNeill |
5:89031b2f5316 | 270 | |
Charles MacNeill |
5:89031b2f5316 | 271 | VL53LX_Error VL53LX_GetTimerValue(int32_t *ptimer_count); |
Charles MacNeill |
5:89031b2f5316 | 272 | |
Charles MacNeill |
5:89031b2f5316 | 273 | |
Charles MacNeill |
5:89031b2f5316 | 274 | /** |
Charles MacNeill |
5:89031b2f5316 | 275 | * @brief Set the mode of a specified GPIO pin |
Charles MacNeill |
5:89031b2f5316 | 276 | * |
Charles MacNeill |
5:89031b2f5316 | 277 | * @param pin - an identifier specifying the pin being modified - defined per platform |
Charles MacNeill |
5:89031b2f5316 | 278 | * |
Charles MacNeill |
5:89031b2f5316 | 279 | * @param mode - an identifier specifying the requested mode - defined per platform |
Charles MacNeill |
5:89031b2f5316 | 280 | * |
Charles MacNeill |
5:89031b2f5316 | 281 | * @return VL53LX_ERROR_NONE Success |
Charles MacNeill |
5:89031b2f5316 | 282 | * @return "Other error code" See ::VL53LX_Error |
Charles MacNeill |
5:89031b2f5316 | 283 | */ |
Charles MacNeill |
5:89031b2f5316 | 284 | |
Charles MacNeill |
5:89031b2f5316 | 285 | VL53LX_Error VL53LX_GpioSetMode(uint8_t pin, uint8_t mode); |
Charles MacNeill |
5:89031b2f5316 | 286 | |
Charles MacNeill |
5:89031b2f5316 | 287 | |
Charles MacNeill |
5:89031b2f5316 | 288 | /** |
Charles MacNeill |
5:89031b2f5316 | 289 | * @brief Set the value of a specified GPIO pin |
Charles MacNeill |
5:89031b2f5316 | 290 | * |
Charles MacNeill |
5:89031b2f5316 | 291 | * @param pin - an identifier specifying the pin being modified - defined per platform |
Charles MacNeill |
5:89031b2f5316 | 292 | * |
Charles MacNeill |
5:89031b2f5316 | 293 | * @param value - a value to set on the GPIO pin - typically 0 or 1 |
Charles MacNeill |
5:89031b2f5316 | 294 | * |
Charles MacNeill |
5:89031b2f5316 | 295 | * @return VL53LX_ERROR_NONE Success |
Charles MacNeill |
5:89031b2f5316 | 296 | * @return "Other error code" See ::VL53LX_Error |
Charles MacNeill |
5:89031b2f5316 | 297 | */ |
Charles MacNeill |
5:89031b2f5316 | 298 | |
Charles MacNeill |
5:89031b2f5316 | 299 | VL53LX_Error VL53LX_GpioSetValue(uint8_t pin, uint8_t value); |
Charles MacNeill |
5:89031b2f5316 | 300 | |
Charles MacNeill |
5:89031b2f5316 | 301 | |
Charles MacNeill |
5:89031b2f5316 | 302 | /** |
Charles MacNeill |
5:89031b2f5316 | 303 | * @brief Get the value of a specified GPIO pin |
Charles MacNeill |
5:89031b2f5316 | 304 | * |
Charles MacNeill |
5:89031b2f5316 | 305 | * @param pin - an identifier specifying the pin being modified - defined per platform |
Charles MacNeill |
5:89031b2f5316 | 306 | * |
Charles MacNeill |
5:89031b2f5316 | 307 | * @param pvalue - a value retrieved from the GPIO pin - typically 0 or 1 |
Charles MacNeill |
5:89031b2f5316 | 308 | * |
Charles MacNeill |
5:89031b2f5316 | 309 | * @return VL53LX_ERROR_NONE Success |
Charles MacNeill |
5:89031b2f5316 | 310 | * @return "Other error code" See ::VL53LX_Error |
Charles MacNeill |
5:89031b2f5316 | 311 | */ |
Charles MacNeill |
5:89031b2f5316 | 312 | |
Charles MacNeill |
5:89031b2f5316 | 313 | VL53LX_Error VL53LX_GpioGetValue(uint8_t pin, uint8_t *pvalue); |
Charles MacNeill |
5:89031b2f5316 | 314 | |
Charles MacNeill |
5:89031b2f5316 | 315 | |
Charles MacNeill |
5:89031b2f5316 | 316 | /** |
Charles MacNeill |
5:89031b2f5316 | 317 | * @brief Sets and clears the XShutdown pin on the Ewok |
Charles MacNeill |
5:89031b2f5316 | 318 | * |
Charles MacNeill |
5:89031b2f5316 | 319 | * @param value - the value for xshutdown - 0 = in reset, 1 = operational |
Charles MacNeill |
5:89031b2f5316 | 320 | * |
Charles MacNeill |
5:89031b2f5316 | 321 | * @return VL53LX_ERROR_NONE Success |
Charles MacNeill |
5:89031b2f5316 | 322 | * @return "Other error code" See ::VL53LX_Error |
Charles MacNeill |
5:89031b2f5316 | 323 | */ |
Charles MacNeill |
5:89031b2f5316 | 324 | |
Charles MacNeill |
5:89031b2f5316 | 325 | VL53LX_Error VL53LX_GpioXshutdown(uint8_t value); |
Charles MacNeill |
5:89031b2f5316 | 326 | |
Charles MacNeill |
5:89031b2f5316 | 327 | |
Charles MacNeill |
5:89031b2f5316 | 328 | /** |
Charles MacNeill |
5:89031b2f5316 | 329 | * @brief Sets and clears the Comms Mode pin (NCS) on the Ewok |
Charles MacNeill |
5:89031b2f5316 | 330 | * |
Charles MacNeill |
5:89031b2f5316 | 331 | * @param value - the value for comms select - 0 = I2C, 1 = SPI |
Charles MacNeill |
5:89031b2f5316 | 332 | * |
Charles MacNeill |
5:89031b2f5316 | 333 | * @return VL53LX_ERROR_NONE Success |
Charles MacNeill |
5:89031b2f5316 | 334 | * @return "Other error code" See ::VL53LX_Error |
Charles MacNeill |
5:89031b2f5316 | 335 | */ |
Charles MacNeill |
5:89031b2f5316 | 336 | |
Charles MacNeill |
5:89031b2f5316 | 337 | VL53LX_Error VL53LX_GpioCommsSelect(uint8_t value); |
Charles MacNeill |
5:89031b2f5316 | 338 | |
Charles MacNeill |
5:89031b2f5316 | 339 | |
Charles MacNeill |
5:89031b2f5316 | 340 | /** |
Charles MacNeill |
5:89031b2f5316 | 341 | * @brief Enables and disables the power to the Ewok module |
Charles MacNeill |
5:89031b2f5316 | 342 | * |
Charles MacNeill |
5:89031b2f5316 | 343 | * @param value - the state of the power supply - 0 = power off, 1 = power on |
Charles MacNeill |
5:89031b2f5316 | 344 | * |
Charles MacNeill |
5:89031b2f5316 | 345 | * @return VL53LX_ERROR_NONE Success |
Charles MacNeill |
5:89031b2f5316 | 346 | * @return "Other error code" See ::VL53LX_Error |
Charles MacNeill |
5:89031b2f5316 | 347 | */ |
Charles MacNeill |
5:89031b2f5316 | 348 | |
Charles MacNeill |
5:89031b2f5316 | 349 | VL53LX_Error VL53LX_GpioPowerEnable(uint8_t value); |
Charles MacNeill |
5:89031b2f5316 | 350 | |
Charles MacNeill |
5:89031b2f5316 | 351 | /** |
Charles MacNeill |
5:89031b2f5316 | 352 | * @brief Enables callbacks to the supplied funtion pointer when Ewok interrupts ocurr |
Charles MacNeill |
5:89031b2f5316 | 353 | * |
Charles MacNeill |
5:89031b2f5316 | 354 | * @param function - a function callback supplies by the caller, for interrupt notification |
Charles MacNeill |
5:89031b2f5316 | 355 | * @param edge_type - falling edge or rising edge interrupt detection |
Charles MacNeill |
5:89031b2f5316 | 356 | * |
Charles MacNeill |
5:89031b2f5316 | 357 | * @return VL53LX_ERROR_NONE Success |
Charles MacNeill |
5:89031b2f5316 | 358 | * @return "Other error code" See ::VL53LX_Error |
Charles MacNeill |
5:89031b2f5316 | 359 | */ |
Charles MacNeill |
5:89031b2f5316 | 360 | |
Charles MacNeill |
5:89031b2f5316 | 361 | VL53LX_Error VL53LX_GpioInterruptEnable(void (*function)(void), uint8_t edge_type); |
Charles MacNeill |
5:89031b2f5316 | 362 | |
Charles MacNeill |
5:89031b2f5316 | 363 | |
Charles MacNeill |
5:89031b2f5316 | 364 | /** |
Charles MacNeill |
5:89031b2f5316 | 365 | * @brief Disables the callback on Ewok interrupts |
Charles MacNeill |
5:89031b2f5316 | 366 | * |
Charles MacNeill |
5:89031b2f5316 | 367 | * @return VL53LX_ERROR_NONE Success |
Charles MacNeill |
5:89031b2f5316 | 368 | * @return "Other error code" See ::VL53LX_Error |
Charles MacNeill |
5:89031b2f5316 | 369 | */ |
Charles MacNeill |
5:89031b2f5316 | 370 | |
Charles MacNeill |
5:89031b2f5316 | 371 | VL53LX_Error VL53LX_GpioInterruptDisable(void); |
Charles MacNeill |
5:89031b2f5316 | 372 | |
Charles MacNeill |
5:89031b2f5316 | 373 | |
Charles MacNeill |
5:89031b2f5316 | 374 | /* |
Charles MacNeill |
5:89031b2f5316 | 375 | * @brief Gets current system tick count in [ms] |
Charles MacNeill |
5:89031b2f5316 | 376 | * |
Charles MacNeill |
5:89031b2f5316 | 377 | * @param[in] pdev : pointer to device structure (device handle) |
Charles MacNeill |
5:89031b2f5316 | 378 | * @return time_ms : current time in [ms] |
Charles MacNeill |
5:89031b2f5316 | 379 | * |
Charles MacNeill |
5:89031b2f5316 | 380 | * @return VL53LX_ERROR_NONE Success |
Charles MacNeill |
5:89031b2f5316 | 381 | * @return "Other error code" See ::VL53LX_Error |
Charles MacNeill |
5:89031b2f5316 | 382 | */ |
Charles MacNeill |
5:89031b2f5316 | 383 | |
Charles MacNeill |
5:89031b2f5316 | 384 | VL53LX_Error VL53LX_GetTickCount( |
Charles MacNeill |
5:89031b2f5316 | 385 | VL53LX_DEV Dev, |
Charles MacNeill |
5:89031b2f5316 | 386 | uint32_t *ptime_ms); |
Charles MacNeill |
5:89031b2f5316 | 387 | |
Charles MacNeill |
5:89031b2f5316 | 388 | |
Charles MacNeill |
5:89031b2f5316 | 389 | /** |
Charles MacNeill |
5:89031b2f5316 | 390 | * @brief Register "wait for value" polling routine |
Charles MacNeill |
5:89031b2f5316 | 391 | * |
Charles MacNeill |
5:89031b2f5316 | 392 | * Port of the V2WReg Script function WaitValueMaskEx() |
Charles MacNeill |
5:89031b2f5316 | 393 | * |
Charles MacNeill |
5:89031b2f5316 | 394 | * @param[in] pdev : pointer to device structure (device handle) |
Charles MacNeill |
5:89031b2f5316 | 395 | * @param[in] timeout_ms : timeout in [ms] |
Charles MacNeill |
5:89031b2f5316 | 396 | * @param[in] index : uint16_t register index value |
Charles MacNeill |
5:89031b2f5316 | 397 | * @param[in] value : value to wait for |
Charles MacNeill |
5:89031b2f5316 | 398 | * @param[in] mask : mask to be applied before comparison with value |
Charles MacNeill |
5:89031b2f5316 | 399 | * @param[in] poll_delay_ms : polling delay been each read transaction in [ms] |
Charles MacNeill |
5:89031b2f5316 | 400 | * |
Charles MacNeill |
5:89031b2f5316 | 401 | * @return VL53LX_ERROR_NONE Success |
Charles MacNeill |
5:89031b2f5316 | 402 | * @return "Other error code" See ::VL53LX_Error |
Charles MacNeill |
5:89031b2f5316 | 403 | */ |
Charles MacNeill |
5:89031b2f5316 | 404 | |
Charles MacNeill |
5:89031b2f5316 | 405 | VL53LX_Error VL53LX_WaitValueMaskEx( |
Charles MacNeill |
5:89031b2f5316 | 406 | VL53LX_DEV Dev, |
Charles MacNeill |
5:89031b2f5316 | 407 | uint32_t timeout_ms, |
Charles MacNeill |
5:89031b2f5316 | 408 | uint16_t index, |
Charles MacNeill |
5:89031b2f5316 | 409 | uint8_t value, |
Charles MacNeill |
5:89031b2f5316 | 410 | uint8_t mask, |
Charles MacNeill |
5:89031b2f5316 | 411 | uint32_t poll_delay_ms); |
Charles MacNeill |
5:89031b2f5316 | 412 | |
Charles MacNeill |
5:89031b2f5316 | 413 | int32_t GetTickCountMs(); |
Charles MacNeill |
5:89031b2f5316 | 414 | |
Charles MacNeill |
5:89031b2f5316 | 415 | #ifdef __cplusplus |
Charles MacNeill |
5:89031b2f5316 | 416 | } |
Charles MacNeill |
5:89031b2f5316 | 417 | #endif |
Charles MacNeill |
5:89031b2f5316 | 418 | |
Charles MacNeill |
5:89031b2f5316 | 419 | #endif |
Charles MacNeill |
5:89031b2f5316 | 420 |