The VL53L1CB proximity sensor, based on ST’s FlightSense™, Time-of-Flight technology.

Dependencies:   X_NUCLEO_COMMON ST_INTERFACES

Dependents:   VL53L1CB_noshield_1sensor_polls_auton VL53L1CB_noshield_1sensor_interrupt_auton X_NUCLEO_53L1A2

Based on VL53L1 library, this is a library for the VL53L1CB ToF chip.

Committer:
charlesmn
Date:
Fri Nov 06 10:06:37 2020 +0000
Revision:
0:3ac96e360672
Child:
18:0696efe39d08
Library for ST Vl53L1A1 time of flight sensor.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
charlesmn 0:3ac96e360672 1 #include "ToF_I2C.h"
charlesmn 0:3ac96e360672 2 #include "spi_interface.h"
charlesmn 0:3ac96e360672 3
charlesmn 0:3ac96e360672 4 /* This file is an interface between the c files and the mbed cpp files. */
charlesmn 0:3ac96e360672 5
charlesmn 0:3ac96e360672 6 int v53l1x_i2c_write_if(uint8_t* pBuffer, uint8_t DeviceAddr, uint16_t RegisterAddr,
charlesmn 0:3ac96e360672 7 uint16_t NumByteToWrite)
charlesmn 0:3ac96e360672 8 {
charlesmn 0:3ac96e360672 9
charlesmn 0:3ac96e360672 10 static ToF_DevI2C *dev_I2C = new ToF_DevI2C(D14, D15);
charlesmn 0:3ac96e360672 11
charlesmn 0:3ac96e360672 12 dev_I2C->frequency(400000);
charlesmn 0:3ac96e360672 13
charlesmn 0:3ac96e360672 14 // printf("v53l1x_i2c_write_if %d\n",NumByteToWrite);
charlesmn 0:3ac96e360672 15 int status = dev_I2C->ToF_i2c_write(pBuffer, DeviceAddr, RegisterAddr, NumByteToWrite);
charlesmn 0:3ac96e360672 16
charlesmn 0:3ac96e360672 17 if(status)
charlesmn 0:3ac96e360672 18 {
charlesmn 0:3ac96e360672 19 delete dev_I2C;
charlesmn 0:3ac96e360672 20 return -1;
charlesmn 0:3ac96e360672 21 }
charlesmn 0:3ac96e360672 22
charlesmn 0:3ac96e360672 23 return status;
charlesmn 0:3ac96e360672 24 }
charlesmn 0:3ac96e360672 25
charlesmn 0:3ac96e360672 26
charlesmn 0:3ac96e360672 27
charlesmn 0:3ac96e360672 28 int v53l1x_i2c_read_if(uint8_t* pBuffer, uint8_t DeviceAddr, uint16_t RegisterAddr,
charlesmn 0:3ac96e360672 29 uint16_t NumByteToRead)
charlesmn 0:3ac96e360672 30 {
charlesmn 0:3ac96e360672 31
charlesmn 0:3ac96e360672 32
charlesmn 0:3ac96e360672 33 static ToF_DevI2C *dev_I2C = new ToF_DevI2C(D14, D15);
charlesmn 0:3ac96e360672 34 if (dev_I2C == NULL)
charlesmn 0:3ac96e360672 35 {
charlesmn 0:3ac96e360672 36 printf("v53l1x_i2c_read_if no pointer%d\n",NumByteToRead);
charlesmn 0:3ac96e360672 37 }
charlesmn 0:3ac96e360672 38 dev_I2C->frequency(400000);
charlesmn 0:3ac96e360672 39 // printf("v53l1x_i2c_read_if %d\n",NumByteToRead);
charlesmn 0:3ac96e360672 40 int status = dev_I2C->ToF_i2c_read(pBuffer, DeviceAddr, RegisterAddr, NumByteToRead);
charlesmn 0:3ac96e360672 41 // printf("v53l1x_i2c_read_if %d %d %d %d %d\n",status, DeviceAddr, RegisterAddr,NumByteToRead ,pBuffer[0]);
charlesmn 0:3ac96e360672 42 // delete dev_I2C;
charlesmn 0:3ac96e360672 43
charlesmn 0:3ac96e360672 44 return status;
charlesmn 0:3ac96e360672 45 }
charlesmn 0:3ac96e360672 46
charlesmn 0:3ac96e360672 47
charlesmn 0:3ac96e360672 48 int GetTickCount(
charlesmn 0:3ac96e360672 49 uint32_t *ptick_count_ms)
charlesmn 0:3ac96e360672 50 {
charlesmn 0:3ac96e360672 51
charlesmn 0:3ac96e360672 52 /* Returns current tick count in [ms] */
charlesmn 0:3ac96e360672 53
charlesmn 0:3ac96e360672 54 int status = 0;
charlesmn 0:3ac96e360672 55
charlesmn 0:3ac96e360672 56 //*ptick_count_ms = timeGetTime();
charlesmn 0:3ac96e360672 57 *ptick_count_ms = us_ticker_read() / 1000;
charlesmn 0:3ac96e360672 58
charlesmn 0:3ac96e360672 59 return status;
charlesmn 0:3ac96e360672 60 }