fixed? mask calculation for RegisterBits
This commit is contained in:
parent
a403ba0dab
commit
93a03b19f4
|
|
@ -229,7 +229,7 @@ Adafruit_BusIO_RegisterBits::Adafruit_BusIO_RegisterBits(Adafruit_BusIO_Register
|
||||||
uint32_t Adafruit_BusIO_RegisterBits::read(void) {
|
uint32_t Adafruit_BusIO_RegisterBits::read(void) {
|
||||||
uint32_t val = _register->read();
|
uint32_t val = _register->read();
|
||||||
val >>= _shift;
|
val >>= _shift;
|
||||||
return val & ((1 << (_bits+1)) - 1);
|
return val & ((1 << (_bits)) - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -241,7 +241,7 @@ void Adafruit_BusIO_RegisterBits::write(uint32_t data) {
|
||||||
uint32_t val = _register->read();
|
uint32_t val = _register->read();
|
||||||
|
|
||||||
// mask off the data before writing
|
// mask off the data before writing
|
||||||
uint32_t mask = (1 << (_bits+1)) - 1;
|
uint32_t mask = (1 << (_bits)) - 1;
|
||||||
data &= mask;
|
data &= mask;
|
||||||
|
|
||||||
mask <<= _shift;
|
mask <<= _shift;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue