I2C_device_Arduino 0.2
An I²C utility class for Arduino
Loading...
Searching...
No Matches
I2C_device.h
Go to the documentation of this file.
1
13#ifndef ARDUINO_I2C_DEVICE_H
14#define ARDUINO_I2C_DEVICE_H
15
16#include <Arduino.h>
17#include <stdint.h>
18#include <Wire.h>
19
21{
22public:
28 I2C_device( uint8_t i2c_address, bool repeated_start_enable = true );
29
33
38 void repeated_start_enable( bool en = true );
39
47 uint16_t tx( uint8_t *data, uint16_t size, bool stop = true );
48
55 uint16_t rx( uint8_t *data, uint16_t size );
56
64 uint16_t reg_w( uint8_t reg_adr, uint8_t *data, uint16_t size );
65
73 uint16_t reg_w( uint8_t reg_adr, uint8_t data );
74
82 uint16_t reg_r( uint8_t reg_adr, uint8_t *data, uint16_t size );
83
89 uint8_t reg_r( uint8_t reg_adr );
90
96 void write_r8( uint8_t reg, uint8_t val );
97
105 void write_r16( uint8_t reg, uint16_t val );
106
112 uint8_t read_r8( uint8_t reg );
113
121 uint16_t read_r16( uint8_t reg );
122
131 void bit_op8( uint8_t reg, uint8_t mask, uint8_t value );
132 void bit_op16( uint8_t reg, uint16_t mask, uint16_t value );
133
139 static bool ping( uint8_t addr );
140
143 static void scan( void );
144
145private:
146 uint8_t i2c_addr;
147 bool rs_dis;
148};
149
150#endif // ARDUINO_I2C_DEVICE_H
uint16_t tx(uint8_t *data, uint16_t size, bool stop=true)
Definition: I2C_device.cpp:55
uint8_t read_r8(uint8_t reg)
Definition: I2C_device.cpp:133
bool rs_dis
Definition: I2C_device.h:147
void write_r8(uint8_t reg, uint8_t val)
Definition: I2C_device.cpp:118
static bool ping(uint8_t addr)
Definition: I2C_device.cpp:18
void bit_op8(uint8_t reg, uint8_t mask, uint8_t value)
Definition: I2C_device.cpp:147
static void scan(void)
Definition: I2C_device.cpp:24
uint16_t rx(uint8_t *data, uint16_t size)
Definition: I2C_device.cpp:67
uint16_t read_r16(uint8_t reg)
Definition: I2C_device.cpp:138
void write_r16(uint8_t reg, uint16_t val)
Definition: I2C_device.cpp:123
void repeated_start_enable(bool en=true)
Definition: I2C_device.cpp:13
void bit_op16(uint8_t reg, uint16_t mask, uint16_t value)
Definition: I2C_device.cpp:157
uint8_t i2c_addr
Definition: I2C_device.h:146
uint16_t reg_r(uint8_t reg_adr, uint8_t *data, uint16_t size)
Definition: I2C_device.cpp:103
uint16_t reg_w(uint8_t reg_adr, uint8_t *data, uint16_t size)
Definition: I2C_device.cpp:82