Librairie adaptée au laboratoire 2
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:32055c2ddac6
- 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 */
