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:
Gunar Schorcht 2017-11-03 14:12:41 +01:00
parent 718def4c51
commit a7714695a0

View file

@ -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);
int result;
int count = 10;
while (count-- && (result = i2c_slave_read(dev->bus, dev->addr, &reg, data, len)) == -EBUSY)
bme680_delay_ms (10);
int result = i2c_slave_read(dev->bus, dev->addr, &reg, data, len);
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);
int result;
int count = 10;
while (count-- && (result = i2c_slave_write(dev->bus, dev->addr, &reg, data, len)) == -EBUSY)
bme680_delay_ms (10);
int result = i2c_slave_write(dev->bus, dev->addr, &reg, data, len);
if (result)
{