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.
src/spi_interface.cpp@0:3ac96e360672, 2020-11-06 (annotated)
- 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?
User | Revision | Line number | New 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 | } |