Rename library

Dependencies:   X_NUCLEO_COMMON ST_INTERFACES

Dependents:   VL53L3CX_NoShield_1Sensor_poll_Mb06x VL53L3_NoShield_1Sensor_polling_Mb63 X_NUCLEO_53L3A2 53L3A2_Ranging

Committer:
charlesmn
Date:
Wed Jul 21 14:07:59 2021 +0000
Revision:
7:7f1bbf370283
Parent:
5:89031b2f5316
Moved vl53l3cx_class.cpp and .h to 53l3a2_RangingClass

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Charles MacNeill 5:89031b2f5316 1 #include "ToF_I2C.h"
Charles MacNeill 5:89031b2f5316 2 #include "pinmap.h"
Charles MacNeill 5:89031b2f5316 3 #include "spi_interface.h"
Charles MacNeill 5:89031b2f5316 4
Charles MacNeill 5:89031b2f5316 5
Charles MacNeill 5:89031b2f5316 6 static InterruptIn *_gpio1Int;
Charles MacNeill 5:89031b2f5316 7
Charles MacNeill 5:89031b2f5316 8
Charles MacNeill 5:89031b2f5316 9 /* This file is an interface between the c files and the mbed cpp files. */
Charles MacNeill 5:89031b2f5316 10 /* .c files cannot directly access mbed. */
Charles MacNeill 5:89031b2f5316 11
Charles MacNeill 5:89031b2f5316 12 int v53l1x_i2c_write_if(uint8_t* pBuffer, uint8_t DeviceAddr, uint16_t RegisterAddr,
Charles MacNeill 5:89031b2f5316 13 uint16_t NumByteToWrite)
Charles MacNeill 5:89031b2f5316 14 {
Charles MacNeill 5:89031b2f5316 15
Charles MacNeill 5:89031b2f5316 16 static ToF_DevI2C *dev_I2C = new ToF_DevI2C(D14, D15);
Charles MacNeill 5:89031b2f5316 17
Charles MacNeill 5:89031b2f5316 18 dev_I2C->frequency(400000);
Charles MacNeill 5:89031b2f5316 19
Charles MacNeill 5:89031b2f5316 20 // printf("----ToF_i2c_write %d %d %d %d\n", DeviceAddr, RegisterAddr,NumByteToWrite ,pBuffer[0]);
Charles MacNeill 5:89031b2f5316 21 int status = dev_I2C->ToF_i2c_write(pBuffer, DeviceAddr, RegisterAddr, NumByteToWrite);
Charles MacNeill 5:89031b2f5316 22 // printf("----ToF_i2c_write %d %d %d %d %d\n",status, DeviceAddr, RegisterAddr,NumByteToWrite ,pBuffer[0]);
Charles MacNeill 5:89031b2f5316 23
Charles MacNeill 5:89031b2f5316 24
Charles MacNeill 5:89031b2f5316 25 return status;
Charles MacNeill 5:89031b2f5316 26 }
Charles MacNeill 5:89031b2f5316 27
Charles MacNeill 5:89031b2f5316 28 int v53l1x_i2c_write_direct(uint8_t* pBuffer, uint8_t DeviceAddr,
Charles MacNeill 5:89031b2f5316 29 uint16_t NumByteToWrite)
Charles MacNeill 5:89031b2f5316 30 {
Charles MacNeill 5:89031b2f5316 31
Charles MacNeill 5:89031b2f5316 32 static ToF_DevI2C *dev_I2C = new ToF_DevI2C(D14, D15);
Charles MacNeill 5:89031b2f5316 33
Charles MacNeill 5:89031b2f5316 34 dev_I2C->frequency(400000);
Charles MacNeill 5:89031b2f5316 35
Charles MacNeill 5:89031b2f5316 36 // printf("v53l1x_i2c_write_if %d\n",NumByteToWrite);
Charles MacNeill 5:89031b2f5316 37 int status = dev_I2C->ToF_i2c_write_direct(pBuffer, DeviceAddr, NumByteToWrite);
Charles MacNeill 5:89031b2f5316 38 // printf("----ToF_i2c_write_direct %d %d %d %d %d\n",status, DeviceAddr,NumByteToWrite ,pBuffer[0]);
Charles MacNeill 5:89031b2f5316 39
Charles MacNeill 5:89031b2f5316 40 return status;
Charles MacNeill 5:89031b2f5316 41 }
Charles MacNeill 5:89031b2f5316 42
Charles MacNeill 5:89031b2f5316 43
Charles MacNeill 5:89031b2f5316 44
Charles MacNeill 5:89031b2f5316 45
Charles MacNeill 5:89031b2f5316 46 int v53l1x_i2c_read_if(uint8_t* pBuffer, uint8_t DeviceAddr, uint16_t RegisterAddr,
Charles MacNeill 5:89031b2f5316 47 uint16_t NumByteToRead)
Charles MacNeill 5:89031b2f5316 48 {
Charles MacNeill 5:89031b2f5316 49
Charles MacNeill 5:89031b2f5316 50
Charles MacNeill 5:89031b2f5316 51 static ToF_DevI2C *dev_I2C = new ToF_DevI2C(D14, D15);
Charles MacNeill 5:89031b2f5316 52 if (dev_I2C == NULL)
Charles MacNeill 5:89031b2f5316 53 {
Charles MacNeill 5:89031b2f5316 54 printf("v53l1x_i2c_read_if no pointer%d\n",NumByteToRead);
Charles MacNeill 5:89031b2f5316 55 }
Charles MacNeill 5:89031b2f5316 56 dev_I2C->frequency(400000);
Charles MacNeill 5:89031b2f5316 57 // printf("v53l1x_i2c_read_if %d\n",NumByteToRead);
Charles MacNeill 5:89031b2f5316 58 int status = dev_I2C->ToF_i2c_read(pBuffer, DeviceAddr, RegisterAddr, NumByteToRead);
Charles MacNeill 5:89031b2f5316 59 // printf("v53l1x_i2c_read_if %d %d %d %d %d\n",status, DeviceAddr, RegisterAddr,NumByteToRead ,pBuffer[0]);
Charles MacNeill 5:89031b2f5316 60 // delete dev_I2C;
Charles MacNeill 5:89031b2f5316 61
Charles MacNeill 5:89031b2f5316 62 return status;
Charles MacNeill 5:89031b2f5316 63 }
Charles MacNeill 5:89031b2f5316 64
Charles MacNeill 5:89031b2f5316 65
Charles MacNeill 5:89031b2f5316 66 int GetTickCount(
Charles MacNeill 5:89031b2f5316 67 uint32_t *ptick_count_ms)
Charles MacNeill 5:89031b2f5316 68 {
Charles MacNeill 5:89031b2f5316 69
Charles MacNeill 5:89031b2f5316 70 /* Returns current tick count in [ms] */
Charles MacNeill 5:89031b2f5316 71
Charles MacNeill 5:89031b2f5316 72 int status = 0;
Charles MacNeill 5:89031b2f5316 73
Charles MacNeill 5:89031b2f5316 74 //*ptick_count_ms = timeGetTime();
Charles MacNeill 5:89031b2f5316 75 *ptick_count_ms = us_ticker_read() / 1000;
Charles MacNeill 5:89031b2f5316 76
Charles MacNeill 5:89031b2f5316 77 return status;
Charles MacNeill 5:89031b2f5316 78 }
Charles MacNeill 5:89031b2f5316 79
Charles MacNeill 5:89031b2f5316 80
Charles MacNeill 5:89031b2f5316 81 // routines to create interrupts to handle ranging detection
Charles MacNeill 5:89031b2f5316 82 void create_interrupt_measure_detection_irq(PinName pin)
Charles MacNeill 5:89031b2f5316 83 {
Charles MacNeill 5:89031b2f5316 84 _gpio1Int = new InterruptIn(pin);
Charles MacNeill 5:89031b2f5316 85
Charles MacNeill 5:89031b2f5316 86 }
Charles MacNeill 5:89031b2f5316 87
Charles MacNeill 5:89031b2f5316 88 void delete_interrupt_measure_detection_irq()
Charles MacNeill 5:89031b2f5316 89 {
Charles MacNeill 5:89031b2f5316 90 if ( _gpio1Int != NULL)
Charles MacNeill 5:89031b2f5316 91 {
Charles MacNeill 5:89031b2f5316 92 _gpio1Int->disable_irq();
Charles MacNeill 5:89031b2f5316 93 delete _gpio1Int;
Charles MacNeill 5:89031b2f5316 94 }
Charles MacNeill 5:89031b2f5316 95
Charles MacNeill 5:89031b2f5316 96 }
Charles MacNeill 5:89031b2f5316 97
Charles MacNeill 5:89031b2f5316 98 void enable_interrupt_measure_detection_irq()
Charles MacNeill 5:89031b2f5316 99 {
Charles MacNeill 5:89031b2f5316 100 if ( _gpio1Int != NULL)
Charles MacNeill 5:89031b2f5316 101 _gpio1Int->enable_irq();
Charles MacNeill 5:89031b2f5316 102
Charles MacNeill 5:89031b2f5316 103 }
Charles MacNeill 5:89031b2f5316 104
Charles MacNeill 5:89031b2f5316 105 void disable_interrupt_measure_detection_irq()
Charles MacNeill 5:89031b2f5316 106 {
Charles MacNeill 5:89031b2f5316 107 if ( _gpio1Int != NULL)
Charles MacNeill 5:89031b2f5316 108 _gpio1Int->disable_irq();
Charles MacNeill 5:89031b2f5316 109 }
Charles MacNeill 5:89031b2f5316 110
Charles MacNeill 5:89031b2f5316 111 void attach_interrupt_measure_detection_irq(void (*fptr)(void))
Charles MacNeill 5:89031b2f5316 112 {
Charles MacNeill 5:89031b2f5316 113 if ( _gpio1Int != NULL)
Charles MacNeill 5:89031b2f5316 114 _gpio1Int->rise(fptr);
Charles MacNeill 5:89031b2f5316 115 }
Charles MacNeill 5:89031b2f5316 116
Charles MacNeill 5:89031b2f5316 117
Charles MacNeill 5:89031b2f5316 118 void set_gpio_pin(PinName pin, int state)
Charles MacNeill 5:89031b2f5316 119 {
Charles MacNeill 5:89031b2f5316 120 DigitalOut sensorshut(pin);
Charles MacNeill 5:89031b2f5316 121 sensorshut = state;
Charles MacNeill 5:89031b2f5316 122 }