X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fdrv%2Fpcf8574.c;h=5572e40ce3ce29803315fa3bfc3b45d541d7f8ed;hb=ec1f9b136d8b9ec44272ba7ab8ddc4b729589af2;hp=a9ed659e29191ecf32327a06f27e8bf7d634de54;hpb=830e0e12736975e4da0440cc225ff6a4e98d45ca;p=bertos.git diff --git a/bertos/drv/pcf8574.c b/bertos/drv/pcf8574.c index a9ed659e..5572e40c 100644 --- a/bertos/drv/pcf8574.c +++ b/bertos/drv/pcf8574.c @@ -40,11 +40,11 @@ * each pin as input or output, see datasheet on how this * is achieved. * - * \version $Id: ft245rl.c 22301 2008-09-09 16:53:17Z batt $ * \author Francesco Sacchi */ #include "pcf8574.h" +#include #include /** @@ -56,8 +56,13 @@ int pcf8574_get(Pcf8574 *pcf) if (!i2c_start_r(PCF8574ID | ((pcf->addr << 1) & 0xF7))) return EOF; - int data = i2c_get(false); + int data; + + if (!i2c_recv(&data, 1)) + data = EOF; + i2c_stop(); + return data; } @@ -67,7 +72,9 @@ int pcf8574_get(Pcf8574 *pcf) */ bool pcf8574_put(Pcf8574 *pcf, uint8_t data) { - return i2c_start_w(PCF8574ID | ((pcf->addr << 1) & 0xF7)) && i2c_put(data) && i2c_stop(); + bool res = i2c_start_w(PCF8574ID | ((pcf->addr << 1) & 0xF7)) && i2c_put(data); + i2c_stop(); + return res; } /**