I2C_device_Arduino
1.2.0
An I²C utility class for Arduino
Toggle main menu visibility
Loading...
Searching...
No Matches
src
I2C_device.h
Go to the documentation of this file.
1
10
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
#include <SPI.h>
18
19
class
I2C_device
20
{
21
public
:
27
I2C_device
( uint8_t i2c_address,
bool
repeated_start_enable
=
true
);
28
35
I2C_device
( TwoWire& wire, uint8_t i2c_address,
bool
repeated_start_enable
=
true
);
36
39
~I2C_device
();
40
45
void
repeated_start_enable
(
bool
en =
true
);
46
51
bool
ping
(
void
);
52
60
int
tx
(
const
uint8_t *data, uint16_t size,
bool
stop =
true
);
61
69
int
rx
( uint8_t *data, uint16_t size,
bool
stop =
true
);
70
79
virtual
int
reg_w
( uint8_t reg_adr,
const
uint8_t *data, uint16_t size,
bool
stop =
true
);
80
88
virtual
int
reg_w
( uint8_t reg_adr, uint8_t data,
bool
stop =
true
);
89
98
virtual
int
reg_r
( uint8_t reg_adr, uint8_t *data, uint16_t size,
bool
stop =
true
);
99
106
virtual
uint8_t
reg_r
( uint8_t reg_adr,
bool
stop =
true
);
107
114
void
write_r8
( uint8_t reg, uint8_t val,
bool
stop =
true
);
115
124
void
write_r16
( uint8_t reg, uint16_t val,
bool
stop =
true
);
125
132
uint8_t
read_r8
( uint8_t reg,
bool
stop =
true
);
133
142
uint16_t
read_r16
( uint8_t reg,
bool
stop =
true
);
143
152
void
bit_op8
( uint8_t reg, uint8_t mask, uint8_t value );
153
162
void
bit_op16
( uint8_t reg, uint16_t mask, uint16_t value );
163
169
static
bool
ping
( uint8_t addr );
170
176
static
void
scan
( TwoWire& target_i2c = Wire, uint8_t stop = 128 );
177
178
protected
:
179
void
txrx
(
const
uint8_t *w_data, uint8_t *r_data, uint16_t size );
180
uint8_t
i2c_addr
;
181
SPISettings
spi_setting
;
182
183
private
:
184
TwoWire&
i2c
;
185
bool
rs_dis
;
186
};
187
188
#endif
// ARDUINO_I2C_DEVICE_H
I2C_device::rx
int rx(uint8_t *data, uint16_t size, bool stop=true)
Definition
I2C_device.cpp:75
I2C_device::ping
bool ping(void)
Definition
I2C_device.cpp:20
I2C_device::~I2C_device
~I2C_device()
Definition
I2C_device.cpp:11
I2C_device::spi_setting
SPISettings spi_setting
Definition
I2C_device.h:181
I2C_device::read_r8
uint8_t read_r8(uint8_t reg, bool stop=true)
Definition
I2C_device.cpp:141
I2C_device::rs_dis
bool rs_dis
Definition
I2C_device.h:185
I2C_device::tx
int tx(const uint8_t *data, uint16_t size, bool stop=true)
Definition
I2C_device.cpp:63
I2C_device::write_r8
void write_r8(uint8_t reg, uint8_t val, bool stop=true)
Definition
I2C_device.cpp:126
I2C_device::bit_op8
void bit_op8(uint8_t reg, uint8_t mask, uint8_t value)
Definition
I2C_device.cpp:155
I2C_device::scan
static void scan(TwoWire &target_i2c=Wire, uint8_t stop=128)
Definition
I2C_device.cpp:26
I2C_device::i2c
TwoWire & i2c
Definition
I2C_device.h:184
I2C_device::ping
static bool ping(uint8_t addr)
I2C_device::write_r16
void write_r16(uint8_t reg, uint16_t val, bool stop=true)
Definition
I2C_device.cpp:131
I2C_device::reg_r
virtual int reg_r(uint8_t reg_adr, uint8_t *data, uint16_t size, bool stop=true)
Definition
I2C_device.cpp:111
I2C_device::reg_w
virtual int reg_w(uint8_t reg_adr, const uint8_t *data, uint16_t size, bool stop=true)
Definition
I2C_device.cpp:90
I2C_device::txrx
void txrx(const uint8_t *w_data, uint8_t *r_data, uint16_t size)
Definition
I2C_device.cpp:175
I2C_device::repeated_start_enable
void repeated_start_enable(bool en=true)
Definition
I2C_device.cpp:15
I2C_device::bit_op16
void bit_op16(uint8_t reg, uint16_t mask, uint16_t value)
Definition
I2C_device.cpp:165
I2C_device::i2c_addr
uint8_t i2c_addr
Definition
I2C_device.h:180
I2C_device::I2C_device
I2C_device(uint8_t i2c_address, bool repeated_start_enable=true)
Definition
I2C_device.cpp:3
I2C_device::read_r16
uint16_t read_r16(uint8_t reg, bool stop=true)
Definition
I2C_device.cpp:146
Generated by
1.17.0