Fixed STMPE1600 writeSYS_CTRL, enabled multi sensors support
Dependencies: ST_INTERFACES X_NUCLEO_COMMON
Fork of X_NUCLEO_53L0A1 by
Diff: Components/VL53L0X/vl53l0x_class.h
- Revision:
- 2:58b5e9097aa3
- Parent:
- 0:c523920bcc09
- Child:
- 3:613d7f1ef60e
diff -r 01b8004bc0a7 -r 58b5e9097aa3 Components/VL53L0X/vl53l0x_class.h --- a/Components/VL53L0X/vl53l0x_class.h Mon Nov 28 14:52:49 2016 +0000 +++ b/Components/VL53L0X/vl53l0x_class.h Thu Dec 01 14:17:46 2016 +0000 @@ -1,5 +1,5 @@ /******************************************************************************* - Copyright © 2016, STMicroelectronics International N.V. + Copyright © 2016, STMicroelectronics International N.V. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -327,7 +327,7 @@ Device=&MyDevice; gpio0=NULL; if (pin_gpio1 != NC) { gpio1Int = new InterruptIn(pin_gpio1); } - else { gpio1Int = NULL; } + else { gpio1Int = NULL; } } /** Destructor @@ -369,15 +369,8 @@ /** * @brief Initialize the sensor with default values * @return 0 on Success - */ + */ int InitSensor(uint8_t NewAddr); - - int RawInitSensor(void); - int initDevice(VL53L0X_DEV Dev); - int setLongRangePresets(VL53L0X_DEV Dev); - int DoRanging(VL53L0X_Dev_t *pMyDevice); - - /** @@ -491,11 +484,50 @@ * @param void * @return 0 on success, @a #CALIBRATION_WARNING if failed */ - virtual int Init() +// virtual int Init() + virtual int Init(void * NewAddr) { - return VL53L0X_DataInit(&MyDevice); -// return VL53L0X_DataInit(Device); -// return 1; +// return VL53L0X_DataInit(&MyDevice); + return VL53L0X_DataInit(Device); +/* + int status; + + VL6180x_Off(); + VL6180x_On(); + + status=VL6180x_WaitDeviceBooted(Device); + if(status) { + VL6180x_ErrLog("WaitDeviceBooted fail\n\r"); + } + status=IsPresent(); + if(!status) + { + Device->Present=1; + VL6180x_InitData(Device); + if(status) + { + printf("Failed to init VL6180X sensor!\n\r"); + return status; + } + status=Prepare(); + if(status) + { + printf("Failed to prepare VL6180X!\n\r"); + return status; + } + if(*(uint8_t*)NewAddr!=DEFAULT_DEVICE_ADDRESS) + { + status=SetI2CAddress(*(uint8_t*)NewAddr); + if(status) + { + printf("Failed to change I2C address!\n\r"); + return status; + } + } + Device->Ready=1; + } + return status; +*/ } /** @@ -687,10 +719,19 @@ * @param pRange_mm Pointer to range distance * @return 0 on success */ - virtual int GetRange(int32_t *piData) + virtual int GetDistance(uint32_t *piData) { // return VL6180x_RangeGetResult(Device, piData); - return 1; + int status=0; + VL53L0X_RangingMeasurementData_t pRangingMeasurementData; + + status=StartMeasurement(range_single_shot_polling, NULL); + if (!status) { + status=GetMeasurement(range_single_shot_polling, &pRangingMeasurementData); + } + StopMeasurement(range_single_shot_polling); + *piData = pRangingMeasurementData.RangeMilliMeter; + return status; } /** @@ -1325,7 +1366,8 @@ VL53L0X_DeviceInfo_t *pVL53L0X_DeviceInfo); /* Read function of the ID device */ - virtual int ReadID(); +// virtual int ReadID(); + virtual int ReadID(uint8_t *id); VL53L0X_Error WaitMeasurementDataReady(VL53L0X_DEV Dev); VL53L0X_Error WaitStopCompleted(VL53L0X_DEV Dev); @@ -1351,8 +1393,9 @@ int IsPresent() { int status; + uint8_t id; - status=ReadID(); + status=ReadID(&id); if(status) VL53L0X_ErrLog("Failed to read ID device. Device not present!\n\r"); return status;