jj
Dependencies: VL6180x X_NUCLEO_COMMON X_NUCLEO_IHM01A1 mbed
Fork of 1-DoorCloser by
Diff: VL6180X/vl6180x_platform.h
- Revision:
- 0:1cb50d31c3b5
diff -r 000000000000 -r 1cb50d31c3b5 VL6180X/vl6180x_platform.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/VL6180X/vl6180x_platform.h Fri Mar 25 21:27:03 2016 +0000 @@ -0,0 +1,108 @@ +/******************************************************************************* +################################################################################ +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License version 2 and only version 2 as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +#------------------------------------------------------------------------------ +# Imaging Division +################################################################################ +********************************************************************************/ + + +/* vl6180x_platform.h STM32 Nucleo F401 single device sample code project */ + +#ifndef VL6180x_PLATFORM +#define VL6180x_PLATFORM + + +#include "vl6180x_def.h" + + +#define VL6180x_SINGLE_DEVICE_DRIVER 0 +#define VL6180x_RANGE_STATUS_ERRSTRING 1 +#define VL6180X_SAFE_POLLING_ENTER 0 +#define VL6180X_LOG_ENABLE 0 +#define MY_LOG 1 + +#define VL6180x_DEV_DATA_ATTR +#define ROMABLE_DATA + + +#if VL6180X_LOG_ENABLE +/* dot not include non ansi here trace was a case :( */ +#ifdef TRACE +#include "diag/trace.h" +extern volatile uint32_t g_TickCnt; +#define LOG_GET_TIME() g_TickCnt +//#define LOG_GET_TIME() HAL_GetTick() +#else +/* these is nto stm32 vl6180x GNuArm eclpse build*/ +#define trace_printf(...) (void)0 +#define LOG_GET_TIME() (int)0 /* add your code here expect to be an integer native (%d) type value */ +#endif + + + +#define LOG_FUNCTION_START(fmt, ... ) \ + trace_printf("beg %s start @%d\t" fmt "\n", __func__, LOG_GET_TIME(), ##__VA_ARGS__) + +#define LOG_FUNCTION_END(status)\ + trace_printf("end %s @%d %d\n", __func__, LOG_GET_TIME(), (int)status) + +#define LOG_FUNCTION_END_FMT(status, fmt, ... )\ + trace_printf("End %s @%d %d\t"fmt"\n" , __func__, LOG_GET_TIME(), (int)status, ##__VA_ARGS__) + +#define VL6180x_ErrLog(msg, ... )\ + do{\ + trace_printf("ERR in %s line %d\n" msg, __func__, __LINE__, ##__VA_ARGS__);\ + }while(0) + +#else /* VL6180X_LOG_ENABLE no logging */ + //void OnErrLog(void); + #define LOG_FUNCTION_START(...) (void)0 + #define LOG_FUNCTION_END(...) (void)0 + #define LOG_FUNCTION_END_FMT(...) (void)0 + #define VL6180x_ErrLog(... ) //OnErrLog() //(void)0 +#endif + + +#ifdef MY_LOG /* define printf as pc.printf in order to change the baudrate */ + extern Serial pc; + #define printf(...) pc.printf(__VA_ARGS__) +#endif + + +#if VL6180x_SINGLE_DEVICE_DRIVER + #error "VL6180x_SINGLE_DEVICE_DRIVER must be set" +#endif + +struct MyVL6180Dev_t { + struct VL6180xDevData_t Data; + uint8_t I2cAddr; + //uint8_t DevID; + + //misc flags for application + unsigned Present:1; + unsigned Ready:1; +}; +typedef struct MyVL6180Dev_t *VL6180xDev_t; + +#define VL6180xDevDataGet(dev, field) (dev->Data.field) +#define VL6180xDevDataSet(dev, field, data) (dev->Data.field)=(data) + + +#endif /* VL6180x_PLATFORM */ + + +