From 93a03b19f460b3e04285b452586c33e7a1884422 Mon Sep 17 00:00:00 2001 From: siddacious Date: Fri, 11 Oct 2019 19:09:25 -0700 Subject: [PATCH] fixed? mask calculation for RegisterBits --- Adafruit_BusIO_Register.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Adafruit_BusIO_Register.cpp b/Adafruit_BusIO_Register.cpp index b31ac19..2c2b22e 100644 --- a/Adafruit_BusIO_Register.cpp +++ b/Adafruit_BusIO_Register.cpp @@ -229,7 +229,7 @@ Adafruit_BusIO_RegisterBits::Adafruit_BusIO_RegisterBits(Adafruit_BusIO_Register uint32_t Adafruit_BusIO_RegisterBits::read(void) { uint32_t val = _register->read(); 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(); // mask off the data before writing - uint32_t mask = (1 << (_bits+1)) - 1; + uint32_t mask = (1 << (_bits)) - 1; data &= mask; mask <<= _shift;