17 inline bool read(uint8_t reg, uint8_t &value)
19 return (bus.read(reg, &value, 1) == 0);
23 inline bool read(uint8_t reg, uint16_t &value)
26 if (bus.read(reg, data, 2) != 0)
28 value = (data[0] << 8) | data[1];
33 inline bool read(uint8_t reg, uint8_t *data, uint32_t len)
35 return (bus.read(reg, data, len) == 0);
39 inline bool write(uint8_t reg, uint8_t value)
41 return (bus.write(reg, &value, 1) == 0);
45 inline bool write(uint8_t reg, uint16_t value)
47 uint8_t data[2] = {(uint8_t)(value >> 8), (uint8_t)(value & 0xFF)};
48 return (bus.write(reg, data, 2) == 0);
52 inline bool write(uint8_t reg,
const uint8_t *data, uint32_t len)
54 return (bus.write(reg, data, len) == 0);
60 bool readBits(uint8_t reg, uint8_t pos, uint8_t len, uint8_t &value)
62 if (len == 0 || len > 8 || (pos + len) > 8)
66 if (!
read(reg, reg_val))
69 uint8_t mask = ((uint8_t)1 << len) - 1;
71 value = (reg_val >> pos) & mask;
78 bool readBits(uint8_t reg, uint8_t pos, uint8_t len, uint16_t &value)
80 if (len == 0 || len > 16 || (pos + len) > 16)
84 if (!
read(reg, reg_val))
87 uint16_t mask = ((uint16_t)1 << len) - 1;
89 value = (reg_val >> pos) & mask;
98 bool writeBits(uint8_t reg, uint8_t pos, uint8_t len, uint8_t value)
100 if (len == 0 || len > 8 || (pos + len) > 8)
104 if (!
read(reg, reg_val))
107 uint8_t mask = ((uint8_t)1 << len) - 1;
109 reg_val &= ~(mask << pos);
110 reg_val |= (value & mask) << pos;
112 return write(reg, reg_val);
120 bool writeBits(uint8_t reg, uint8_t pos, uint8_t len, uint16_t value)
122 if (len == 0 || len > 16 || (pos + len) > 16)
126 if (!
read(reg, reg_val))
129 uint16_t mask = ((uint16_t)1 << len) - 1;
131 reg_val &= ~(mask << pos);
132 reg_val |= (value & mask) << pos;
134 return write(reg, reg_val);
137 bool readBit(uint8_t reg, uint8_t pos, uint8_t &value)
139 return readBits(reg, pos, 1, value);
142 bool readBit(uint8_t reg, uint8_t pos, uint16_t &value)
144 return readBits(reg, pos, 1, value);
147 bool writeBit(uint8_t reg, uint8_t pos, uint8_t value)
149 return writeBits(reg, pos, 1, (uint8_t)value );
151 bool writeBit(uint8_t reg, uint8_t pos, uint16_t value)
bool read(uint8_t reg, uint16_t &value)
bool readBit(uint8_t reg, uint8_t pos, uint8_t &value)
bool readBits(uint8_t reg, uint8_t pos, uint8_t len, uint16_t &value)
bool readBit(uint8_t reg, uint8_t pos, uint16_t &value)
bool writeBit(uint8_t reg, uint8_t pos, uint16_t value)
bool read(uint8_t reg, uint8_t *data, uint32_t len)
bool writeBits(uint8_t reg, uint8_t pos, uint8_t len, uint8_t value)
bool write(uint8_t reg, const uint8_t *data, uint32_t len)
bool read(uint8_t reg, uint8_t &value)
bool write(uint8_t reg, uint8_t value)
bool write(uint8_t reg, uint16_t value)
bool writeBit(uint8_t reg, uint8_t pos, uint8_t value)
bool readBits(uint8_t reg, uint8_t pos, uint8_t len, uint8_t &value)
bool writeBits(uint8_t reg, uint8_t pos, uint8_t len, uint16_t value)