use VL6180XA1 chip wothout X-NUCLEO-6180XA1 Board. Simple way to use the chip.

Dependents:   Check_VL6180XA1_ToF

Fork of X_NUCLEO_6180XA1 by ST

Revision:
60:972b4898a007
Parent:
59:81afbb75311d
--- a/vl6180x_def.h	Sun Jan 28 02:07:05 2018 +0000
+++ b/vl6180x_def.h	Thu Feb 01 12:05:43 2018 +0000
@@ -16,7 +16,7 @@
 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
-NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED. 
+NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
 IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. BE LIABLE FOR ANY
 DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
@@ -26,6 +26,11 @@
 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 ********************************************************************************/
 
+//------- Feburary 1st, 2018 by JH1PJL / K.Arai --------------------------------
+// Change X_NUCLEO_6180XA1 library to 6180XA1_simplest library
+//    modified -> all related files
+//------------------------------------------------------------------------------
+
 /*
  * $Date: 2015-05-13 14:12:05 +0200 (Wed, 13 May 2015) $
  * $Revision: 2290 $
@@ -53,7 +58,6 @@
 #define VL6180X_STR(x) VL6180X_STR_HELPER(x)
 
 #include "vl6180x_cfg.h"
-#include "vl6180x_types.h"
 
 /*
  * check configuration macro raise error or warning and suggest a default value
@@ -82,17 +86,6 @@
 #define VL6180X_EXTENDED_RANGE   0
 #endif
 
-#ifndef  VL6180X_WRAP_AROUND_FILTER_SUPPORT
-#error "VL6180X_WRAP_AROUND_FILTER_SUPPORT not defined ?"
-/* TODO you may remove or comment these #error and keep the default below  or update vl6180x_cfg.h file */
-/**
- * force VL6180X_WRAP_AROUND_FILTER_SUPPORT to not supported when not part of cfg file
- */
-#define VL6180X_WRAP_AROUND_FILTER_SUPPORT 0
-#endif
-
-
-
 
 /****************************************
  * PRIVATE define do not edit
@@ -109,14 +102,6 @@
 #define VL6180X_HAVE_UPSCALE_DATA /* have data only for user configurable up-scale config */
 #endif
 
-#if VL6180X_WRAP_AROUND_FILTER_SUPPORT
-/**
- * @def VL6180X_HAVE_WRAP_AROUND_DATA
- * @brief  is defined if device data structure has filter data so when active in cfg file
- */
-#define  VL6180X_HAVE_WRAP_AROUND_DATA
-#endif
-
 #if VL6180X_ALS_SUPPORT != 0
 /**
  * @def  VL6180X_HAVE_ALS_DATA
@@ -126,17 +111,13 @@
 #endif
 
 
-#if VL6180X_WRAP_AROUND_FILTER_SUPPORT || VL6180X_HAVE_DMAX_RANGING
-	#define	VL6180X_HAVE_RATE_DATA
-#endif
-
 /** Error and warning code returned by API
  *
  * negative value are true error mostly fatal\n
  * positive value  are warning most of time it's ok to continue\n
  */
-enum VL6180X_ErrCode_t{
-	API_NO_ERROR        = 0,
+enum VL6180X_ErrCode_t {
+    API_NO_ERROR        = 0,
     CALIBRATION_WARNING = 1,  /*!< warning invalid calibration data may be in used \a  VL6180X_InitData() \a VL6180X_GetOffsetCalibrationData \a VL6180X_SetOffsetCalibrationData*/
     MIN_CLIPED          = 2,  /*!< warning parameter passed was clipped to min before to be applied */
     NOT_GUARANTEED      = 3,  /*!< Correct operation is not guaranteed typically using extended ranging on vl6180x */
@@ -184,21 +165,6 @@
     FilterType1_t Previous_VAVGDiff;                /*!< internal use */
 };
 
-#if  VL6180X_HAVE_DMAX_RANGING
-typedef int32_t DMaxFix_t;
-struct DMaxData_t {
-    uint32_t ambTuningWindowFactor_K; /*!<  internal algo tuning (*1000) */
-
-    DMaxFix_t retSignalAt400mm;  /*!< intermediate dmax computation value caching @a #SYSRANGE_CROSSTALK_COMPENSATION_RATE and private reg 0x02A */
-    //int32_t RegB8;              /*!< register 0xB8 cached to speed reduce i2c traffic for dmax computation */
-    /* place all word data below to optimize struct packing */
-    //int32_t minSignalNeeded;    /*!< optimized computation intermediate base on register cached value */
-    int32_t snrLimit_K;         /*!< cached and optimized computation intermediate from  @a #SYSRANGE_MAX_AMBIENT_LEVEL_MULT */
-    uint16_t ClipSnrLimit;      /*!< Max value for snr limit */
-    /* place all byte data below to optimize packing */
-    //uint8_t MaxConvTime;        /*!< cached max convergence time @a #SYSRANGE_MAX_CONVERGENCE_TIME*/
-};
-#endif
 
 /**
  * @struct VL6180XDevData_t
@@ -231,20 +197,9 @@
     struct FilterData_t FilterData; /*!< Filter internal data state history ... */
 #endif
 
-#if  VL6180X_HAVE_DMAX_RANGING
-    struct DMaxData_t DMaxData;
-    uint8_t DMaxEnable;
-#endif
     int8_t  Part2PartOffsetNVM;     /*!< backed up NVM value */
 };
 
-#if VL6180X_SINGLE_DEVICE_DRIVER
-extern  struct VL6180XDevData_t SingleVL6180XDevData;
-#define VL6180XDevDataGet(dev, field) (SingleVL6180XDevData.field)
-/* is also used as direct accessor like VL6180XDevDataGet(dev, x)++*/
-#define VL6180XDevDataSet(dev, field, data) (SingleVL6180XDevData.field)=(data)
-#endif
-
 
 /**
  * @struct VL6180X_RangeData_t
@@ -264,15 +219,10 @@
     uint32_t refConvTime;   /*!< Reference convergence time \a RESULT_RANGE_REFERENCE_CONV_TIME */
 #endif
 
-
-#if  VL6180X_HAVE_DMAX_RANGING
-    uint32_t DMax;              /*!< DMax  when applicable */
-#endif
-
 #ifdef  VL6180X_HAVE_WRAP_AROUND_DATA
     RangeFilterResult_t FilteredData; /*!< Filter result main range_mm is updated */
 #endif
-}VL6180X_RangeData_t;
+} VL6180X_RangeData_t;
 
 
 /** use where fix point 9.7 bit values are expected
@@ -286,12 +236,12 @@
 /**
  * @brief This data type defines als  measurement data.
  */
-typedef struct VL6180X_AlsData_st{
+typedef struct VL6180X_AlsData_st {
     lux_t lux;                 /**< Light measurement (Lux) */
     uint32_t errorStatus;      /**< Error status of the current measurement. \n
      * No Error := 0. \n
      * Refer to product sheets for other error codes. */
-}VL6180X_AlsData_t;
+} VL6180X_AlsData_t;
 
 /**
  * @brief Range status Error code
@@ -327,7 +277,7 @@
  *  @brief    Device registers and masks definitions
  */
 
- 
+
 /** @ingroup device_regdef
  * @{*/
 
@@ -362,20 +312,20 @@
  * @ingroup device_regdef
  */
 #define SYSTEM_MODE_GPIO1                       0x011
