Rename library
Dependencies: X_NUCLEO_COMMON ST_INTERFACES
Dependents: VL53L3CX_NoShield_1Sensor_poll_Mb06x VL53L3_NoShield_1Sensor_polling_Mb63 X_NUCLEO_53L3A2 53L3A2_Ranging
porting/spi_interface.cpp@5:89031b2f5316, 2021-07-14 (annotated)
- Committer:
- Charles MacNeill
- Date:
- Wed Jul 14 12:45:49 2021 +0100
- Revision:
- 5:89031b2f5316
The class files now just are wrappers for the files in the "MODULES" directory.The porting directory includes the mbed interface
Who changed what in which revision?
User | Revision | Line number | New 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 | } |