Library for use with VL53L1X, intended to represent the Proximity sensor expansion board with the same name.
Dependencies: VL53L1X_mbed
Dependents: HelloWorld_53L1A1 VL53L1A1_Simple_Ranging_With_One_Device VL53L1A1_Simple_Ranging_With_All_Devices VL53L1X_Ranging_With_Multiple_Devices_MbedOS ... more
Diff: Components/STMPE1600/stmpe1600_class.h
- Revision:
- 15:44e6c9013bff
- Parent:
- 14:8320b5ff96fa
diff -r 8320b5ff96fa -r 44e6c9013bff Components/STMPE1600/stmpe1600_class.h
--- a/Components/STMPE1600/stmpe1600_class.h Mon Aug 07 14:30:21 2017 +0000
+++ b/Components/STMPE1600/stmpe1600_class.h Tue Aug 08 14:41:03 2017 +0000
@@ -103,18 +103,18 @@
* @param[in] lvl the default ot pin level
*/
Stmpe1600DigiOut(DevI2C &i2c, ExpGpioPinName out_pin_name, uint8_t dev_addr = STMPE1600_DEF_DEVICE_ADDRESS,
- bool lvl = STMPE1600_DEF_DIGIOUT_LVL) : dev_i2c(i2c), exp_dev_addr(dev_addr), exp_pin_name(out_pin_name)
+ bool lvl = STMPE1600_DEF_DIGIOUT_LVL) : dev_i2c(&i2c), exp_dev_addr(dev_addr), exp_pin_name(out_pin_name)
{
uint8_t data[2];
if (exp_pin_name == NOT_CON)
return;
/* set the exp_pin_name as output */
- dev_i2c.i2c_read(data, exp_dev_addr, GPDR_0_7, 1);
- dev_i2c.i2c_read(&data[1], exp_dev_addr, GPDR_8_15, 1);
- * (uint16_t *) data = * (uint16_t *) data | (1 << (uint16_t) exp_pin_name); // set gpio as out
- dev_i2c.i2c_write(data, exp_dev_addr, GPDR_0_7, 1);
- dev_i2c.i2c_write(&data[1], exp_dev_addr, GPDR_8_15, 1);
+ dev_i2c->i2c_read(data, exp_dev_addr, GPDR_0_7, 1);
+ dev_i2c->i2c_read(&data[1], exp_dev_addr, GPDR_8_15, 1);
+ *(uint16_t *)data = *(uint16_t *)data | (1 << (uint16_t)exp_pin_name); // set gpio as out
+ dev_i2c->i2c_write(data, exp_dev_addr, GPDR_0_7, 1);
+ dev_i2c->i2c_write(&data[1], exp_dev_addr, GPDR_8_15, 1);
write(lvl);
}
@@ -130,11 +130,11 @@
if (exp_pin_name == NOT_CON)
return;
/* set the exp_pin_name state to lvl */
- dev_i2c.i2c_read(data, exp_dev_addr, GPSR_0_7, 2);
- * (uint16_t *) data = * (uint16_t *) data & (uint16_t)(~(1 << (uint16_t) exp_pin_name)); // set pin mask
+ dev_i2c->i2c_read(data, exp_dev_addr, GPSR_0_7, 2);
+ *(uint16_t *)data = *(uint16_t *)data & (uint16_t)(~(1 << (uint16_t)exp_pin_name)); // set pin mask
if (lvl)
- * (uint16_t *) data = * (uint16_t *) data | (uint16_t)(1 << (uint16_t) exp_pin_name);
- dev_i2c.i2c_write(data, exp_dev_addr, GPSR_0_7, 2);
+ *(uint16_t *)data = *(uint16_t *)data | (uint16_t)(1 << (uint16_t)exp_pin_name);
+ dev_i2c->i2c_write(data, exp_dev_addr, GPSR_0_7, 2);
}
/**
@@ -147,7 +147,7 @@
}
private:
- DevI2C &dev_i2c;
+ DevI2C *dev_i2c;
uint8_t exp_dev_addr;
ExpGpioPinName exp_pin_name;
};
@@ -164,7 +164,7 @@
* @param[in] DevAddr the stmpe1600 I2C device addres (deft STMPE1600_DEF_DEVICE_ADDRESS)
*/
Stmpe1600DigiIn(DevI2C &i2c, ExpGpioPinName in_pin_name,
- uint8_t dev_addr = STMPE1600_DEF_DEVICE_ADDRESS) : dev_i2c(i2c), exp_dev_addr(dev_addr),
+ uint8_t dev_addr = STMPE1600_DEF_DEVICE_ADDRESS) : dev_i2c(&i2c), exp_dev_addr(dev_addr),
exp_pin_name(in_pin_name)
{
uint8_t data[2];
@@ -172,9 +172,9 @@
if (exp_pin_name == NOT_CON)
return;
/* set the exp_pin_name as input pin direction */
- dev_i2c.i2c_read(data, exp_dev_addr, GPDR_0_7, 2);
- * (uint16_t *) data = * (uint16_t *) data & (uint16_t)(~(1 << (uint16_t) exp_pin_name)); // set gpio as in
- dev_i2c.i2c_write(data, exp_dev_addr, GPDR_0_7, 2);
+ dev_i2c->i2c_read(data, exp_dev_addr, GPDR_0_7, 2);
+ *(uint16_t *)data = *(uint16_t *)data & (uint16_t)(~(1 << (uint16_t)exp_pin_name)); // set gpio as in
+ dev_i2c->i2c_write(data, exp_dev_addr, GPDR_0_7, 2);
}
/**
@@ -188,8 +188,8 @@
if (exp_pin_name == NOT_CON)
return false;
/* read the exp_pin_name */
- dev_i2c.i2c_read(data, exp_dev_addr, GPMR_0_7, 2);
- * (uint16_t *) data = * (uint16_t *) data & (uint16_t)(1 << (uint16_t) exp_pin_name); // mask the in gpio
+ dev_i2c->i2c_read(data, exp_dev_addr, GPMR_0_7, 2);
+ *(uint16_t *)data = *(uint16_t *)data & (uint16_t)(1 << (uint16_t)exp_pin_name); // mask the in gpio
if (data[0] || data[1])
return true;
return false;
@@ -201,7 +201,7 @@
}
private:
- DevI2C &dev_i2c;
+ DevI2C *dev_i2c;
uint8_t exp_dev_addr;
ExpGpioPinName exp_pin_name;
};
@@ -217,9 +217,8 @@
* @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 dev_addr = STMPE1600_DEF_DEVICE_ADDRESS) : dev_i2c(i2c)
+ Stmpe1600(DevI2C &i2c, uint8_t dev_addr = STMPE1600_DEF_DEVICE_ADDRESS) : dev_i2c(&i2c)
{
- dev_i2c = i2c;
exp_dev_addr = dev_addr;
write_sys_ctrl(SOFT_RESET);
@@ -235,7 +234,7 @@
*/
void write_sys_ctrl(uint8_t data) // data = SOFT_RESET reset the device
{
- dev_i2c.i2c_write(&data, exp_dev_addr, SYS_CTRL, 1);
+ dev_i2c->i2c_write(&data, exp_dev_addr, SYS_CTRL, 1);
}
/**
@@ -306,7 +305,7 @@
*/
void read_16bit_reg(uint8_t reg16_addr, uint16_t *reg16_data)
{
- dev_i2c.i2c_read((uint8_t *) reg16_data, exp_dev_addr, reg16_addr, 2);
+ dev_i2c->i2c_read((uint8_t *) reg16_data, exp_dev_addr, reg16_addr, 2);
}
/**
@@ -316,11 +315,11 @@
*/
void write_16bit_reg(uint8_t reg16_addr, uint16_t *reg16_data)
{
- dev_i2c.i2c_write((uint8_t *) reg16_data, exp_dev_addr, reg16_addr, 2);
+ dev_i2c->i2c_write((uint8_t *) reg16_data, exp_dev_addr, reg16_addr, 2);
}
private:
- DevI2C &dev_i2c;
+ DevI2C *dev_i2c;
uint16_t gpdr0_15; // local copy of bit direction reg
uint16_t gpsr0_15; // local copy of bit status reg
uint8_t exp_dev_addr; // expander device i2c addr
X-NUCLEO-53L1A1 Ranging Sensor Expansion Board