Line Health / VL6180
Committer:
mwilkens241
Date:
Fri Mar 31 15:49:47 2017 +0000
Revision:
2:40f590e28101
Parent:
0:15e49005d54e
stole some things out of here, not much changed

Who changed what in which revision?

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