/** * @brief This module manages effective C bit manipulation for AVR * @author Steve Karg * @date 2007 * @copyright SPDX-License-Identifier: MIT * @note From AVR035: Efficient C Coding for AVR */ #ifndef AVR035_H #define AVR035_H /* a=register, b=bit number to act upon */ #define BIT_SET(a, b) ((a) |= (1 << (b))) #define BIT_CLEAR(a, b) ((a) &= ~(1 << (b))) #define BIT_FLIP(a, b) ((a) ^= (1 << (b))) #define BIT_CHECK(a, b) ((a) & (1 << (b))) /* x=target variable, y=mask */ #define BITMASK_SET(x, y) ((x) |= (y)) #define BITMASK_CLEAR(x, y) ((x) &= (~(y))) #define BITMASK_FLIP(x, y) ((x) ^= (y)) #define BITMASK_CHECK(x, y) ((x) & (y)) #endif