Included return value of I2C calls
This commit is contained in:
@@ -23,7 +23,6 @@
|
||||
*/
|
||||
|
||||
#include "watch_i2c.h"
|
||||
#include "i2c.h"
|
||||
|
||||
#ifdef I2C_SERCOM
|
||||
|
||||
@@ -38,27 +37,31 @@ void watch_disable_i2c(void) {
|
||||
i2c_disable();
|
||||
}
|
||||
|
||||
void watch_i2c_send(int16_t addr, uint8_t *buf, uint16_t length) {
|
||||
i2c_write(addr, buf, length);
|
||||
i2c_result_t watch_i2c_send(int16_t addr, uint8_t *buf, uint16_t length) {
|
||||
return i2c_write(addr, buf, length);
|
||||
}
|
||||
|
||||
void watch_i2c_receive(int16_t addr, uint8_t *buf, uint16_t length) {
|
||||
i2c_read(addr, buf, length);
|
||||
i2c_result_t watch_i2c_receive(int16_t addr, uint8_t *buf, uint16_t length) {
|
||||
return i2c_read(addr, buf, length);
|
||||
}
|
||||
|
||||
void watch_i2c_write8(int16_t addr, uint8_t reg, uint8_t data) {
|
||||
i2c_result_t watch_i2c_write8(int16_t addr, uint8_t reg, uint8_t data) {
|
||||
uint8_t buf[2];
|
||||
buf[0] = reg;
|
||||
buf[1] = data;
|
||||
|
||||
watch_i2c_send(addr, (uint8_t *)&buf, 2);
|
||||
return watch_i2c_send(addr, (uint8_t *)&buf, 2);
|
||||
}
|
||||
|
||||
uint8_t watch_i2c_read8(int16_t addr, uint8_t reg) {
|
||||
uint8_t data;
|
||||
|
||||
watch_i2c_send(addr, (uint8_t *)®, 1);
|
||||
watch_i2c_receive(addr, (uint8_t *)&data, 1);
|
||||
if (watch_i2c_send(addr, (uint8_t *)®, 1) != I2C_RESULT_SUCCESS) {
|
||||
return 0;
|
||||
}
|
||||
if (watch_i2c_receive(addr, (uint8_t *)&data, 1) != I2C_RESULT_SUCCESS) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
@@ -66,9 +69,12 @@ uint8_t watch_i2c_read8(int16_t addr, uint8_t reg) {
|
||||
uint16_t watch_i2c_read16(int16_t addr, uint8_t reg) {
|
||||
uint16_t data;
|
||||
|
||||
watch_i2c_send(addr, (uint8_t *)®, 1);
|
||||
watch_i2c_receive(addr, (uint8_t *)&data, 2);
|
||||
|
||||
if (watch_i2c_send(addr, (uint8_t *)®, 1) != I2C_RESULT_SUCCESS) {
|
||||
return 0;
|
||||
}
|
||||
if (watch_i2c_receive(addr, (uint8_t *)&data, 2) != I2C_RESULT_SUCCESS) {
|
||||
return 0;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
@@ -76,18 +82,24 @@ uint32_t watch_i2c_read24(int16_t addr, uint8_t reg) {
|
||||
uint32_t data;
|
||||
data = 0;
|
||||
|
||||
watch_i2c_send(addr, (uint8_t *)®, 1);
|
||||
watch_i2c_receive(addr, (uint8_t *)&data, 3);
|
||||
|
||||
if (watch_i2c_send(addr, (uint8_t *)®, 1) != I2C_RESULT_SUCCESS) {
|
||||
return 0;
|
||||
}
|
||||
if (watch_i2c_receive(addr, (uint8_t *)&data, 3) != I2C_RESULT_SUCCESS) {
|
||||
return 0;
|
||||
}
|
||||
return data << 8;
|
||||
}
|
||||
|
||||
uint32_t watch_i2c_read32(int16_t addr, uint8_t reg) {
|
||||
uint32_t data;
|
||||
|
||||
watch_i2c_send(addr, (uint8_t *)®, 1);
|
||||
watch_i2c_receive(addr, (uint8_t *)&data, 4);
|
||||
|
||||
if (watch_i2c_send(addr, (uint8_t *)®, 1) != I2C_RESULT_SUCCESS) {
|
||||
return 0;
|
||||
}
|
||||
if (watch_i2c_receive(addr, (uint8_t *)&data, 4) != I2C_RESULT_SUCCESS) {
|
||||
return 0;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user