11#ifndef ARDUINO_I2C_DEVICE_H
12#define ARDUINO_I2C_DEVICE_H
59 int tx(
const uint8_t *data,
const uint16_t size,
const bool stop =
true );
67 int rx( uint8_t *data,
const uint16_t size );
76 int reg_w(
const uint8_t reg_adr,
const uint8_t *data,
const uint16_t size );
85 int reg_w(
const uint8_t reg_adr,
const uint8_t data );
94 int reg_r(
const uint8_t reg_adr, uint8_t *data,
const uint16_t size );
103 uint8_t
reg_r(
const uint8_t reg_adr );
110 void write_r8(
const uint8_t reg,
const uint8_t val );
119 void write_r16(
const uint8_t reg,
const uint16_t val );
126 uint8_t
read_r8(
const uint8_t reg );
135 uint16_t
read_r16(
const uint8_t reg );
145 void bit_op8(
const uint8_t reg,
const uint8_t mask,
const uint8_t value );
146 void bit_op16(
const uint8_t reg,
const uint16_t mask,
const uint16_t value );
153 static bool ping(
const uint8_t addr );
157 static void scan( TwoWire& target_i2c = Wire,
const uint8_t stop = 128 );
void write_r16(const uint8_t reg, const uint16_t val)
uint8_t read_r8(const uint8_t reg)
uint16_t read_r16(const uint8_t reg)
int reg_w(const uint8_t reg_adr, const uint8_t *data, const uint16_t size)
int rx(uint8_t *data, const uint16_t size)
void write_r8(const uint8_t reg, const uint8_t val)
int tx(const uint8_t *data, const uint16_t size, const bool stop=true)
void bit_op16(const uint8_t reg, const uint16_t mask, const uint16_t value)
static void scan(TwoWire &target_i2c=Wire, const uint8_t stop=128)
void bit_op8(const uint8_t reg, const uint8_t mask, const uint8_t value)
void repeated_start_enable(const bool en=true)
int reg_r(const uint8_t reg_adr, uint8_t *data, const uint16_t size)
static bool ping(const uint8_t addr)