-    /** gpio pad POLARITY mask in #SYSTEM_MODE_GPIO1 (and/or 0) write  1  to set active high polarity (positive edge) */
-    #define GPIOx_POLARITY_SELECT_MASK              0x20
-    /** gpio pad Function select shift in #SYSTEM_MODE_GPIO1 or 0 */
-    #define GPIOx_FUNCTIONALITY_SELECT_SHIFT          1
-    /** gpio pad Function select mask in #SYSTEM_MODE_GPIO1 or 0 */
-    #define GPIOx_FUNCTIONALITY_SELECT_MASK          (0xF<<GPIOx_FUNCTIONALITY_SELECT_SHIFT)
-    /** select no interrupt in #SYSTEM_MODE_GPIO1 pad is put in  Hi-Z*/
-    #define GPIOx_SELECT_OFF                        0x00
-    /** select gpiox as interrupt output in  #SYSTEM_MODE_GPIO1 */
-    #define GPIOx_SELECT_GPIO_INTERRUPT_OUTPUT      0x08
-    /** select range as source for interrupt on in #SYSTEM_MODE_GPIO1 */
-    #define GPIOx_MODE_SELECT_RANGING               0x00
-    /** select als as source for interrupt on in #SYSTEM_MODE_GPIO1 */
-    #define GPIOx_MODE_SELECT_ALS                   0x01
+/** gpio pad POLARITY mask in #SYSTEM_MODE_GPIO1 (and/or 0) write  1  to set active high polarity (positive edge) */
+#define GPIOx_POLARITY_SELECT_MASK              0x20
+/** gpio pad Function select shift in #SYSTEM_MODE_GPIO1 or 0 */
+#define GPIOx_FUNCTIONALITY_SELECT_SHIFT          1
+/** gpio pad Function select mask in #SYSTEM_MODE_GPIO1 or 0 */
+#define GPIOx_FUNCTIONALITY_SELECT_MASK          (0xF<<GPIOx_FUNCTIONALITY_SELECT_SHIFT)
+/** select no interrupt in #SYSTEM_MODE_GPIO1 pad is put in  Hi-Z*/
+#define GPIOx_SELECT_OFF                        0x00
+/** select gpiox as interrupt output in  #SYSTEM_MODE_GPIO1 */
+#define GPIOx_SELECT_GPIO_INTERRUPT_OUTPUT      0x08
+/** select range as source for interrupt on in #SYSTEM_MODE_GPIO1 */
+#define GPIOx_MODE_SELECT_RANGING               0x00
+/** select als as source for interrupt on in #SYSTEM_MODE_GPIO1 */
+#define GPIOx_MODE_SELECT_ALS                   0x01
 
 
 /**
@@ -398,24 +348,24 @@
  * @ingroup device_regdef
  */
 #define SYSTEM_INTERRUPT_CONFIG_GPIO           0x014
-    /** RANGE bits shift in #SYSTEM_INTERRUPT_CONFIG_GPIO */
-    #define CONFIG_GPIO_RANGE_SHIFT            0
-    /** RANGE bits mask in #SYSTEM_INTERRUPT_CONFIG_GPIO  (unshifted)*/
-    #define CONFIG_GPIO_RANGE_MASK             (0x7<<CONFIG_GPIO_RANGE_SHIFT)
-    /** ALS bits shift in #SYSTEM_INTERRUPT_CONFIG_GPIO */
-    #define CONFIG_GPIO_ALS_SHIFT              3
-    /** ALS bits mask in #SYSTEM_INTERRUPT_CONFIG_GPIO  (unshifted)*/
-    #define CONFIG_GPIO_ALS_MASK               (0x7<<CONFIG_GPIO_ALS_SHIFT)
-    /** interrupt is disabled */
-    #define CONFIG_GPIO_INTERRUPT_DISABLED         0x00
-    /** trigger when value < low threshold */
-    #define CONFIG_GPIO_INTERRUPT_LEVEL_LOW        0x01
-    /** trigger when value < low threshold */
-    #define CONFIG_GPIO_INTERRUPT_LEVEL_HIGH       0x02
-    /** trigger when outside range defined by high low threshold */
-    #define CONFIG_GPIO_INTERRUPT_OUT_OF_WINDOW    0x03
-    /** trigger when new sample are ready */
-    #define CONFIG_GPIO_INTERRUPT_NEW_SAMPLE_READY 0x04
+/** RANGE bits shift in #SYSTEM_INTERRUPT_CONFIG_GPIO */
+#define CONFIG_GPIO_RANGE_SHIFT            0
+/** RANGE bits mask in #SYSTEM_INTERRUPT_CONFIG_GPIO  (unshifted)*/
+#define CONFIG_GPIO_RANGE_MASK             (0x7<<CONFIG_GPIO_RANGE_SHIFT)
+/** ALS bits shift in #SYSTEM_INTERRUPT_CONFIG_GPIO */
+#define CONFIG_GPIO_ALS_SHIFT              3
+/** ALS bits mask in #SYSTEM_INTERRUPT_CONFIG_GPIO  (unshifted)*/
+#define CONFIG_GPIO_ALS_MASK               (0x7<<CONFIG_GPIO_ALS_SHIFT)
+/** interrupt is disabled */
+#define CONFIG_GPIO_INTERRUPT_DISABLED         0x00
+/** trigger when value < low threshold */
+#define CONFIG_GPIO_INTERRUPT_LEVEL_LOW        0x01
+/** trigger when value < low threshold */
+#define CONFIG_GPIO_INTERRUPT_LEVEL_HIGH       0x02
+/** trigger when outside range defined by high low threshold */
+#define CONFIG_GPIO_INTERRUPT_OUT_OF_WINDOW    0x03
+/** trigger when new sample are ready */
+#define CONFIG_GPIO_INTERRUPT_NEW_SAMPLE_READY 0x04
 
 /**
  *  @def SYSTEM_INTERRUPT_CLEAR
@@ -425,12 +375,12 @@
  *  @ingroup device_regdef
  */
 #define SYSTEM_INTERRUPT_CLEAR                0x015
