vlx lib
ranging_driver.h@0:bc9f26b5dadf, 2015-02-08 (annotated)
- Committer:
- vijaynvr
- Date:
- Sun Feb 08 14:26:51 2015 +0000
- Revision:
- 0:bc9f26b5dadf
working
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
vijaynvr | 0:bc9f26b5dadf | 1 | /******************************************************************************* |
vijaynvr | 0:bc9f26b5dadf | 2 | ################################################################################ |
vijaynvr | 0:bc9f26b5dadf | 3 | # (C) STMicroelectronics 2014 |
vijaynvr | 0:bc9f26b5dadf | 4 | # |
vijaynvr | 0:bc9f26b5dadf | 5 | # This program is free software; you can redistribute it and/or modify it under |
vijaynvr | 0:bc9f26b5dadf | 6 | # the terms of the GNU General Public License version 2 and only version 2 as |
vijaynvr | 0:bc9f26b5dadf | 7 | # published by the Free Software Foundation. |
vijaynvr | 0:bc9f26b5dadf | 8 | # |
vijaynvr | 0:bc9f26b5dadf | 9 | # This program is distributed in the hope that it will be useful, but WITHOUT |
vijaynvr | 0:bc9f26b5dadf | 10 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS |
vijaynvr | 0:bc9f26b5dadf | 11 | # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more |
vijaynvr | 0:bc9f26b5dadf | 12 | # details. |
vijaynvr | 0:bc9f26b5dadf | 13 | # |
vijaynvr | 0:bc9f26b5dadf | 14 | # You should have received a copy of the GNU General Public License along with |
vijaynvr | 0:bc9f26b5dadf | 15 | # this program; if not, write to the Free Software Foundation, Inc., |
vijaynvr | 0:bc9f26b5dadf | 16 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
vijaynvr | 0:bc9f26b5dadf | 17 | # |
vijaynvr | 0:bc9f26b5dadf | 18 | #------------------------------------------------------------------------------ |
vijaynvr | 0:bc9f26b5dadf | 19 | # Imaging Division |
vijaynvr | 0:bc9f26b5dadf | 20 | ################################################################################ |
vijaynvr | 0:bc9f26b5dadf | 21 | ********************************************************************************/ |
vijaynvr | 0:bc9f26b5dadf | 22 | |
vijaynvr | 0:bc9f26b5dadf | 23 | /*! |
vijaynvr | 0:bc9f26b5dadf | 24 | *\file ranging_driver.h |
vijaynvr | 0:bc9f26b5dadf | 25 | *\brief Application-level functions used for configuration and operation during ranging. |
vijaynvr | 0:bc9f26b5dadf | 26 | */ |
vijaynvr | 0:bc9f26b5dadf | 27 | |
vijaynvr | 0:bc9f26b5dadf | 28 | #ifndef RANGING_DRIVER |
vijaynvr | 0:bc9f26b5dadf | 29 | #define RANGING_DRIVER |
vijaynvr | 0:bc9f26b5dadf | 30 | |
vijaynvr | 0:bc9f26b5dadf | 31 | #include "common_driver.h" |
vijaynvr | 0:bc9f26b5dadf | 32 | |
vijaynvr | 0:bc9f26b5dadf | 33 | //----------------------------------------------------------------------------- |
vijaynvr | 0:bc9f26b5dadf | 34 | // constant definitions |
vijaynvr | 0:bc9f26b5dadf | 35 | //----------------------------------------------------------------------------- |
vijaynvr | 0:bc9f26b5dadf | 36 | |
vijaynvr | 0:bc9f26b5dadf | 37 | #define ECE_FACTOR (85/100) //0.85 |
vijaynvr | 0:bc9f26b5dadf | 38 | #define ECE_FACTOR_M 85 //ECE factor Molecular |
vijaynvr | 0:bc9f26b5dadf | 39 | #define ECE_FACTOR_D 100 //ECE factor Denominator |
vijaynvr | 0:bc9f26b5dadf | 40 | |
vijaynvr | 0:bc9f26b5dadf | 41 | // register addresses |
vijaynvr | 0:bc9f26b5dadf | 42 | #define SYSRANGE_START 0x18 |
vijaynvr | 0:bc9f26b5dadf | 43 | #define SYSRANGE_THRESH_HIGH 0x19 |
vijaynvr | 0:bc9f26b5dadf | 44 | #define SYSRANGE_THRESH_LOW 0x1A |
vijaynvr | 0:bc9f26b5dadf | 45 | #define SYSRANGE_INTERMEASUREMENT_PERIOD 0x1B |
vijaynvr | 0:bc9f26b5dadf | 46 | #define SYSRANGE_MAX_CONVERGENCE_TIME 0x1C |
vijaynvr | 0:bc9f26b5dadf | 47 | #define SYSRANGE_CROSSTALK_COMPENSATION_RATE 0x1E |
vijaynvr | 0:bc9f26b5dadf | 48 | #define SYSRANGE_CROSSTALK_COMPENSATION_RANGE 0x20 |
vijaynvr | 0:bc9f26b5dadf | 49 | #define SYSRANGE_CROSSTALK_VALID_HEIGHT 0x21 |
vijaynvr | 0:bc9f26b5dadf | 50 | #define SYSRANGE_EARLY_CONVERGENCE_ESTIMATE 0x22 |
vijaynvr | 0:bc9f26b5dadf | 51 | #define SYSRANGE_PART_TO_PART_RANGE_OFFSET 0x24 |
vijaynvr | 0:bc9f26b5dadf | 52 | #define SYSRANGE_RANGE_IGNORE_VALID_HEIGHT 0x25 |
vijaynvr | 0:bc9f26b5dadf | 53 | #define SYSRANGE_RANGE_IGNORE_THRESHOLD 0x26 |
vijaynvr | 0:bc9f26b5dadf | 54 | #define SYSRANGE_EMITTER_BLOCK_THRESHOLD 0x28 |
vijaynvr | 0:bc9f26b5dadf | 55 | #define SYSRANGE_MAX_AMBIENT_LEVEL_THRESH 0x2A |
vijaynvr | 0:bc9f26b5dadf | 56 | #define SYSRANGE_MAX_AMBIENT_LEVEL_MULT 0x2C |
vijaynvr | 0:bc9f26b5dadf | 57 | #define SYSRANGE_RANGE_CHECK_ENABLES 0x2D |
vijaynvr | 0:bc9f26b5dadf | 58 | #define SYSRANGE_VHV_RECALIBRATE 0x2E |
vijaynvr | 0:bc9f26b5dadf | 59 | #define SYSRANGE_VHV_REPEAT_RATE 0x31 |
vijaynvr | 0:bc9f26b5dadf | 60 | |
vijaynvr | 0:bc9f26b5dadf | 61 | #define RESULT_RANGE_STATUS 0x4D |
vijaynvr | 0:bc9f26b5dadf | 62 | #define RESULT_RANGE_VAL 0x62 |
vijaynvr | 0:bc9f26b5dadf | 63 | #define RESULT_RANGE_SIGNAL_RATE 0x66 |
vijaynvr | 0:bc9f26b5dadf | 64 | |
vijaynvr | 0:bc9f26b5dadf | 65 | // SYSRANGE_START |
vijaynvr | 0:bc9f26b5dadf | 66 | #define RANGE_START_SINGLESHOT 0x01 // bit 0 set / bit 1 clear |
vijaynvr | 0:bc9f26b5dadf | 67 | #define RANGE_START_CONTINUOUS 0x03 // bit 0 set / bit 1 set |
vijaynvr | 0:bc9f26b5dadf | 68 | #define RANGE_CONTINUOUS_MODE 0x02 // bit 0 clear / bit 1 set |
vijaynvr | 0:bc9f26b5dadf | 69 | #define RANGE_STOP 0x00 // bit 0 set / bit 1 don't care |
vijaynvr | 0:bc9f26b5dadf | 70 | |
vijaynvr | 0:bc9f26b5dadf | 71 | // RESULT_RANGE_STATUS bit masks |
vijaynvr | 0:bc9f26b5dadf | 72 | #define RANGE_DEVICE_READY 0x01 |
vijaynvr | 0:bc9f26b5dadf | 73 | #define RANGE_ERROR_CODE 0xF0 // covers bits [7:4] |
vijaynvr | 0:bc9f26b5dadf | 74 | |
vijaynvr | 0:bc9f26b5dadf | 75 | // SYSRANGE_RANGE_CHECK_ENABLES bit masks |
vijaynvr | 0:bc9f26b5dadf | 76 | #define RANGE_EARLY_CONVERGENCE_ENABLE 0x01 |
vijaynvr | 0:bc9f26b5dadf | 77 | #define RANGE_EARLY_CONVERGENCE_DISABLE 0xFE |
vijaynvr | 0:bc9f26b5dadf | 78 | #define RANGE_RANGE_IGNORE_ENABLE 0x02 |
vijaynvr | 0:bc9f26b5dadf | 79 | #define RANGE_RANGE_IGNORE_DISABLE 0xFD |
vijaynvr | 0:bc9f26b5dadf | 80 | #define RANGE_MAX_AMBIENT_ENABLE 0x04 |
vijaynvr | 0:bc9f26b5dadf | 81 | #define RANGE_MAX_AMBIENT_DISABLE 0xFB |
vijaynvr | 0:bc9f26b5dadf | 82 | #define RANGE_EMITTER_BLOCK_ENABLE 0x08 |
vijaynvr | 0:bc9f26b5dadf | 83 | #define RANGE_EMITTER_BLOCK_DISABLE 0xF7 |
vijaynvr | 0:bc9f26b5dadf | 84 | #define RANGE_SIGNAL_TO_NOISE_ENABLE 0x10 |
vijaynvr | 0:bc9f26b5dadf | 85 | #define RANGE_SIGNAL_TO_NOISE_DISABLE 0xEF |
vijaynvr | 0:bc9f26b5dadf | 86 | |
vijaynvr | 0:bc9f26b5dadf | 87 | #define USER_CONV_CTRL_RETURN_THRESHOLD_FINE 0xB8 |
vijaynvr | 0:bc9f26b5dadf | 88 | |
vijaynvr | 0:bc9f26b5dadf | 89 | #define VERNIER_MEASUREMENTS 0x0109 |
vijaynvr | 0:bc9f26b5dadf | 90 | #define VERNIER_RIPPLE_AVE_SAMPLE_PERIOD 0x010A |
vijaynvr | 0:bc9f26b5dadf | 91 | |
vijaynvr | 0:bc9f26b5dadf | 92 | |
vijaynvr | 0:bc9f26b5dadf | 93 | /** |
vijaynvr | 0:bc9f26b5dadf | 94 | * @brief This data type defines range measurement data. |
vijaynvr | 0:bc9f26b5dadf | 95 | */ |
vijaynvr | 0:bc9f26b5dadf | 96 | typedef struct |
vijaynvr | 0:bc9f26b5dadf | 97 | { |
vijaynvr | 0:bc9f26b5dadf | 98 | int32_t range_mm; |
vijaynvr | 0:bc9f26b5dadf | 99 | /**< range distance measurement (mm). */ |
vijaynvr | 0:bc9f26b5dadf | 100 | |
vijaynvr | 0:bc9f26b5dadf | 101 | float_t signalRate_mcps; |
vijaynvr | 0:bc9f26b5dadf | 102 | /**< signal rate (MCPS), which is effectively a measure of target reflectance.*/ |
vijaynvr | 0:bc9f26b5dadf | 103 | |
vijaynvr | 0:bc9f26b5dadf | 104 | uint32_t errorStatus; |
vijaynvr | 0:bc9f26b5dadf | 105 | /**< Error status of the current measurement. \n |
vijaynvr | 0:bc9f26b5dadf | 106 | * No Error := 0. \n |
vijaynvr | 0:bc9f26b5dadf | 107 | * Refer to product sheets for other error codes. */ |
vijaynvr | 0:bc9f26b5dadf | 108 | }sensor_RangeData; |
vijaynvr | 0:bc9f26b5dadf | 109 | |
vijaynvr | 0:bc9f26b5dadf | 110 | |
vijaynvr | 0:bc9f26b5dadf | 111 | /*! |
vijaynvr | 0:bc9f26b5dadf | 112 | *\brief Device setup, for Ranging operations, with parameters that require the system mode to be STARTed before being applied. |
vijaynvr | 0:bc9f26b5dadf | 113 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 114 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 115 | */ |
vijaynvr | 0:bc9f26b5dadf | 116 | sensor_error range_set_dynamic_config(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 117 | |
vijaynvr | 0:bc9f26b5dadf | 118 | /*! |
vijaynvr | 0:bc9f26b5dadf | 119 | *\brief Set Mode and Operation commands in the sysrange_start register. |
vijaynvr | 0:bc9f26b5dadf | 120 | * |
vijaynvr | 0:bc9f26b5dadf | 121 | * Possible combinations are : \n |
vijaynvr | 0:bc9f26b5dadf | 122 | * |
vijaynvr | 0:bc9f26b5dadf | 123 | * RANGE_START_SINGLESHOT 0x01 # bit 0 set / bit 1 clear \n |
vijaynvr | 0:bc9f26b5dadf | 124 | * RANGE_START_CONTINUOUS 0x03 # bit 0 set / bit 1 set \n |
vijaynvr | 0:bc9f26b5dadf | 125 | * RANGE_STOP 0x01 # bit 0 set / bit 1 don't care \n |
vijaynvr | 0:bc9f26b5dadf | 126 | * |
vijaynvr | 0:bc9f26b5dadf | 127 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 128 | *\param[in] mode Mode select/operation command to be written to the SYSRANGE_START register. |
vijaynvr | 0:bc9f26b5dadf | 129 | * |
vijaynvr | 0:bc9f26b5dadf | 130 | *\retval Boolean. Return True if a valid command is applied, otherwise False. |
vijaynvr | 0:bc9f26b5dadf | 131 | */ |
vijaynvr | 0:bc9f26b5dadf | 132 | sensor_error range_set_systemMode(uint8_t device_base_address, int32_t mode); |
vijaynvr | 0:bc9f26b5dadf | 133 | |
vijaynvr | 0:bc9f26b5dadf | 134 | /*! |
vijaynvr | 0:bc9f26b5dadf | 135 | *\brief Report status of Range mode-select and Stop/Start. |
vijaynvr | 0:bc9f26b5dadf | 136 | * |
vijaynvr | 0:bc9f26b5dadf | 137 | * Range_Start_Singleshot \n |
vijaynvr | 0:bc9f26b5dadf | 138 | * Range_Start_Continuous \n |
vijaynvr | 0:bc9f26b5dadf | 139 | * Range_Stop \n |
vijaynvr | 0:bc9f26b5dadf | 140 | * |
vijaynvr | 0:bc9f26b5dadf | 141 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 142 | *\retval Integer. Returns the contents of the SYSRANGE_START register. |
vijaynvr | 0:bc9f26b5dadf | 143 | */ |
vijaynvr | 0:bc9f26b5dadf | 144 | uint8_t range_get_systemMode(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 145 | |
vijaynvr | 0:bc9f26b5dadf | 146 | /*! |
vijaynvr | 0:bc9f26b5dadf | 147 | *\brief Report basic result from last ranging operation. |
vijaynvr | 0:bc9f26b5dadf | 148 | * |
vijaynvr | 0:bc9f26b5dadf | 149 | * Accessing Result_Range_Val register \n |
vijaynvr | 0:bc9f26b5dadf | 150 | * |
vijaynvr | 0:bc9f26b5dadf | 151 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 152 | *\retval 8-bit Integer. Returns the result of the last successfully completed ranging operation, by reading the RESULT_RANGE_VAL register. |
vijaynvr | 0:bc9f26b5dadf | 153 | */ |
vijaynvr | 0:bc9f26b5dadf | 154 | uint8_t range_get_result(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 155 | |
vijaynvr | 0:bc9f26b5dadf | 156 | /*! |
vijaynvr | 0:bc9f26b5dadf | 157 | *\brief Report signal rate from last ranging operation. |
vijaynvr | 0:bc9f26b5dadf | 158 | * Reads the RESULT_RANGE_SIGNAL_RATE register. |
vijaynvr | 0:bc9f26b5dadf | 159 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 160 | *\retval a uint32_t in 9.7 format. |
vijaynvr | 0:bc9f26b5dadf | 161 | */ |
vijaynvr | 0:bc9f26b5dadf | 162 | uint32_t range_get_signal_rate(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 163 | |
vijaynvr | 0:bc9f26b5dadf | 164 | /*! |
vijaynvr | 0:bc9f26b5dadf | 165 | *\brief Report all results from last ranging operation. |
vijaynvr | 0:bc9f26b5dadf | 166 | * |
vijaynvr | 0:bc9f26b5dadf | 167 | * Report all results data associated with a ranging operation. \n\n |
vijaynvr | 0:bc9f26b5dadf | 168 | * |
vijaynvr | 0:bc9f26b5dadf | 169 | * Result_range_val \n |
vijaynvr | 0:bc9f26b5dadf | 170 | * Result_range_stray \n |
vijaynvr | 0:bc9f26b5dadf | 171 | * Result_range_raw \n |
vijaynvr | 0:bc9f26b5dadf | 172 | * Result_range_return_rate \n |
vijaynvr | 0:bc9f26b5dadf | 173 | * Result_range_reference_rate \n |
vijaynvr | 0:bc9f26b5dadf | 174 | * Result_range_Return_VCSEL_count \n |
vijaynvr | 0:bc9f26b5dadf | 175 | * Result_range_Reference_VCSEL_count \n |
vijaynvr | 0:bc9f26b5dadf | 176 | * Result_range_Return_AMB_count \n |
vijaynvr | 0:bc9f26b5dadf | 177 | * Result_range_Reference_AMB_count \n |
vijaynvr | 0:bc9f26b5dadf | 178 | * Result_range_Return_Conv_time \n |
vijaynvr | 0:bc9f26b5dadf | 179 | * Result_range_Reference_Conv_time \n |
vijaynvr | 0:bc9f26b5dadf | 180 | * |
vijaynvr | 0:bc9f26b5dadf | 181 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 182 | * |
vijaynvr | 0:bc9f26b5dadf | 183 | *\retval List. Returns a list of all the results data, from the last successfully completed ranging operation. |
vijaynvr | 0:bc9f26b5dadf | 184 | */ |
vijaynvr | 0:bc9f26b5dadf | 185 | sensor_error range_get_full_result(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 186 | |
vijaynvr | 0:bc9f26b5dadf | 187 | /*! |
vijaynvr | 0:bc9f26b5dadf | 188 | *\brief Set min/max range thresholds (1 to 254mm) in SYSRANGE_THRESH_LOW & SYSRANGE_THRESH_HIGH registers. |
vijaynvr | 0:bc9f26b5dadf | 189 | * |
vijaynvr | 0:bc9f26b5dadf | 190 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 191 | *\param[in] low_threshold Ranging low threshold to be written to the SYSRANGE_THRESH_LOW register (default = 0mm.) |
vijaynvr | 0:bc9f26b5dadf | 192 | *\param[in] high_threshold Ranging high threshold to be written to the SYSRANGE_THRESH_HIGH register (default = 255mm.) |
vijaynvr | 0:bc9f26b5dadf | 193 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 194 | */ |
vijaynvr | 0:bc9f26b5dadf | 195 | sensor_error Range_Set_Thresholds(uint8_t device_base_address, int32_t low_threshold, int32_t high_threshold); |
vijaynvr | 0:bc9f26b5dadf | 196 | |
vijaynvr | 0:bc9f26b5dadf | 197 | /*! |
vijaynvr | 0:bc9f26b5dadf | 198 | *\brief Set ranging high threshold in the SYSRANGE_THRESH_HIGH register. |
vijaynvr | 0:bc9f26b5dadf | 199 | * |
vijaynvr | 0:bc9f26b5dadf | 200 | * Range : 0-255 mm \n |
vijaynvr | 0:bc9f26b5dadf | 201 | * |
vijaynvr | 0:bc9f26b5dadf | 202 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 203 | *\param[in] threshold Ranging high threshold to be written to the SYSRANGE_THRESH_HIGH register(0-255mm). |
vijaynvr | 0:bc9f26b5dadf | 204 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 205 | */ |
vijaynvr | 0:bc9f26b5dadf | 206 | sensor_error range_set_high_threshold(uint8_t device_base_address, uint8_t threshold); |
vijaynvr | 0:bc9f26b5dadf | 207 | |
vijaynvr | 0:bc9f26b5dadf | 208 | /*! |
vijaynvr | 0:bc9f26b5dadf | 209 | *\brief Report ranging high threshold from the SYSRANGE_THRESH_HIGH register. |
vijaynvr | 0:bc9f26b5dadf | 210 | * |
vijaynvr | 0:bc9f26b5dadf | 211 | * Range : 0-255 mm \n |
vijaynvr | 0:bc9f26b5dadf | 212 | * |
vijaynvr | 0:bc9f26b5dadf | 213 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 214 | *\retval Integer. Returns the contents of the SYSRANGE_THRESH_HIGH register. |
vijaynvr | 0:bc9f26b5dadf | 215 | */ |
vijaynvr | 0:bc9f26b5dadf | 216 | uint8_t range_get_high_threshold(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 217 | |
vijaynvr | 0:bc9f26b5dadf | 218 | /*! |
vijaynvr | 0:bc9f26b5dadf | 219 | *\brief Set ranging low threshold in the SYSRANGE_THRESH_LOW register. |
vijaynvr | 0:bc9f26b5dadf | 220 | * |
vijaynvr | 0:bc9f26b5dadf | 221 | * Range : 0-255 mm \n |
vijaynvr | 0:bc9f26b5dadf | 222 | * |
vijaynvr | 0:bc9f26b5dadf | 223 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 224 | *\param[in] threshold Ranging low threshold to be written to the SYSRANGE_THRESH_LOW register. |
vijaynvr | 0:bc9f26b5dadf | 225 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 226 | */ |
vijaynvr | 0:bc9f26b5dadf | 227 | sensor_error range_set_low_threshold(uint8_t device_base_address, uint8_t threshold); |
vijaynvr | 0:bc9f26b5dadf | 228 | |
vijaynvr | 0:bc9f26b5dadf | 229 | /*! |
vijaynvr | 0:bc9f26b5dadf | 230 | *\brief Report ranging low threshold from the SYSRANGE_THRESH_LOW register. |
vijaynvr | 0:bc9f26b5dadf | 231 | * |
vijaynvr | 0:bc9f26b5dadf | 232 | * Range : 0-255 mm \n |
vijaynvr | 0:bc9f26b5dadf | 233 | * |
vijaynvr | 0:bc9f26b5dadf | 234 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 235 | *\retval Integer. Returns the contents of the SYSRANGE_THRESH_LOW register. |
vijaynvr | 0:bc9f26b5dadf | 236 | */ |
vijaynvr | 0:bc9f26b5dadf | 237 | uint8_t range_get_low_threshold(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 238 | |
vijaynvr | 0:bc9f26b5dadf | 239 | /*! |
vijaynvr | 0:bc9f26b5dadf | 240 | *\brief Set ranging intermeasurement period in the SYSRANGE_INTERMEASUREMENT_PERIOD register. |
vijaynvr | 0:bc9f26b5dadf | 241 | * |
vijaynvr | 0:bc9f26b5dadf | 242 | * Time delay between measurements in continuous ranging mode. Range 10ms - 2.55secs (1 code = 10ms. Code 0 = 10ms.).\n |
vijaynvr | 0:bc9f26b5dadf | 243 | * Min (default) value stored in NVM. |
vijaynvr | 0:bc9f26b5dadf | 244 | * |
vijaynvr | 0:bc9f26b5dadf | 245 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 246 | *\param[in] intermeasurement_period Time delay in ms between measurements in continuous-ranging mode. <0-2550ms> |
vijaynvr | 0:bc9f26b5dadf | 247 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 248 | */ |
vijaynvr | 0:bc9f26b5dadf | 249 | sensor_error range_set_interMeasurement_period(uint8_t device_base_address, uint16_t intermeasurement_period); |
vijaynvr | 0:bc9f26b5dadf | 250 | |
vijaynvr | 0:bc9f26b5dadf | 251 | /*! |
vijaynvr | 0:bc9f26b5dadf | 252 | *\brief Report ranging intermeasurement period from the SYSRANGE_INTERMEASUREMENT_PERIOD register. |
vijaynvr | 0:bc9f26b5dadf | 253 | * |
vijaynvr | 0:bc9f26b5dadf | 254 | * Range 10ms-2.55s, 1 code = 10 ms, code 0 = 10ms. \n |
vijaynvr | 0:bc9f26b5dadf | 255 | * |
vijaynvr | 0:bc9f26b5dadf | 256 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 257 | *\retval Integer. Returns the range inter measurement period in ms. |
vijaynvr | 0:bc9f26b5dadf | 258 | */ |
vijaynvr | 0:bc9f26b5dadf | 259 | uint16_t range_get_interMeasurement_period(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 260 | |
vijaynvr | 0:bc9f26b5dadf | 261 | /*! |
vijaynvr | 0:bc9f26b5dadf | 262 | *\brief Set ranging maximum convergence time in the SYSRANGE_MAX_CONVERGENCE_TIME register. |
vijaynvr | 0:bc9f26b5dadf | 263 | * |
vijaynvr | 0:bc9f26b5dadf | 264 | * Maximum time to run measurements in ranging modes. \n |
vijaynvr | 0:bc9f26b5dadf | 265 | * |
vijaynvr | 0:bc9f26b5dadf | 266 | * Range 0-50ms, 1 code = 1 ms \n |
vijaynvr | 0:bc9f26b5dadf | 267 | * |
vijaynvr | 0:bc9f26b5dadf | 268 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 269 | *\param[in] max_convergence_time Maximum time to run measurements in ranging modes (max = 50ms). |
vijaynvr | 0:bc9f26b5dadf | 270 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 271 | */ |
vijaynvr | 0:bc9f26b5dadf | 272 | sensor_error range_set_max_convergence_time(uint8_t device_base_address, int32_t max_convergence_time); |
vijaynvr | 0:bc9f26b5dadf | 273 | |
vijaynvr | 0:bc9f26b5dadf | 274 | /*! |
vijaynvr | 0:bc9f26b5dadf | 275 | *\brief Report ranging maximum convergence time from the SYSRANGE_MAX_CONVERGENCE_TIME register. |
vijaynvr | 0:bc9f26b5dadf | 276 | * |
vijaynvr | 0:bc9f26b5dadf | 277 | * Range 0-50ms, 1 code = 1 ms \n |
vijaynvr | 0:bc9f26b5dadf | 278 | * |
vijaynvr | 0:bc9f26b5dadf | 279 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 280 | *\retval Integer. Returns the contents of the SYSRANGE_MAX_CONVERGENCE_TIME register. |
vijaynvr | 0:bc9f26b5dadf | 281 | */ |
vijaynvr | 0:bc9f26b5dadf | 282 | |
vijaynvr | 0:bc9f26b5dadf | 283 | uint8_t range_get_max_convergence_time(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 284 | |
vijaynvr | 0:bc9f26b5dadf | 285 | /*! |
vijaynvr | 0:bc9f26b5dadf | 286 | *\brief Set ranging crosstalk compensation rate in the SYSRANGE_CROSSTALK_COMPENSATION_RATE register. |
vijaynvr | 0:bc9f26b5dadf | 287 | * |
vijaynvr | 0:bc9f26b5dadf | 288 | * User-controlled crosstalk compensation rate, in MHz. \n |
vijaynvr | 0:bc9f26b5dadf | 289 | * |
vijaynvr | 0:bc9f26b5dadf | 290 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 291 | *\param[in] crosstalk_compensation_rate User-controlled crosstalk compensation rate, in ranging modes. |
vijaynvr | 0:bc9f26b5dadf | 292 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 293 | */ |
vijaynvr | 0:bc9f26b5dadf | 294 | sensor_error range_set_crosstalk_compensation_rate(uint8_t device_base_address, int32_t crosstalk_compensation_rate); |
vijaynvr | 0:bc9f26b5dadf | 295 | |
vijaynvr | 0:bc9f26b5dadf | 296 | /*! |
vijaynvr | 0:bc9f26b5dadf | 297 | *\brief Report ranging crosstalk compensation rate (MHz) from the SYSRANGE_CROSSTALK_COMPENSATION_RATE register. |
vijaynvr | 0:bc9f26b5dadf | 298 | * |
vijaynvr | 0:bc9f26b5dadf | 299 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 300 | *\retval Integer. Returns the contents of the SYSRANGE_CROSSTALK_COMPENSATION_RATE register. |
vijaynvr | 0:bc9f26b5dadf | 301 | */ |
vijaynvr | 0:bc9f26b5dadf | 302 | int32_t range_get_crosstalk_compensation_rate(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 303 | |
vijaynvr | 0:bc9f26b5dadf | 304 | /*! |
vijaynvr | 0:bc9f26b5dadf | 305 | *\brief Set ranging crosstalk compensation range in the SYSRANGE_CROSSTALK_COMPENSATION_RANGE register. |
vijaynvr | 0:bc9f26b5dadf | 306 | * |
vijaynvr | 0:bc9f26b5dadf | 307 | * User-controlled crosstalk compensation range, in mm. \n |
vijaynvr | 0:bc9f26b5dadf | 308 | * |
vijaynvr | 0:bc9f26b5dadf | 309 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 310 | *\param[in] crosstalk_compensation_range User-controlled crosstalk compensation range, in ranging modes. |
vijaynvr | 0:bc9f26b5dadf | 311 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 312 | */ |
vijaynvr | 0:bc9f26b5dadf | 313 | sensor_error range_set_crosstalk_compensation_range(uint8_t device_base_address, int32_t crosstalk_compensation_range); |
vijaynvr | 0:bc9f26b5dadf | 314 | |
vijaynvr | 0:bc9f26b5dadf | 315 | /*! |
vijaynvr | 0:bc9f26b5dadf | 316 | *\brief Report ranging crosstalk compensation range (mm) from the SYSRANGE_CROSSTALK_COMPENSATION_RANGE register. |
vijaynvr | 0:bc9f26b5dadf | 317 | * |
vijaynvr | 0:bc9f26b5dadf | 318 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 319 | *\retval Integer. Returns the contents of the SYSRANGE_CROSSTALK_COMPENSATION_RANGE register. |
vijaynvr | 0:bc9f26b5dadf | 320 | */ |
vijaynvr | 0:bc9f26b5dadf | 321 | uint8_t range_get_crosstalk_compensation_range(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 322 | |
vijaynvr | 0:bc9f26b5dadf | 323 | /*! |
vijaynvr | 0:bc9f26b5dadf | 324 | *\brief Set ranging crosstalk valid height in the SYSRANGE_CROSSTALK_VALID_HEIGHT register. |
vijaynvr | 0:bc9f26b5dadf | 325 | * |
vijaynvr | 0:bc9f26b5dadf | 326 | * Minimum range at which to apply crosstalk compensation, in mm. \n |
vijaynvr | 0:bc9f26b5dadf | 327 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 328 | *\param[in] crosstalk_valid_height Minimum range at which to apply crosstalk compensation, in ranging modes. |
vijaynvr | 0:bc9f26b5dadf | 329 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 330 | */ |
vijaynvr | 0:bc9f26b5dadf | 331 | sensor_error range_set_crosstalk_valid_height(uint8_t device_base_address, int32_t crosstalk_valid_height); |
vijaynvr | 0:bc9f26b5dadf | 332 | |
vijaynvr | 0:bc9f26b5dadf | 333 | /*! |
vijaynvr | 0:bc9f26b5dadf | 334 | *\brief Report ranging crosstalk valid height from the SYSRANGE_CROSSTALK_VALID_HEIGHT register. |
vijaynvr | 0:bc9f26b5dadf | 335 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 336 | *\retval Integer. Returns the contents of the SYSRANGE_CROSSTALK_VALID_HEIGHT register. |
vijaynvr | 0:bc9f26b5dadf | 337 | */ |
vijaynvr | 0:bc9f26b5dadf | 338 | uint8_t range_get_crosstalk_valid_height(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 339 | |
vijaynvr | 0:bc9f26b5dadf | 340 | /*! |
vijaynvr | 0:bc9f26b5dadf | 341 | *\brief Set ranging ECE (early convergence estimate) Threshold in the SYSRANGE_EARLY_CONVERGENCE_ESTIMATE' register. |
vijaynvr | 0:bc9f26b5dadf | 342 | * |
vijaynvr | 0:bc9f26b5dadf | 343 | * User-set limit below which a ranging operation is aborted. \n |
vijaynvr | 0:bc9f26b5dadf | 344 | * An estimate of convergence time is performed 1ms into a ranging operation. If the return rate is below this user-set limit, the ranging operation is aborted to save power. \n |
vijaynvr | 0:bc9f26b5dadf | 345 | * |
vijaynvr | 0:bc9f26b5dadf | 346 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 347 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 348 | */ |
vijaynvr | 0:bc9f26b5dadf | 349 | sensor_error range_set_early_convergence_estimate_threshold(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 350 | |
vijaynvr | 0:bc9f26b5dadf | 351 | /*! |
vijaynvr | 0:bc9f26b5dadf | 352 | *\brief Report ranging early convergence estimate from the SYSRANGE_EARLY_CONVERGENCE_ESTIMATE register. |
vijaynvr | 0:bc9f26b5dadf | 353 | * |
vijaynvr | 0:bc9f26b5dadf | 354 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 355 | *\retval Integer. Returns the contents of the SYSRANGE_EARLY_CONVERGENCE_ESTIMATE register. |
vijaynvr | 0:bc9f26b5dadf | 356 | */ |
vijaynvr | 0:bc9f26b5dadf | 357 | uint8_t range_get_early_convergence_estimate_threshold(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 358 | |
vijaynvr | 0:bc9f26b5dadf | 359 | uint32_t range_get_vernier_ave_total_time(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 360 | |
vijaynvr | 0:bc9f26b5dadf | 361 | /*! |
vijaynvr | 0:bc9f26b5dadf | 362 | *\brief read convergence count threshold from USER_CONV_CTRL_RETURN_THRESHOLD_FINE register. |
vijaynvr | 0:bc9f26b5dadf | 363 | * |
vijaynvr | 0:bc9f26b5dadf | 364 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 365 | *\retval Integer. Returns the formated reading of the USER_CONV_CTRL_RETURN_THRESHOLD_FINE register. |
vijaynvr | 0:bc9f26b5dadf | 366 | */ |
vijaynvr | 0:bc9f26b5dadf | 367 | uint32_t range_get_converg_ctrl_rtn_thresh_fine(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 368 | |
vijaynvr | 0:bc9f26b5dadf | 369 | /*! |
vijaynvr | 0:bc9f26b5dadf | 370 | *\brief Set Ranging Ignore Valid Height threshold in the SYSRANGE_RANGE_IGNORE_VALID_HEIGHT register. |
vijaynvr | 0:bc9f26b5dadf | 371 | * |
vijaynvr | 0:bc9f26b5dadf | 372 | * Default : 256 \n |
vijaynvr | 0:bc9f26b5dadf | 373 | * |
vijaynvr | 0:bc9f26b5dadf | 374 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 375 | *\param[in] ignore_valid_height User-set limit |
vijaynvr | 0:bc9f26b5dadf | 376 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 377 | */ |
vijaynvr | 0:bc9f26b5dadf | 378 | sensor_error range_set_ignore_valid_height(uint8_t device_base_address, int32_t ignore_valid_height); |
vijaynvr | 0:bc9f26b5dadf | 379 | |
vijaynvr | 0:bc9f26b5dadf | 380 | /*! |
vijaynvr | 0:bc9f26b5dadf | 381 | *\brief Report ranging ignore valid height threshold from the SYSRANGE_RANGE_IGNORE_VALID_HEIGHT register. |
vijaynvr | 0:bc9f26b5dadf | 382 | * |
vijaynvr | 0:bc9f26b5dadf | 383 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 384 | *\retval Integer. Returns the contents of the SYSRANGE_RANGE_IGNORE_VALID_HEIGHT register. |
vijaynvr | 0:bc9f26b5dadf | 385 | */ |
vijaynvr | 0:bc9f26b5dadf | 386 | uint8_t range_get_ignore_valid_height(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 387 | |
vijaynvr | 0:bc9f26b5dadf | 388 | /*! |
vijaynvr | 0:bc9f26b5dadf | 389 | *\brief Set Range Ignore Threshold in the SYSRANGE_RANGE_IGNORE_THRESHOLD register. |
vijaynvr | 0:bc9f26b5dadf | 390 | * |
vijaynvr | 0:bc9f26b5dadf | 391 | * Minimum acceptable count rate of VCSEL counts on the return array. \n |
vijaynvr | 0:bc9f26b5dadf | 392 | * |
vijaynvr | 0:bc9f26b5dadf | 393 | * Default : 2. \n |
vijaynvr | 0:bc9f26b5dadf | 394 | * |
vijaynvr | 0:bc9f26b5dadf | 395 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 396 | *\param[in] range_ignore_threshold Minimum acceptable count rate of VCSEL counts on the return array. in Mcps 9.7 format. |
vijaynvr | 0:bc9f26b5dadf | 397 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 398 | */ |
vijaynvr | 0:bc9f26b5dadf | 399 | sensor_error range_set_range_ignore_threshold(uint8_t device_base_address, uint32_t range_ignore_threshold); |
vijaynvr | 0:bc9f26b5dadf | 400 | |
vijaynvr | 0:bc9f26b5dadf | 401 | /*! |
vijaynvr | 0:bc9f26b5dadf | 402 | *\brief Report Range Ignore Threshold from the SYSRANGE_RANGE_IGNORE_THRESHOLD register. in Mcps 9.7 format. |
vijaynvr | 0:bc9f26b5dadf | 403 | * |
vijaynvr | 0:bc9f26b5dadf | 404 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 405 | *\retval Integer. Returns the contents of the SYSRANGE_RANGE_IGNORE_THRESHOLD register. |
vijaynvr | 0:bc9f26b5dadf | 406 | */ |
vijaynvr | 0:bc9f26b5dadf | 407 | uint32_t range_get_range_ignore_threshold(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 408 | |
vijaynvr | 0:bc9f26b5dadf | 409 | /*! |
vijaynvr | 0:bc9f26b5dadf | 410 | *\brief Set Emitter Block Threshold in the SYSRANGE_EMITTER_BLOCK_THRESHOLD register. |
vijaynvr | 0:bc9f26b5dadf | 411 | * |
vijaynvr | 0:bc9f26b5dadf | 412 | * Maximum Reference Array VCSEL returns allowed before reporting that the emitter is blocked. \n |
vijaynvr | 0:bc9f26b5dadf | 413 | * MHz, 9.7 format \n |
vijaynvr | 0:bc9f26b5dadf | 414 | * |
vijaynvr | 0:bc9f26b5dadf | 415 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 416 | *\param[in] emitter_block_threshold Minimum acceptable count rate of VCSEL counts on the return array. |
vijaynvr | 0:bc9f26b5dadf | 417 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 418 | */ |
vijaynvr | 0:bc9f26b5dadf | 419 | sensor_error range_set_emitter_block_threshold(uint8_t device_base_address, int32_t emitter_block_threshold); |
vijaynvr | 0:bc9f26b5dadf | 420 | |
vijaynvr | 0:bc9f26b5dadf | 421 | /*! |
vijaynvr | 0:bc9f26b5dadf | 422 | *\brief Report Emitter Block Threshold from the SYSRANGE_EMITTER_BLOCK_THRESHOLD register. |
vijaynvr | 0:bc9f26b5dadf | 423 | * |
vijaynvr | 0:bc9f26b5dadf | 424 | * MHz, 9.7 format \n |
vijaynvr | 0:bc9f26b5dadf | 425 | * |
vijaynvr | 0:bc9f26b5dadf | 426 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 427 | *\retval Integer. Returns the contents of the SYSRANGE_EMITTER_BLOCK_THRESHOLD register. |
vijaynvr | 0:bc9f26b5dadf | 428 | */ |
vijaynvr | 0:bc9f26b5dadf | 429 | uint8_t range_get_emitter_block_threshold(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 430 | |
vijaynvr | 0:bc9f26b5dadf | 431 | /** |
vijaynvr | 0:bc9f26b5dadf | 432 | * @brief Function to set the SNR threshold. |
vijaynvr | 0:bc9f26b5dadf | 433 | * |
vijaynvr | 0:bc9f26b5dadf | 434 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 435 | *\param[in] snrThresh |
vijaynvr | 0:bc9f26b5dadf | 436 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 437 | */ |
vijaynvr | 0:bc9f26b5dadf | 438 | sensor_error range_set_snr_thresh(uint8_t device_base_address, float_t snrThresh); |
vijaynvr | 0:bc9f26b5dadf | 439 | |
vijaynvr | 0:bc9f26b5dadf | 440 | /** |
vijaynvr | 0:bc9f26b5dadf | 441 | * @brief Function to get the SNR threshold. |
vijaynvr | 0:bc9f26b5dadf | 442 | * |
vijaynvr | 0:bc9f26b5dadf | 443 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 444 | *\retval Float. Returns the SNR threshold. |
vijaynvr | 0:bc9f26b5dadf | 445 | */ |
vijaynvr | 0:bc9f26b5dadf | 446 | float_t range_get_snr_thresh(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 447 | |
vijaynvr | 0:bc9f26b5dadf | 448 | |
vijaynvr | 0:bc9f26b5dadf | 449 | /*! |
vijaynvr | 0:bc9f26b5dadf | 450 | *\brief Set Range Check Enables in the SYSRANGE_RANGE_CHECK_ENABLES register. |
vijaynvr | 0:bc9f26b5dadf | 451 | * |
vijaynvr | 0:bc9f26b5dadf | 452 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 453 | *\param[in] range_check_enables |
vijaynvr | 0:bc9f26b5dadf | 454 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 455 | */ |
vijaynvr | 0:bc9f26b5dadf | 456 | sensor_error range_set_range_check_enables(uint8_t device_base_address, int32_t range_check_enables); |
vijaynvr | 0:bc9f26b5dadf | 457 | |
vijaynvr | 0:bc9f26b5dadf | 458 | /*! |
vijaynvr | 0:bc9f26b5dadf | 459 | *\brief Report Range Check Enables from the SYSRANGE_RANGE_CHECK_ENABLES register. |
vijaynvr | 0:bc9f26b5dadf | 460 | * |
vijaynvr | 0:bc9f26b5dadf | 461 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 462 | *\retval Integer. Returns the contents of the SYSRANGE_RANGE_CHECK_ENABLES register. |
vijaynvr | 0:bc9f26b5dadf | 463 | */ |
vijaynvr | 0:bc9f26b5dadf | 464 | uint8_t range_get_range_check_enables(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 465 | |
vijaynvr | 0:bc9f26b5dadf | 466 | /*! |
vijaynvr | 0:bc9f26b5dadf | 467 | *\brief Set Range Check Enables in the SYSRANGE_VHV_RECALIBRATE register. |
vijaynvr | 0:bc9f26b5dadf | 468 | * |
vijaynvr | 0:bc9f26b5dadf | 469 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 470 | *\param[in] VHV_Recalibrate |
vijaynvr | 0:bc9f26b5dadf | 471 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 472 | */ |
vijaynvr | 0:bc9f26b5dadf | 473 | sensor_error range_set_vhv_recalibrate(uint8_t device_base_address, int32_t VHV_Recalibrate); |
vijaynvr | 0:bc9f26b5dadf | 474 | |
vijaynvr | 0:bc9f26b5dadf | 475 | /*! |
vijaynvr | 0:bc9f26b5dadf | 476 | *\brief Report Range Check Enables from the SYSRANGE_VHV_RECALIBRATE register. |
vijaynvr | 0:bc9f26b5dadf | 477 | * |
vijaynvr | 0:bc9f26b5dadf | 478 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 479 | *\retval Integer. |
vijaynvr | 0:bc9f26b5dadf | 480 | */ |
vijaynvr | 0:bc9f26b5dadf | 481 | uint8_t range_get_vhv_recalibrate(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 482 | |
vijaynvr | 0:bc9f26b5dadf | 483 | /*! |
vijaynvr | 0:bc9f26b5dadf | 484 | *\brief Set VHV Repeat Rate. |
vijaynvr | 0:bc9f26b5dadf | 485 | * |
vijaynvr | 0:bc9f26b5dadf | 486 | * Repeat rate of autoVHV task \n |
vijaynvr | 0:bc9f26b5dadf | 487 | * measurements, 0 = off, 255 = after every 255 measurements \n |
vijaynvr | 0:bc9f26b5dadf | 488 | * |
vijaynvr | 0:bc9f26b5dadf | 489 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 490 | *\param[in] VHV_repeat_rate Repeat rate of autoVHV task |
vijaynvr | 0:bc9f26b5dadf | 491 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 492 | */ |
vijaynvr | 0:bc9f26b5dadf | 493 | sensor_error range_set_vhv_repeat_rate(uint8_t device_base_address, int32_t VHV_repeat_rate); |
vijaynvr | 0:bc9f26b5dadf | 494 | |
vijaynvr | 0:bc9f26b5dadf | 495 | /*! |
vijaynvr | 0:bc9f26b5dadf | 496 | *\brief Report VHV Repeat Rate. |
vijaynvr | 0:bc9f26b5dadf | 497 | * |
vijaynvr | 0:bc9f26b5dadf | 498 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 499 | *\retval Integer. Repeat rate of autoVHV task, in measurements. 0 = off, 255 = after every 255 measurements. |
vijaynvr | 0:bc9f26b5dadf | 500 | */ |
vijaynvr | 0:bc9f26b5dadf | 501 | uint8_t range_get_vhv_repeat_rate(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 502 | |
vijaynvr | 0:bc9f26b5dadf | 503 | /*! |
vijaynvr | 0:bc9f26b5dadf | 504 | *\brief Report contents of the RESULT_RANGE_STATUS register. |
vijaynvr | 0:bc9f26b5dadf | 505 | * |
vijaynvr | 0:bc9f26b5dadf | 506 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 507 | *\retval Integer |
vijaynvr | 0:bc9f26b5dadf | 508 | */ |
vijaynvr | 0:bc9f26b5dadf | 509 | int32_t range_get_result_status(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 510 | |
vijaynvr | 0:bc9f26b5dadf | 511 | /*! |
vijaynvr | 0:bc9f26b5dadf | 512 | *\brief Report result_range_device_ready status in the RESULT_RANGE_STATUS register. |
vijaynvr | 0:bc9f26b5dadf | 513 | * |
vijaynvr | 0:bc9f26b5dadf | 514 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 515 | *\retval Boolean. Return True if the result_range_device_ready bit in the RESULT_RANGE_STATUS register is set, otherwise False. |
vijaynvr | 0:bc9f26b5dadf | 516 | */ |
vijaynvr | 0:bc9f26b5dadf | 517 | bool_t range_get_device_ready(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 518 | |
vijaynvr | 0:bc9f26b5dadf | 519 | /*! |
vijaynvr | 0:bc9f26b5dadf | 520 | *\brief Report result_range_error_codes status. |
vijaynvr | 0:bc9f26b5dadf | 521 | * |
vijaynvr | 0:bc9f26b5dadf | 522 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 523 | *\retval Integer. Return True if the result_range_error_codes bit in the RESULT_RANGE_STATUS register is set, otherwise False. |
vijaynvr | 0:bc9f26b5dadf | 524 | */ |
vijaynvr | 0:bc9f26b5dadf | 525 | uint8_t range_get_result_error_codes(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 526 | |
vijaynvr | 0:bc9f26b5dadf | 527 | /*! |
vijaynvr | 0:bc9f26b5dadf | 528 | *\brief Set the ECE Factor Molecular and Demoninator. |
vijaynvr | 0:bc9f26b5dadf | 529 | * |
vijaynvr | 0:bc9f26b5dadf | 530 | * (< 1.00 for maximum detection, > 1.00 for minimizing red glow) |
vijaynvr | 0:bc9f26b5dadf | 531 | * |
vijaynvr | 0:bc9f26b5dadf | 532 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 533 | *\param[in] ECE_Factor_M |
vijaynvr | 0:bc9f26b5dadf | 534 | *\param[in] ECE_Factor_D |
vijaynvr | 0:bc9f26b5dadf | 535 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 536 | */ |
vijaynvr | 0:bc9f26b5dadf | 537 | sensor_error range_set_ece_factor(uint8_t device_base_address, uint32_t ECE_Factor_M, uint32_t ECE_Factor_D); |
vijaynvr | 0:bc9f26b5dadf | 538 | |
vijaynvr | 0:bc9f26b5dadf | 539 | /*! |
vijaynvr | 0:bc9f26b5dadf | 540 | *\brief Store the ECE Margin Molecular and Demoninator to provided variables. |
vijaynvr | 0:bc9f26b5dadf | 541 | * |
vijaynvr | 0:bc9f26b5dadf | 542 | * (< 1.00 for maximum detection, > 1.00 for minimizing red glow) |
vijaynvr | 0:bc9f26b5dadf | 543 | * |
vijaynvr | 0:bc9f26b5dadf | 544 | *\param[in] pece_factor_m pointer to ECE_Factor_M variable |
vijaynvr | 0:bc9f26b5dadf | 545 | *\param[in] pece_factor_d pointer to ECE_Factor_D variable |
vijaynvr | 0:bc9f26b5dadf | 546 | *\retval sensor_error. |
vijaynvr | 0:bc9f26b5dadf | 547 | */ |
vijaynvr | 0:bc9f26b5dadf | 548 | sensor_error range_get_ece_factor(uint32_t *pece_factor_m, uint32_t *pece_factor_d); |
vijaynvr | 0:bc9f26b5dadf | 549 | |
vijaynvr | 0:bc9f26b5dadf | 550 | |
vijaynvr | 0:bc9f26b5dadf | 551 | /*! |
vijaynvr | 0:bc9f26b5dadf | 552 | *\brief Set System Interrupt Config GPIO for Ranging operations. |
vijaynvr | 0:bc9f26b5dadf | 553 | |
vijaynvr | 0:bc9f26b5dadf | 554 | Returns True if a command is successfully applied to the SYSTEM_INTERRUPT_CONFIG_GPIO register, otherwise False. \n |
vijaynvr | 0:bc9f26b5dadf | 555 | Possible settings are : \n |
vijaynvr | 0:bc9f26b5dadf | 556 | CONFIG_GPIO_INTERRUPT_DISABLED = 0x00 \n |
vijaynvr | 0:bc9f26b5dadf | 557 | CONFIG_GPIO_INTERRUPT_LEVEL_LOW = 0x01 \n |
vijaynvr | 0:bc9f26b5dadf | 558 | CONFIG_GPIO_INTERRUPT_LEVEL_HIGH = 0x02 \n |
vijaynvr | 0:bc9f26b5dadf | 559 | CONFIG_GPIO_INTERRUPT_OUT_OF_WINDOW = 0x03 \n |
vijaynvr | 0:bc9f26b5dadf | 560 | CONFIG_GPIO_INTERRUPT_NEW_SAMPLE_READY = 0x04 \n |
vijaynvr | 0:bc9f26b5dadf | 561 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 562 | *\param[in] Ranging_GPIO_interrupt_config |
vijaynvr | 0:bc9f26b5dadf | 563 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 564 | */ |
vijaynvr | 0:bc9f26b5dadf | 565 | sensor_error range_set_system_interrupt_config_gpio(uint8_t device_base_address, uint8_t Ranging_GPIO_interrupt_config); |
vijaynvr | 0:bc9f26b5dadf | 566 | |
vijaynvr | 0:bc9f26b5dadf | 567 | /*! |
vijaynvr | 0:bc9f26b5dadf | 568 | *\brief Report System Interrupt Config GPIO Ranging. |
vijaynvr | 0:bc9f26b5dadf | 569 | |
vijaynvr | 0:bc9f26b5dadf | 570 | Returns the ranging-only portion of the SYSTEM_INTERRUPT_CONFIG_GPIO register. \n |
vijaynvr | 0:bc9f26b5dadf | 571 | Possible returns are : \n |
vijaynvr | 0:bc9f26b5dadf | 572 | CONFIG_GPIO_INTERRUPT_DISABLED = 0x00 \n |
vijaynvr | 0:bc9f26b5dadf | 573 | CONFIG_GPIO_INTERRUPT_LEVEL_LOW = 0x01 \n |
vijaynvr | 0:bc9f26b5dadf | 574 | CONFIG_GPIO_INTERRUPT_LEVEL_HIGH = 0x02 \n |
vijaynvr | 0:bc9f26b5dadf | 575 | CONFIG_GPIO_INTERRUPT_OUT_OF_WINDOW = 0x03 \n |
vijaynvr | 0:bc9f26b5dadf | 576 | CONFIG_GPIO_INTERRUPT_NEW_SAMPLE_READY = 0x04 \n |
vijaynvr | 0:bc9f26b5dadf | 577 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 578 | *\retval Integer |
vijaynvr | 0:bc9f26b5dadf | 579 | */ |
vijaynvr | 0:bc9f26b5dadf | 580 | uint8_t range_get_system_interrupt_config_gpio(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 581 | |
vijaynvr | 0:bc9f26b5dadf | 582 | /*! |
vijaynvr | 0:bc9f26b5dadf | 583 | *\brief Clear Ranging System Interrupt. |
vijaynvr | 0:bc9f26b5dadf | 584 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 585 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 586 | */ |
vijaynvr | 0:bc9f26b5dadf | 587 | sensor_error range_set_system_interrupt_clear(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 588 | |
vijaynvr | 0:bc9f26b5dadf | 589 | |
vijaynvr | 0:bc9f26b5dadf | 590 | sensor_error Get_Range_History_Buffer(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 591 | |
vijaynvr | 0:bc9f26b5dadf | 592 | /*! |
vijaynvr | 0:bc9f26b5dadf | 593 | *\brief Report GPIO Interrupt Result Status for a Ranging operation. |
vijaynvr | 0:bc9f26b5dadf | 594 | |
vijaynvr | 0:bc9f26b5dadf | 595 | Returns the Ranging-only portion of the RESULT_INTERRUPT_STATUS_GPIO register. \n |
vijaynvr | 0:bc9f26b5dadf | 596 | Possible returns are : \n |
vijaynvr | 0:bc9f26b5dadf | 597 | 0: No threshold events reported \n |
vijaynvr | 0:bc9f26b5dadf | 598 | 1: Level Low threshold event \n |
vijaynvr | 0:bc9f26b5dadf | 599 | 2: Level High threshold event \n |
vijaynvr | 0:bc9f26b5dadf | 600 | 3: Out Of Window threshold event \n |
vijaynvr | 0:bc9f26b5dadf | 601 | 4: New Sample Ready threshold event \n |
vijaynvr | 0:bc9f26b5dadf | 602 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 603 | *\retval Integer |
vijaynvr | 0:bc9f26b5dadf | 604 | */ |
vijaynvr | 0:bc9f26b5dadf | 605 | uint8_t range_get_result_interrupt_status_gpio(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 606 | |
vijaynvr | 0:bc9f26b5dadf | 607 | /*! |
vijaynvr | 0:bc9f26b5dadf | 608 | *\brief Set history buffer to range mode and enable. |
vijaynvr | 0:bc9f26b5dadf | 609 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 610 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 611 | */ |
vijaynvr | 0:bc9f26b5dadf | 612 | sensor_error range_set_history_buffer_mode_enable(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 613 | |
vijaynvr | 0:bc9f26b5dadf | 614 | |
vijaynvr | 0:bc9f26b5dadf | 615 | /** |
vijaynvr | 0:bc9f26b5dadf | 616 | * @brief Function to return the Maximum range reported by the |
vijaynvr | 0:bc9f26b5dadf | 617 | * sensor. |
vijaynvr | 0:bc9f26b5dadf | 618 | */ |
vijaynvr | 0:bc9f26b5dadf | 619 | uint32_t range_get_upper_limit(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 620 | |
vijaynvr | 0:bc9f26b5dadf | 621 | /** |
vijaynvr | 0:bc9f26b5dadf | 622 | * @brief Function to return the Minimum range reported by the |
vijaynvr | 0:bc9f26b5dadf | 623 | * sensor. |
vijaynvr | 0:bc9f26b5dadf | 624 | */ |
vijaynvr | 0:bc9f26b5dadf | 625 | uint32_t range_get_lower_limit(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 626 | |
vijaynvr | 0:bc9f26b5dadf | 627 | #endif |
vijaynvr | 0:bc9f26b5dadf | 628 | |
vijaynvr | 0:bc9f26b5dadf | 629 |