BitManipulations.h File Reference
This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
Macros | |
#define | _BV(bit) (1 << (unsigned)(bit)) |
#define | bit(x) _BV(x) |
#define | setBits(x, y) ((x) |= (y)) |
#define | clearBits(x, y) ((x) &= (~(y))) |
#define | bitsSet(x, y) (((x) & (y)) == (y)) |
#define | bitsClear(x, y) (((x) & (y)) == 0) |
#define | bitRead(value, bit) (((value) >> (unsigned)(bit)) & 0x01) |
#define | bitSet(value, bit) ((value) |= (1UL << (unsigned)(bit))) |
#define | bitClear(value, bit) ((value) &= ~(1UL << (unsigned)(bit))) |
#define | bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit)) |
#define | _SFR_MEM_ADDR(sfr) ((uint32_t) &(sfr)) |
#define | _SFR_ADDR(sfr) _SFR_MEM_ADDR(sfr) |
#define | _MMIO_BYTE(mem_addr) (*(volatile uint8_t *)(mem_addr)) |
#define | _MMIO_WORD(mem_addr) (*(volatile uint16_t *)(mem_addr)) |
#define | _MMIO_DWORD(mem_addr) (*(volatile uint32_t *)(mem_addr)) |
#define | _SFR_BYTE(sfr) _MMIO_BYTE(_SFR_ADDR(sfr)) |
#define | _SFR_WORD(sfr) _MMIO_WORD(_SFR_ADDR(sfr)) |
#define | _SFR_DWORD(sfr) _MMIO_DWORD(_SFR_ADDR(sfr)) |
#define | _SFR_MEM8(mem_addr) _MMIO_BYTE(mem_addr) |
#define | _SFR_MEM16(mem_addr) _MMIO_WORD(mem_addr) |
#define | _SFR_MEM32(mem_addr) _MMIO_DWORD(mem_addr) |
#define | bit_is_set(sfr, bit) (_SFR_BYTE(sfr) & _BV(bit)) |
#define | bit_is_clear(sfr, bit) (!(_SFR_BYTE(sfr) & _BV(bit))) |
#define | loop_until_bit_is_set(sfr, bit) do { } while (bit_is_clear(sfr, bit)) |
#define | loop_until_bit_is_clear(sfr, bit) do { } while (bit_is_set(sfr, bit)) |
Macro Definition Documentation
◆ _BV
◆ _MMIO_BYTE
#define _MMIO_BYTE | ( | mem_addr | ) | (*(volatile uint8_t *)(mem_addr)) |
◆ _MMIO_DWORD
#define _MMIO_DWORD | ( | mem_addr | ) | (*(volatile uint32_t *)(mem_addr)) |
◆ _MMIO_WORD
#define _MMIO_WORD | ( | mem_addr | ) | (*(volatile uint16_t *)(mem_addr)) |
◆ _SFR_ADDR
#define _SFR_ADDR | ( | sfr | ) | _SFR_MEM_ADDR(sfr) |
◆ _SFR_BYTE
#define _SFR_BYTE | ( | sfr | ) | _MMIO_BYTE(_SFR_ADDR(sfr)) |
◆ _SFR_DWORD
#define _SFR_DWORD | ( | sfr | ) | _MMIO_DWORD(_SFR_ADDR(sfr)) |
◆ _SFR_MEM16
#define _SFR_MEM16 | ( | mem_addr | ) | _MMIO_WORD(mem_addr) |
◆ _SFR_MEM32
#define _SFR_MEM32 | ( | mem_addr | ) | _MMIO_DWORD(mem_addr) |
◆ _SFR_MEM8
#define _SFR_MEM8 | ( | mem_addr | ) | _MMIO_BYTE(mem_addr) |
◆ _SFR_MEM_ADDR
#define _SFR_MEM_ADDR | ( | sfr | ) | ((uint32_t) &(sfr)) |
◆ _SFR_WORD
#define _SFR_WORD | ( | sfr | ) | _MMIO_WORD(_SFR_ADDR(sfr)) |
◆ bit
#define bit | ( | x | ) | _BV(x) |
◆ bit_is_clear
◆ bit_is_set
◆ bitClear
#define bitClear | ( | value, | |
bit | |||
) | ((value) &= ~(1UL << (unsigned)(bit))) |
◆ bitRead
◆ bitsClear
#define bitsClear | ( | x, | |
y | |||
) | (((x) & (y)) == 0) |
◆ bitSet
#define bitSet | ( | value, | |
bit | |||
) | ((value) |= (1UL << (unsigned)(bit))) |
◆ bitsSet
#define bitsSet | ( | x, | |
y | |||
) | (((x) & (y)) == (y)) |
◆ bitWrite
◆ clearBits
#define clearBits | ( | x, | |
y | |||
) | ((x) &= (~(y))) |
◆ loop_until_bit_is_clear
#define loop_until_bit_is_clear | ( | sfr, | |
bit | |||
) | do { } while (bit_is_set(sfr, bit)) |
◆ loop_until_bit_is_set
#define loop_until_bit_is_set | ( | sfr, | |
bit | |||
) | do { } while (bit_is_clear(sfr, bit)) |
◆ setBits
#define setBits | ( | x, | |
y | |||
) | ((x) |= (y)) |