-    /** clear ranging interrupt in write to #SYSTEM_INTERRUPT_CLEAR */
-    #define INTERRUPT_CLEAR_RANGING                0x01
-    /** clear als interrupt  in write to #SYSTEM_INTERRUPT_CLEAR */
-    #define INTERRUPT_CLEAR_ALS                    0x02
-    /** clear error interrupt in write to #SYSTEM_INTERRUPT_CLEAR */
-    #define INTERRUPT_CLEAR_ERROR                  0x04
+/** clear ranging interrupt in write to #SYSTEM_INTERRUPT_CLEAR */
+#define INTERRUPT_CLEAR_RANGING                0x01
+/** clear als interrupt  in write to #SYSTEM_INTERRUPT_CLEAR */
+#define INTERRUPT_CLEAR_ALS                    0x02
+/** clear error interrupt in write to #SYSTEM_INTERRUPT_CLEAR */
+#define INTERRUPT_CLEAR_ERROR                  0x04
 
 /** After power up or reset this register will start reading 1 when device is ready */
 #define SYSTEM_FRESH_OUT_OF_RESET             0x016
@@ -462,14 +412,14 @@
  * @ingroup device_regdef
  */
 #define SYSRANGE_START                        0x018
-    /** mask existing bit in #SYSRANGE_START*/
-    #define MODE_MASK          0x03
-    /** bit 0 in #SYSRANGE_START write 1 toggle state in continuous mode and arm next shot in single shot mode */
-    #define MODE_START_STOP    0x01
-    /** bit 1 write 1 in #SYSRANGE_START set continuous operation mode */
-    #define MODE_CONTINUOUS    0x02
-    /** bit 1 write 0 in #SYSRANGE_START set single shot mode */
-    #define MODE_SINGLESHOT    0x00
+/** mask existing bit in #SYSRANGE_START*/
+#define MODE_MASK          0x03
+/** bit 0 in #SYSRANGE_START write 1 toggle state in continuous mode and arm next shot in single shot mode */
+#define MODE_START_STOP    0x01
+/** bit 1 write 1 in #SYSRANGE_START set continuous operation mode */
+#define MODE_CONTINUOUS    0x02
+/** bit 1 write 0 in #SYSRANGE_START set single shot mode */
+#define MODE_SINGLESHOT    0x00
 
 /**
  * @def SYSRANGE_THRESH_HIGH
@@ -528,9 +478,9 @@
  *  @a VL6180X_RangeSetEceState()
  */
 #define SYSRANGE_RANGE_CHECK_ENABLES          0x02D
-    #define RANGE_CHECK_ECE_ENABLE_MASK      0x01
-    #define RANGE_CHECK_RANGE_ENABLE_MASK    0x02
-    #define RANGE_CHECK_SNR_ENABLKE          0x10
+#define RANGE_CHECK_ECE_ENABLE_MASK      0x01
+#define RANGE_CHECK_RANGE_ENABLE_MASK    0x02
+#define RANGE_CHECK_SNR_ENABLKE          0x10
 
 #define SYSRANGE_VHV_RECALIBRATE              0x02E
 #define SYSRANGE_VHV_REPEAT_RATE              0x031
