128x64 EasyC OLED Display 1.0.0
This is a library for Soldered OLED Display
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
Adafruit_BusIO_Register.h
Go to the documentation of this file.
3#include <Arduino.h>
4
5#if !defined(SPI_INTERFACES_COUNT) || (defined(SPI_INTERFACES_COUNT) && (SPI_INTERFACES_COUNT > 0))
6
7#ifndef Adafruit_BusIO_Register_h
8#define Adafruit_BusIO_Register_h
9
37
43{
44 public:
45 Adafruit_BusIO_Register(Adafruit_I2CDevice *i2cdevice, uint16_t reg_addr, uint8_t width = 1,
46 uint8_t byteorder = LSBFIRST, uint8_t address_width = 1);
47
49 uint8_t width = 1, uint8_t byteorder = LSBFIRST, uint8_t address_width = 1);
50
52 Adafruit_BusIO_SPIRegType type, uint16_t reg_addr, uint8_t width = 1,
53 uint8_t byteorder = LSBFIRST, uint8_t address_width = 1);
54
55 bool read(uint8_t *buffer, uint8_t len);
56 bool read(uint8_t *value);
57 bool read(uint16_t *value);
58 uint32_t read(void);
59 uint32_t readCached(void);
60 bool write(uint8_t *buffer, uint8_t len);
61 bool write(uint32_t value, uint8_t numbytes = 0);
62
63 uint8_t width(void);
64
65 void setWidth(uint8_t width);
66 void setAddress(uint16_t address);
67 void setAddressWidth(uint16_t address_width);
68
69 void print(Stream *s = &Serial);
70 void println(Stream *s = &Serial);
71
72 private:
76 uint16_t _address;
78 uint8_t _buffer[4]; // we wont support anything larger than uint32 for
79 // non-buffered read
80 uint32_t _cached = 0;
81};
82
88{
89 public:
90 Adafruit_BusIO_RegisterBits(Adafruit_BusIO_Register *reg, uint8_t bits, uint8_t shift);
91 bool write(uint32_t value);
92 uint32_t read(void);
93
94 private:
96 uint8_t _bits, _shift;
97};
98
99#endif // BusIO_Register_h
100
101#endif // SPI exists
enum _Adafruit_BusIO_SPIRegType Adafruit_BusIO_SPIRegType
_Adafruit_BusIO_SPIRegType
Definition Adafruit_BusIO_Register.h:11
@ ADDRESSED_OPCODE_BIT0_LOW_TO_WRITE
Definition Adafruit_BusIO_Register.h:34
@ AD8_HIGH_TOREAD_AD7_HIGH_TOINC
Definition Adafruit_BusIO_Register.h:19
@ ADDRBIT8_HIGH_TOREAD
Definition Adafruit_BusIO_Register.h:12
@ ADDRBIT8_HIGH_TOWRITE
Definition Adafruit_BusIO_Register.h:27
The class which defines a slice of bits from within a device register (a location to read/write data ...
Definition Adafruit_BusIO_Register.h:88
Adafruit_BusIO_RegisterBits(Adafruit_BusIO_Register *reg, uint8_t bits, uint8_t shift)
Create a slice of the register that we can address without touching other bits.
Definition Adafruit_BusIO_Register.cpp:329
uint32_t read(void)
Read 4 bytes of data from the register.
Definition Adafruit_BusIO_Register.cpp:340
bool write(uint32_t value)
Write 4 bytes of data to the register.
Definition Adafruit_BusIO_Register.cpp:353
Adafruit_BusIO_Register * _register
Definition Adafruit_BusIO_Register.h:95
uint8_t _shift
Definition Adafruit_BusIO_Register.h:96
uint8_t _bits
Definition Adafruit_BusIO_Register.h:96
The class which defines a device register (a location to read/write data from)
Definition Adafruit_BusIO_Register.h:43
void setAddress(uint16_t address)
Set register address.
Definition Adafruit_BusIO_Register.cpp:390
uint8_t _byteorder
Definition Adafruit_BusIO_Register.h:77
void setAddressWidth(uint16_t address_width)
Set the width of register address.
Definition Adafruit_BusIO_Register.cpp:399
uint8_t _width
Definition Adafruit_BusIO_Register.h:77
void setWidth(uint8_t width)
Set the default width of data.
Definition Adafruit_BusIO_Register.cpp:381
uint32_t read(void)
Read data from the register location. This does not do any error checking!
Definition Adafruit_BusIO_Register.cpp:176
uint32_t _cached
Definition Adafruit_BusIO_Register.h:80
Adafruit_I2CDevice * _i2cdevice
Definition Adafruit_BusIO_Register.h:73
Adafruit_BusIO_Register(Adafruit_I2CDevice *i2cdevice, uint16_t reg_addr, uint8_t width=1, uint8_t byteorder=LSBFIRST, uint8_t address_width=1)
Create a register we access over an I2C Device (which defines the bus and address)
Definition Adafruit_BusIO_Register.cpp:17
uint32_t readCached(void)
Read cached data from last time we wrote to this register.
Definition Adafruit_BusIO_Register.cpp:205
Adafruit_SPIDevice * _spidevice
Definition Adafruit_BusIO_Register.h:74
bool write(uint8_t *buffer, uint8_t len)
Write a buffer of data to the register location.
Definition Adafruit_BusIO_Register.cpp:93
uint8_t _buffer[4]
Definition Adafruit_BusIO_Register.h:78
Adafruit_BusIO_SPIRegType _spiregtype
Definition Adafruit_BusIO_Register.h:75
void print(Stream *s=&Serial)
Pretty printer for this register.
Definition Adafruit_BusIO_Register.cpp:305
uint8_t width(void)
The width of the register data, helpful for doing calculations.
Definition Adafruit_BusIO_Register.cpp:372
void println(Stream *s=&Serial)
Pretty printer for this register.
Definition Adafruit_BusIO_Register.cpp:316
uint16_t _address
Definition Adafruit_BusIO_Register.h:76
uint8_t _addrwidth
Definition Adafruit_BusIO_Register.h:77
Definition Adafruit_I2CDevice.h:7
Definition Adafruit_SPIDevice.h:64