Time of Flight Sensor

Dependencies:   ST_INTERFACES X_NUCLEO_COMMON

Dependents:   Ultrasound_And_IMU

Fork of X_NUCLEO_6180XA1 by ST

Committer:
Davidroid
Date:
Mon Mar 13 19:08:10 2017 +0000
Revision:
57:fa4c622b04a7
Parent:
56:37d1736bd896
Aligned to ARM mbed coding style.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gallonm 1:1de1ea2994d9 1 /*******************************************************************************
gallonm 10:4954b09b72d8 2 ################################################################################
gallonm 10:4954b09b72d8 3 #
gallonm 10:4954b09b72d8 4 # This program is free software; you can redistribute it and/or modify it under
gallonm 10:4954b09b72d8 5 # the terms of the GNU General Public License version 2 and only version 2 as
gallonm 10:4954b09b72d8 6 # published by the Free Software Foundation.
gallonm 10:4954b09b72d8 7 #
gallonm 10:4954b09b72d8 8 # This program is distributed in the hope that it will be useful, but WITHOUT
gallonm 10:4954b09b72d8 9 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
gallonm 10:4954b09b72d8 10 # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
gallonm 10:4954b09b72d8 11 # details.
gallonm 10:4954b09b72d8 12 #
gallonm 10:4954b09b72d8 13 # You should have received a copy of the GNU General Public License along with
gallonm 10:4954b09b72d8 14 # this program; if not, write to the Free Software Foundation, Inc.,
gallonm 10:4954b09b72d8 15 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
gallonm 10:4954b09b72d8 16 #
gallonm 10:4954b09b72d8 17 #------------------------------------------------------------------------------
gallonm 10:4954b09b72d8 18 # Imaging Division
gallonm 10:4954b09b72d8 19 ################################################################################
gallonm 1:1de1ea2994d9 20 ********************************************************************************/
gallonm 1:1de1ea2994d9 21
gallonm 1:1de1ea2994d9 22
gallonm 10:4954b09b72d8 23 /* vl6180x_platform.h STM32 Nucleo F401 single device sample code project */
gallonm 1:1de1ea2994d9 24
Davidroid 57:fa4c622b04a7 25 #ifndef VL6180X_PLATFORM
Davidroid 57:fa4c622b04a7 26 #define VL6180X_PLATFORM
gallonm 1:1de1ea2994d9 27
gallonm 10:4954b09b72d8 28
gallonm 1:1de1ea2994d9 29 #include "vl6180x_def.h"
gallonm 1:1de1ea2994d9 30
gallonm 1:1de1ea2994d9 31
Davidroid 57:fa4c622b04a7 32 #define VL6180X_SINGLE_DEVICE_DRIVER 0
Davidroid 57:fa4c622b04a7 33 #define VL6180X_RANGE_STATUS_ERRSTRING 1
davide.aliprandi@st.com 56:37d1736bd896 34 #define VL6180X_SAFE_POLLING_ENTER 0
gallonm 16:0d4776564733 35 #define VL6180X_LOG_ENABLE 0
gallonm 20:dd8390d615bf 36 #define MY_LOG 1
gallonm 1:1de1ea2994d9 37
Davidroid 57:fa4c622b04a7 38 #define VL6180X_DEV_DATA_ATTR
gallonm 1:1de1ea2994d9 39 #define ROMABLE_DATA
gallonm 1:1de1ea2994d9 40
gallonm 1:1de1ea2994d9 41
gallonm 1:1de1ea2994d9 42 #if VL6180X_LOG_ENABLE
gallonm 1:1de1ea2994d9 43 /* dot not include non ansi here trace was a case :( */
gallonm 1:1de1ea2994d9 44 #ifdef TRACE
gallonm 1:1de1ea2994d9 45 #include "diag/trace.h"
gallonm 1:1de1ea2994d9 46 extern volatile uint32_t g_TickCnt;
gallonm 1:1de1ea2994d9 47 #define LOG_GET_TIME() g_TickCnt
gallonm 10:4954b09b72d8 48 //#define LOG_GET_TIME() HAL_GetTick()
gallonm 1:1de1ea2994d9 49 #else
gallonm 1:1de1ea2994d9 50 /* these is nto stm32 vl6180x GNuArm eclpse build*/
gallonm 1:1de1ea2994d9 51 #define trace_printf(...) (void)0
gallonm 1:1de1ea2994d9 52 #define LOG_GET_TIME() (int)0 /* add your code here expect to be an integer native (%d) type value */
gallonm 1:1de1ea2994d9 53 #endif
gallonm 1:1de1ea2994d9 54
gallonm 1:1de1ea2994d9 55
gallonm 1:1de1ea2994d9 56
gallonm 1:1de1ea2994d9 57 #define LOG_FUNCTION_START(fmt, ... ) \
gallonm 1:1de1ea2994d9 58 trace_printf("beg %s start @%d\t" fmt "\n", __func__, LOG_GET_TIME(), ##__VA_ARGS__)
gallonm 1:1de1ea2994d9 59
gallonm 1:1de1ea2994d9 60 #define LOG_FUNCTION_END(status)\
davide.aliprandi@st.com 56:37d1736bd896 61 trace_printf("end %s @%d %d\n", __func__, LOG_GET_TIME(), (int)status)
gallonm 1:1de1ea2994d9 62
gallonm 1:1de1ea2994d9 63 #define LOG_FUNCTION_END_FMT(status, fmt, ... )\
davide.aliprandi@st.com 56:37d1736bd896 64 trace_printf("End %s @%d %d\t"fmt"\n" , __func__, LOG_GET_TIME(), (int)status, ##__VA_ARGS__)
gallonm 1:1de1ea2994d9 65
Davidroid 57:fa4c622b04a7 66 #define VL6180X_ErrLog(msg, ... )\
davide.aliprandi@st.com 56:37d1736bd896 67 do {\
gallonm 1:1de1ea2994d9 68 trace_printf("ERR in %s line %d\n" msg, __func__, __LINE__, ##__VA_ARGS__);\
davide.aliprandi@st.com 56:37d1736bd896 69 } while(0)
gallonm 1:1de1ea2994d9 70
gallonm 1:1de1ea2994d9 71 #else /* VL6180X_LOG_ENABLE no logging */
mapellil 19:39ea6bab0e5b 72 //void OnErrLog(void);
gallonm 20:dd8390d615bf 73 #define LOG_FUNCTION_START(...) (void)0
gallonm 20:dd8390d615bf 74 #define LOG_FUNCTION_END(...) (void)0
gallonm 20:dd8390d615bf 75 #define LOG_FUNCTION_END_FMT(...) (void)0
Davidroid 57:fa4c622b04a7 76 #define VL6180X_ErrLog(... ) //OnErrLog() //(void)0
gallonm 16:0d4776564733 77 #endif
gallonm 16:0d4776564733 78
gallonm 20:dd8390d615bf 79 #ifdef MY_LOG /* define printf as pc.printf in order to change the baudrate */
gallonm 16:0d4776564733 80 extern Serial pc;
gallonm 16:0d4776564733 81 #define printf(...) pc.printf(__VA_ARGS__)
gallonm 1:1de1ea2994d9 82 #endif
gallonm 1:1de1ea2994d9 83
Davidroid 57:fa4c622b04a7 84 #if VL6180X_SINGLE_DEVICE_DRIVER
Davidroid 57:fa4c622b04a7 85 #error "VL6180X_SINGLE_DEVICE_DRIVER must be set"
gallonm 10:4954b09b72d8 86 #endif
gallonm 10:4954b09b72d8 87
gallonm 10:4954b09b72d8 88 struct MyVL6180Dev_t {
Davidroid 57:fa4c622b04a7 89 struct VL6180XDevData_t Data;
gallonm 20:dd8390d615bf 90 uint8_t I2cAddr;
gallonm 20:dd8390d615bf 91 //uint8_t DevID;
licio.mapelli@st.com 8:f943a1fca15f 92
gallonm 20:dd8390d615bf 93 //misc flags for application
gallonm 10:4954b09b72d8 94 unsigned Present:1;
gallonm 10:4954b09b72d8 95 unsigned Ready:1;
gallonm 10:4954b09b72d8 96 };
Davidroid 57:fa4c622b04a7 97 typedef struct MyVL6180Dev_t *VL6180XDev_t;
gallonm 1:1de1ea2994d9 98
Davidroid 57:fa4c622b04a7 99 #define VL6180XDevDataGet(dev, field) (dev->Data.field)
Davidroid 57:fa4c622b04a7 100 #define VL6180XDevDataSet(dev, field, data) (dev->Data.field)=(data)
gallonm 1:1de1ea2994d9 101
Davidroid 57:fa4c622b04a7 102 #endif /* VL6180X_PLATFORM */