@@ -549,7 +499,7 @@
 #define SYSALS_THRESH_LOW                     0x03C
 /** ALS intermeasurement period */
 #define SYSALS_INTERMEASUREMENT_PERIOD        0x03E
-/** 
+/**
  * @warning or value with 0x40 when writing to these register*/
 #define SYSALS_ANALOGUE_GAIN                  0x03F
 /** ALS integration period */
@@ -561,12 +511,12 @@
  *  Hold the various range interrupt flags and error Specific error codes
  */
 #define RESULT_RANGE_STATUS                   0x04D
-    /** Device ready for new command bit 0*/
-    #define RANGE_DEVICE_READY_MASK       0x01
-    /** mask for error status covers bits [7:4]  in #RESULT_RANGE_STATUS @a ::RangeError_u */
-    #define RANGE_ERROR_CODE_MASK         0xF0 /* */
-    /** range error bit position in #RESULT_RANGE_STATUS */
-    #define RANGE_ERROR_CODE_SHIFT        4
+/** Device ready for new command bit 0*/
+#define RANGE_DEVICE_READY_MASK       0x01
+/** mask for error status covers bits [7:4]  in #RESULT_RANGE_STATUS @a ::RangeError_u */
+#define RANGE_ERROR_CODE_MASK         0xF0 /* */
+/** range error bit position in #RESULT_RANGE_STATUS */
+#define RANGE_ERROR_CODE_SHIFT        4
 
 /**
  * @def RESULT_ALS_STATUS
@@ -574,8 +524,8 @@
  *  Hold the various als interrupt flags and Specific error codes
  */
 #define RESULT_ALS_STATUS                     0x4E
-    /** Device ready for new command bit 0*/
-   #define ALS_DEVICE_READY_MASK       0x01
+/** Device ready for new command bit 0*/
+#define ALS_DEVICE_READY_MASK       0x01
 
 /**
  * @def RESULT_ALS_VAL
@@ -599,13 +549,13 @@
  * these union can be use as a generic bit field type for map #RESULT_INTERRUPT_STATUS_GPIO register
  * @ingroup device_regdef
  */
-typedef union IntrStatus_u{
+typedef union IntrStatus_u {
     uint8_t val;           /*!< raw 8 bit register value*/
     struct  {
         unsigned Range     :3; /*!< Range status one of :\n  \a #RES_INT_STAT_GPIO_LOW_LEVEL_THRESHOLD  \n \a #RES_INT_STAT_GPIO_HIGH_LEVEL_THRESHOLD  \n \a #RES_INT_STAT_GPIO_OUT_OF_WINDOW \n \a #RES_INT_STAT_GPIO_NEW_SAMPLE_READY */
         unsigned Als       :3; /*!< Als status one of: \n \a #RES_INT_STAT_GPIO_LOW_LEVEL_THRESHOLD  \n \a #RES_INT_STAT_GPIO_HIGH_LEVEL_THRESHOLD  \n \a #RES_INT_STAT_GPIO_OUT_OF_WINDOW \n \a #RES_INT_STAT_GPIO_NEW_SAMPLE_READY  */
         unsigned Error     :2; /*!<  Error status of: \n \a #RES_INT_ERROR_LASER_SAFETY  \n \a #RES_INT_ERROR_PLL */
-     } status;                 /*!< interrupt status as bit field */
+    } status;                 /*!< interrupt status as bit field */
 } IntrStatus_t;
 
 /**
@@ -625,31 +575,31 @@
  * @ingroup device_regdef
  */
 #define RESULT_INTERRUPT_STATUS_GPIO          0x4F
