Delaying and repeating i2c operation automatically when i2c interface is busy removed. User has to deal with concurrency using semaphores.
This commit is contained in:
parent
718def4c51
commit
a7714695a0
1 changed files with 2 additions and 10 deletions
|
|
@ -1425,11 +1425,7 @@ static bool bme680_i2c_read(bme680_sensor_t* dev, uint8_t reg, uint8_t *data, ui
|
||||||
|
|
||||||
debug_dev ("Read %d byte from i2c slave register %02x.", __FUNCTION__, dev, len, reg);
|
debug_dev ("Read %d byte from i2c slave register %02x.", __FUNCTION__, dev, len, reg);
|
||||||
|
|
||||||
int result;
|
int result = i2c_slave_read(dev->bus, dev->addr, ®, data, len);
|
||||||
int count = 10;
|
|
||||||
|
|
||||||
while (count-- && (result = i2c_slave_read(dev->bus, dev->addr, ®, data, len)) == -EBUSY)
|
|
||||||
bme680_delay_ms (10);
|
|
||||||
|
|
||||||
if (result)
|
if (result)
|
||||||
{
|
{
|
||||||
|
|
@ -1457,11 +1453,7 @@ static bool bme680_i2c_write(bme680_sensor_t* dev, uint8_t reg, uint8_t *data, u
|
||||||
|
|
||||||
debug_dev ("Write %d byte to i2c slave register %02x.", __FUNCTION__, dev, len, reg);
|
debug_dev ("Write %d byte to i2c slave register %02x.", __FUNCTION__, dev, len, reg);
|
||||||
|
|
||||||
int result;
|
int result = i2c_slave_write(dev->bus, dev->addr, ®, data, len);
|
||||||
int count = 10;
|
|
||||||
|
|
||||||
while (count-- && (result = i2c_slave_write(dev->bus, dev->addr, ®, data, len)) == -EBUSY)
|
|
||||||
bme680_delay_ms (10);
|
|
||||||
|
|
||||||
if (result)
|
if (result)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue