INSAT Mini Project
Dependencies: ST_INTERFACES X_NUCLEO_COMMON
Fork of X_NUCLEO_6180XA1 by
Revision 58:1e9a3a46f814, committed 2017-08-21
- Comitter:
- nikapov
- Date:
- Mon Aug 21 15:44:34 2017 +0000
- Parent:
- 57:fa4c622b04a7
- Child:
- 59:f1110f5e3d90
- Commit message:
- Make compatible with non-copyable version of I2C.
Changed in this revision
--- a/Components/STMPE1600/STMPE1600.h Mon Mar 13 19:08:10 2017 +0000 +++ b/Components/STMPE1600/STMPE1600.h Mon Aug 21 15:44:34 2017 +0000 @@ -104,7 +104,7 @@ * @param[in] lvl the default ot pin level */ STMPE1600DigiOut (DevI2C &i2c, exp_gpio_pin_name outpinname, uint8_t DevAddr=STMPE1600_DEF_DEVICE_ADDRESS, bool lvl=STMPE1600_DEF_DIGIOUT_LVL): - _dev_i2c(i2c), + _dev_i2c(&i2c), _expdevaddr(DevAddr), _exppinname(outpinname) { @@ -113,11 +113,11 @@ return; } /* set the _exppinname as output */ - _dev_i2c.i2c_read(data, _expdevaddr, GPDR_0_7, 1); - _dev_i2c.i2c_read(&data[1], _expdevaddr, GPDR_8_15, 1); + _dev_i2c->i2c_read(data, _expdevaddr, GPDR_0_7, 1); + _dev_i2c->i2c_read(&data[1], _expdevaddr, GPDR_8_15, 1); *(uint16_t*)data = *(uint16_t*)data | (1<<(uint16_t)_exppinname); // set gpio as out - _dev_i2c.i2c_write(data, _expdevaddr, GPDR_0_7, 1); - _dev_i2c.i2c_write(&data[1], _expdevaddr, GPDR_8_15, 1); + _dev_i2c->i2c_write(data, _expdevaddr, GPDR_0_7, 1); + _dev_i2c->i2c_write(&data[1], _expdevaddr, GPDR_8_15, 1); write (lvl); } @@ -131,10 +131,10 @@ uint8_t data[2]; if (_exppinname == NOT_CON) return; /* set the _exppinname state to lvl */ - _dev_i2c.i2c_read(data, _expdevaddr, GPSR_0_7, 2); + _dev_i2c->i2c_read(data, _expdevaddr, GPSR_0_7, 2); *(uint16_t*)data = *(uint16_t*)data & (uint16_t)(~(1<<(uint16_t)_exppinname)); // set pin mask if (lvl) *(uint16_t*)data = *(uint16_t*)data | (uint16_t)(1<<(uint16_t)_exppinname); - _dev_i2c.i2c_write(data, _expdevaddr, GPSR_0_7, 2); + _dev_i2c->i2c_write(data, _expdevaddr, GPSR_0_7, 2); } /** @@ -147,7 +147,7 @@ } private: - DevI2C &_dev_i2c; + DevI2C *_dev_i2c; uint8_t _expdevaddr; exp_gpio_pin_name _exppinname; }; @@ -163,14 +163,14 @@ * @param[in] inpinname the desired input pin name to be created * @param[in] DevAddr the stmpe1600 I2C device addres (deft STMPE1600_DEF_DEVICE_ADDRESS) */ - STMPE1600DigiIn (DevI2C &i2c, exp_gpio_pin_name inpinname, uint8_t DevAddr=STMPE1600_DEF_DEVICE_ADDRESS): _dev_i2c(i2c), _expdevaddr(DevAddr), _exppinname(inpinname) + STMPE1600DigiIn (DevI2C &i2c, exp_gpio_pin_name inpinname, uint8_t DevAddr=STMPE1600_DEF_DEVICE_ADDRESS): _dev_i2c(&i2c), _expdevaddr(DevAddr), _exppinname(inpinname) { uint8_t data[2]; if (_exppinname == NOT_CON) return; /* set the _exppinname as input pin direction */ - _dev_i2c.i2c_read(data, _expdevaddr, GPDR_0_7, 2); + _dev_i2c->i2c_read(data, _expdevaddr, GPDR_0_7, 2); *(uint16_t*)data = *(uint16_t*)data & (uint16_t)(~(1<<(uint16_t) _exppinname)); // set gpio as in - _dev_i2c.i2c_write(data, _expdevaddr, GPDR_0_7, 2); + _dev_i2c->i2c_write(data, _expdevaddr, GPDR_0_7, 2); } /** @@ -184,7 +184,7 @@ } /* read the _exppinname */ - _dev_i2c.i2c_read(data, _expdevaddr, GPMR_0_7, 2); + _dev_i2c->i2c_read(data, _expdevaddr, GPMR_0_7, 2); *(uint16_t*)data = *(uint16_t*)data & (uint16_t)(1<<(uint16_t)_exppinname); // mask the in gpio if (data[0] || data[1]) { @@ -198,7 +198,7 @@ } private: - DevI2C &_dev_i2c; + DevI2C *_dev_i2c; uint8_t _expdevaddr; exp_gpio_pin_name _exppinname; }; @@ -215,9 +215,9 @@ * @param[in] &i2c device I2C to be used for communication * @param[in] DevAddr the stmpe1600 I2C device addres (deft STMPE1600_DEF_DEVICE_ADDRESS) */ - STMPE1600 (DevI2C &i2c, uint8_t DevAddr=STMPE1600_DEF_DEVICE_ADDRESS ) : _dev_i2c(i2c) + STMPE1600 (DevI2C &i2c, uint8_t DevAddr=STMPE1600_DEF_DEVICE_ADDRESS ) : _dev_i2c(&i2c) { - _dev_i2c = i2c; + _dev_i2c = &i2c; _expdevaddr = DevAddr; write_sys_ctrl (SOFT_RESET); @@ -233,7 +233,7 @@ */ void write_sys_ctrl (uint8_t data) // data = SOFT_RESET reset the device { - _dev_i2c.i2c_write((uint8_t*)SYS_CTRL, _expdevaddr, data, 1); + _dev_i2c->i2c_write((uint8_t*)SYS_CTRL, _expdevaddr, data, 1); } /** @@ -303,7 +303,7 @@ */ void read_16_bit_reg (uint8_t reg_16_addr, uint16_t *reg_16_data) { - _dev_i2c.i2c_read((uint8_t*)reg_16_data, _expdevaddr, reg_16_addr, 2); + _dev_i2c->i2c_read((uint8_t*)reg_16_data, _expdevaddr, reg_16_addr, 2); } /** @@ -313,11 +313,11 @@ */ void write_16_bit_reg (uint8_t reg_16_addr, uint16_t *reg_16_data) { - _dev_i2c.i2c_write((uint8_t*)reg_16_data, _expdevaddr, reg_16_addr, 2); + _dev_i2c->i2c_write((uint8_t*)reg_16_data, _expdevaddr, reg_16_addr, 2); } private: - DevI2C &_dev_i2c; + DevI2C *_dev_i2c; uint16_t _gpdro_15; // local copy of bit direction reg uint16_t _gpsro_15; // local copy of bit status reg uint8_t _expdevaddr; // expander device i2c addr
--- a/Components/VL6180X/VL6180X.cpp Mon Mar 13 19:08:10 2017 +0000 +++ b/Components/VL6180X/VL6180X.cpp Mon Aug 21 15:44:34 2017 +0000 @@ -2611,7 +2611,7 @@ { memcpy(tmp+sizeof(RegisterAddr), pBuffer, NumByteToWrite); } - ret = _dev_i2c.write(WriteDeviceAddr, (const char*)tmp, NumByteToWrite+sizeof(RegisterAddr), false); + ret = _dev_i2c->write(WriteDeviceAddr, (const char*)tmp, NumByteToWrite+sizeof(RegisterAddr), false); if(ret) return -1; @@ -2631,12 +2631,12 @@ *(((uint8_t*)&myRegisterAddrBE)+1) = (uint8_t)myRegisterAddr; /* Send 8 bits device address and 16 bits register address in BE format, with no STOP condition */ - ret = _dev_i2c.write(ReadDeviceAddr, (const char*)&myRegisterAddrBE, sizeof(RegisterAddr), true); + ret = _dev_i2c->write(ReadDeviceAddr, (const char*)&myRegisterAddrBE, sizeof(RegisterAddr), true); if(!ret) { ReadDeviceAddr|=0x001; /* Read data, with STOP condition */ - ret = _dev_i2c.read(ReadDeviceAddr, (char*)tmp, NumByteToRead, false); + ret = _dev_i2c->read(ReadDeviceAddr, (char*)tmp, NumByteToRead, false); } if(ret) return -1;
--- a/Components/VL6180X/VL6180X.h Mon Mar 13 19:08:10 2017 +0000 +++ b/Components/VL6180X/VL6180X.h Mon Aug 21 15:44:34 2017 +0000 @@ -130,7 +130,7 @@ * @param[in] &pin_gpio1 pin Mbed InterruptIn PinName to be used as component GPIO_1 INT * @param[in] DevAddr device address, 0x29 by default */ - VL6180X(DevI2C &i2c, DigitalOut &pin, PinName pin_gpio1, uint8_t DevAddr=DEFAULT_DEVICE_ADDRESS) : RangeSensor(), LightSensor(), _dev_i2c(i2c), _gpio0(&pin) + VL6180X(DevI2C &i2c, DigitalOut &pin, PinName pin_gpio1, uint8_t DevAddr=DEFAULT_DEVICE_ADDRESS) : RangeSensor(), LightSensor(), _dev_i2c(&i2c), _gpio0(&pin) { _my_device.I2cAddr=DevAddr; _my_device.Present=0; @@ -149,7 +149,7 @@ * @param[in] pin_gpio1 pin Mbed InterruptIn PinName to be used as component GPIO_1 INT * @param[in] device address, 0x29 by default */ - VL6180X(DevI2C &i2c, STMPE1600DigiOut &pin, PinName pin_gpio1, uint8_t DevAddr=DEFAULT_DEVICE_ADDRESS) : RangeSensor(), LightSensor(), _dev_i2c(i2c), _expgpio0(&pin) + VL6180X(DevI2C &i2c, STMPE1600DigiOut &pin, PinName pin_gpio1, uint8_t DevAddr=DEFAULT_DEVICE_ADDRESS) : RangeSensor(), LightSensor(), _dev_i2c(&i2c), _expgpio0(&pin) { _my_device.I2cAddr=DevAddr; _my_device.Present=0; @@ -1256,7 +1256,7 @@ int AlsGetThresholds(VL6180XDev_t dev, lux_t *low, lux_t *high); /* IO _device */ - DevI2C &_dev_i2c; + DevI2C *_dev_i2c; /* Digital out pin */ DigitalOut *_gpio0; /* GPIO expander */