I2C_device_Arduino 1.0.1
An I²C utility class for Arduino
Loading...
Searching...
No Matches
I2C_device.h
Go to the documentation of this file.
1
11#ifndef ARDUINO_I2C_DEVICE_H
12#define ARDUINO_I2C_DEVICE_H
13
14#include <Arduino.h>
15#include <stdint.h>
16#include <Wire.h>
17
19{
20public:
26 I2C_device( uint8_t i2c_address, bool repeated_start_enable = true );
27
34 I2C_device( TwoWire& wire, uint8_t i2c_address, bool repeated_start_enable = true );
35
39
44 void repeated_start_enable( bool en = true );
45
50 bool ping( void );
51
59 int tx( uint8_t *data, uint16_t size, bool stop = true );
60
67 int rx( uint8_t *data, uint16_t size );
68
76 int reg_w( uint8_t reg_adr, uint8_t *data, uint16_t size );
77
85 int reg_w( uint8_t reg_adr, uint8_t data );
86
94 int reg_r( uint8_t reg_adr, uint8_t *data, uint16_t size );
95
101 uint8_t reg_r( uint8_t reg_adr );
102
108 void write_r8( uint8_t reg, uint8_t val );
109
117 void write_r16( uint8_t reg, uint16_t val );
118
124 uint8_t read_r8( uint8_t reg );
125
133 uint16_t read_r16( uint8_t reg );
134
143 void bit_op8( uint8_t reg, uint8_t mask, uint8_t value );
144 void bit_op16( uint8_t reg, uint16_t mask, uint16_t value );
145
151 static bool ping( uint8_t addr );
152
155 static void scan( TwoWire& target_i2c = Wire, uint8_t stop = 128 );
156
157private:
158 TwoWire& i2c;
159 uint8_t i2c_addr;
160 bool rs_dis;
161};
162
163#endif // ARDUINO_I2C_DEVICE_H
bool ping(void)
int rx(uint8_t *data, uint16_t size)
uint8_t read_r8(uint8_t reg)
void write_r8(uint8_t reg, uint8_t val)
void bit_op8(uint8_t reg, uint8_t mask, uint8_t value)
int tx(uint8_t *data, uint16_t size, bool stop=true)
int reg_w(uint8_t reg_adr, uint8_t *data, uint16_t size)
static void scan(TwoWire &target_i2c=Wire, uint8_t stop=128)
TwoWire & i2c
Definition I2C_device.h:158
static bool ping(uint8_t addr)
uint16_t read_r16(uint8_t reg)
void write_r16(uint8_t reg, uint16_t val)
void repeated_start_enable(bool en=true)
int reg_r(uint8_t reg_adr, uint8_t *data, uint16_t size)
void bit_op16(uint8_t reg, uint16_t mask, uint16_t value)
uint8_t i2c_addr
Definition I2C_device.h:159