Now you can use NC as InterruptIn

Dependencies:   X_NUCLEO_COMMON

Fork of X_NUCLEO_6180XA1 by ST

Committer:
gallonm
Date:
Tue Oct 06 09:03:10 2015 +0200
Revision:
10:4954b09b72d8
Parent:
8:f943a1fca15f
Child:
16:0d4776564733
Fitted all api files (reinserted original api files)
Modified file platform.h and removed vl6180x_appcfg.h from the include
Modified value of the define SINGLE_DEVICE_DRIVER
Updated file stmpe1600_class.h
Fitted the ReadID function and I2C functions (read and write)
Updated file vl6180x_class.cpp
Introduced functions InitSensor and StartMeasurement
Fitted the constructor and the destructor of x_nucleo_6180xa1
Added the instance to create a singleton object
Introduced InitBoard function

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
gallonm 1:1de1ea2994d9 25 #ifndef VL6180x_PLATFORM
gallonm 1:1de1ea2994d9 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
gallonm 10:4954b09b72d8 32 #define VL6180x_SINGLE_DEVICE_DRIVER 0
gallonm 10:4954b09b72d8 33 #define VL6180x_RANGE_STATUS_ERRSTRING 1
gallonm 10:4954b09b72d8 34 #define VL6180X_SAFE_POLLING_ENTER 0
gallonm 10:4954b09b72d8 35 #define VL6180X_LOG_ENABLE 0
gallonm 10:4954b09b72d8 36
gallonm 1:1de1ea2994d9 37
gallonm 1:1de1ea2994d9 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)\
gallonm 1:1de1ea2994d9 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, ... )\
gallonm 1:1de1ea2994d9 64 trace_printf("End %s @%d %d\t"fmt"\n" , __func__, LOG_GET_TIME(), (int)status, ##__VA_ARGS__)
gallonm 1:1de1ea2994d9 65
gallonm 1:1de1ea2994d9 66 #define VL6180x_ErrLog(msg, ... )\
gallonm 1:1de1ea2994d9 67 do{\
gallonm 1:1de1ea2994d9 68 trace_printf("ERR in %s line %d\n" msg, __func__, __LINE__, ##__VA_ARGS__);\
gallonm 1:1de1ea2994d9 69 }while(0)
gallonm 1:1de1ea2994d9 70
gallonm 1:1de1ea2994d9 71 #else /* VL6180X_LOG_ENABLE no logging */
gallonm 10:4954b09b72d8 72 void OnErrLog(void);
gallonm 10:4954b09b72d8 73 #define LOG_FUNCTION_START(...) (void)0
gallonm 10:4954b09b72d8 74 #define LOG_FUNCTION_END(...) (void)0
gallonm 10:4954b09b72d8 75 #define LOG_FUNCTION_END_FMT(...) (void)0
gallonm 10:4954b09b72d8 76 #define VL6180x_ErrLog(... ) OnErrLog() //(void)0
gallonm 1:1de1ea2994d9 77 #endif
gallonm 1:1de1ea2994d9 78
gallonm 1:1de1ea2994d9 79
gallonm 10:4954b09b72d8 80 #if VL6180x_SINGLE_DEVICE_DRIVER
gallonm 10:4954b09b72d8 81 #error "VL6180x_SINGLE_DEVICE_DRIVER must be set"
gallonm 10:4954b09b72d8 82 #endif
gallonm 10:4954b09b72d8 83
gallonm 10:4954b09b72d8 84 struct MyVL6180Dev_t {
gallonm 10:4954b09b72d8 85 struct VL6180xDevData_t Data;
gallonm 10:4954b09b72d8 86 uint8_t I2cAddr;
gallonm 10:4954b09b72d8 87 //uint8_t DevID;
licio.mapelli@st.com 8:f943a1fca15f 88
gallonm 10:4954b09b72d8 89 //misc flags for application
gallonm 10:4954b09b72d8 90 unsigned Present:1;
gallonm 10:4954b09b72d8 91 unsigned Ready:1;
gallonm 10:4954b09b72d8 92 };
gallonm 10:4954b09b72d8 93 typedef struct MyVL6180Dev_t *VL6180xDev_t;
gallonm 1:1de1ea2994d9 94
gallonm 10:4954b09b72d8 95 #define VL6180xDevDataGet(dev, field) (dev->Data.field)
gallonm 10:4954b09b72d8 96 #define VL6180xDevDataSet(dev, field, data) (dev->Data.field)=(data)
gallonm 1:1de1ea2994d9 97
gallonm 1:1de1ea2994d9 98
gallonm 1:1de1ea2994d9 99 void VL6180x_PollDelay(VL6180xDev_t dev);
gallonm 1:1de1ea2994d9 100
gallonm 1:1de1ea2994d9 101 void DISP_ExecLoopBody(void);
gallonm 1:1de1ea2994d9 102 #define VL6180x_PollDelay(dev) DISP_ExecLoopBody();
gallonm 1:1de1ea2994d9 103
gallonm 1:1de1ea2994d9 104
gallonm 1:1de1ea2994d9 105 #endif /* VL6180x_PLATFORM */
gallonm 1:1de1ea2994d9 106
gallonm 1:1de1ea2994d9 107
gallonm 1:1de1ea2994d9 108