From 99c59c226620842dfd19ca979abead6d519f2d02 Mon Sep 17 00:00:00 2001 From: arwa Date: Sun, 15 Jun 2025 00:55:18 -0400 Subject: [PATCH] optmized nmbs_bitfield_write --- nanomodbus.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nanomodbus.h b/nanomodbus.h index ca8b2c6..b5d1489 100644 --- a/nanomodbus.h +++ b/nanomodbus.h @@ -92,17 +92,17 @@ typedef uint8_t nmbs_bitfield_256[32]; /** * Read a bit from the nmbs_bitfield bf at position b */ -#define nmbs_bitfield_read(bf, b) ((bool) ((bf)[(b) >> 3] & (0x1 << ((b) & 7)))) +#define nmbs_bitfield_read(bf, b) ((bool) ((bf)[(b) >> 3] & (0x1 << ((b) & (8 - 1))))) /** * Set a bit of the nmbs_bitfield bf at position b */ -#define nmbs_bitfield_set(bf, b) (((bf)[(b) >> 3]) = (((bf)[(b) >> 3]) | (0x1 << ((b) & 7)))) +#define nmbs_bitfield_set(bf, b) (((bf)[(b) >> 3]) = (((bf)[(b) >> 3]) | (0x1 << ((b) & (8 - 1))))) /** * Reset a bit of the nmbs_bitfield bf at position b */ -#define nmbs_bitfield_unset(bf, b) (((bf)[(b) >> 3]) = (((bf)[(b) >> 3]) & ~(0x1 << ((b) & 7)))) +#define nmbs_bitfield_unset(bf, b) (((bf)[(b) >> 3]) = (((bf)[(b) >> 3]) & ~(0x1 << ((b) & (8 - 1))))) /** * Write value v to the nmbs_bitfield bf at position b