-    /** ranging interrupt 1st bit position in #RESULT_INTERRUPT_STATUS_GPIO */
-    #define RES_INT_RANGE_SHIFT  0
-    /** ALS interrupt 1st bit position in #RESULT_INTERRUPT_STATUS_GPIO */
-    #define RES_INT_ALS_SHIFT    3
-    /** interrupt bit position in #RESULT_INTERRUPT_STATUS_GPIO */
-    #define RES_INT_ERROR_SHIFT  6
-    /** Ranging interrupt mask in #RESULT_INTERRUPT_STATUS_GPIO (prior to shift)  \sa IntrStatus_t */
-    #define RES_INT_RANGE_MASK (0x7<<RES_INT_RANGE_SHIFT)
-    /** als interrupt mask in #RESULT_INTERRUPT_STATUS_GPIO (prior to shift)  \sa IntrStatus_t */
-    #define RES_INT_ALS_MASK   (0x7<<RES_INT_ALS_SHIFT)
+/** ranging interrupt 1st bit position in #RESULT_INTERRUPT_STATUS_GPIO */
+#define RES_INT_RANGE_SHIFT  0
+/** ALS interrupt 1st bit position in #RESULT_INTERRUPT_STATUS_GPIO */
+#define RES_INT_ALS_SHIFT    3
+/** interrupt bit position in #RESULT_INTERRUPT_STATUS_GPIO */
+#define RES_INT_ERROR_SHIFT  6
+/** Ranging interrupt mask in #RESULT_INTERRUPT_STATUS_GPIO (prior to shift)  \sa IntrStatus_t */
+#define RES_INT_RANGE_MASK (0x7<<RES_INT_RANGE_SHIFT)
+/** als interrupt mask in #RESULT_INTERRUPT_STATUS_GPIO (prior to shift)  \sa IntrStatus_t */
+#define RES_INT_ALS_MASK   (0x7<<RES_INT_ALS_SHIFT)
 
-    /** low threshold condition in #RESULT_INTERRUPT_STATUS_GPIO for */
-    #define RES_INT_STAT_GPIO_LOW_LEVEL_THRESHOLD  0x01
-    /** high threshold condition in #RESULT_INTERRUPT_STATUS_GPIO for ALs or Rage*/
-    #define RES_INT_STAT_GPIO_HIGH_LEVEL_THRESHOLD 0x02
-    /** out of window condition in #RESULT_INTERRUPT_STATUS_GPIO */
-    #define RES_INT_STAT_GPIO_OUT_OF_WINDOW        0x03
-    /** new sample ready in #RESULT_INTERRUPT_STATUS_GPIO */
-    #define RES_INT_STAT_GPIO_NEW_SAMPLE_READY     0x04
-    /** error  in #RESULT_INTERRUPT_STATUS_GPIO */
-    #define RES_INT_ERROR_MASK (0x3<<RES_INT_ERROR_SHIFT)
-        /** laser safety error on #RES_INT_ERROR_MASK of #RESULT_INTERRUPT_STATUS_GPIO */
-        #define RES_INT_ERROR_LASER_SAFETY  1
-        /** pll 1 or 2 error on #RES_INT_ERROR_MASK of #RESULT_INTERRUPT_STATUS_GPIO*/
-        #define RES_INT_ERROR_PLL           2
+/** low threshold condition in #RESULT_INTERRUPT_STATUS_GPIO for */
+#define RES_INT_STAT_GPIO_LOW_LEVEL_THRESHOLD  0x01
+/** high threshold condition in #RESULT_INTERRUPT_STATUS_GPIO for ALs or Rage*/
+#define RES_INT_STAT_GPIO_HIGH_LEVEL_THRESHOLD 0x02
+/** out of window condition in #RESULT_INTERRUPT_STATUS_GPIO */
+#define RES_INT_STAT_GPIO_OUT_OF_WINDOW        0x03
+/** new sample ready in #RESULT_INTERRUPT_STATUS_GPIO */
+#define RES_INT_STAT_GPIO_NEW_SAMPLE_READY     0x04
+/** error  in #RESULT_INTERRUPT_STATUS_GPIO */
+#define RES_INT_ERROR_MASK (0x3<<RES_INT_ERROR_SHIFT)
+/** laser safety error on #RES_INT_ERROR_MASK of #RESULT_INTERRUPT_STATUS_GPIO */
+#define RES_INT_ERROR_LASER_SAFETY  1
+/** pll 1 or 2 error on #RES_INT_ERROR_MASK of #RESULT_INTERRUPT_STATUS_GPIO*/
+#define RES_INT_ERROR_PLL           2
 
 /**
  * Final range result value presented to the user for use. Unit is in mm.