INSAT Mini Project
Dependencies: ST_INTERFACES X_NUCLEO_COMMON
Fork of X_NUCLEO_6180XA1 by
Diff: Components/STMPE1600/STMPE1600.h
- Revision:
- 58:1e9a3a46f814
- Parent:
- 57:fa4c622b04a7
--- 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