Go to the documentation of this file. 10 #define _BV(bit) (1 << (unsigned)(bit)) 13 #define setBits(x, y) ((x) |= (y)) 14 #define clearBits(x, y) ((x) &= (~(y))) 15 #define bitsSet(x, y) (((x) & (y)) == (y)) 16 #define bitsClear(x, y) (((x) & (y)) == 0) 18 #define bitRead(value, bit) (((value) >> (unsigned)(bit)) & 0x01) 19 #define bitSet(value, bit) ((value) |= (1UL << (unsigned)(bit))) 20 #define bitClear(value, bit) ((value) &= ~(1UL << (unsigned)(bit))) 21 #define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit)) 23 #define _SFR_MEM_ADDR(sfr) ((uint32_t) &(sfr)) // 32 Bit! 24 #define _SFR_ADDR(sfr) _SFR_MEM_ADDR(sfr) 26 #define _MMIO_BYTE(mem_addr) (*(volatile uint8_t *)(mem_addr)) 27 #define _MMIO_WORD(mem_addr) (*(volatile uint16_t *)(mem_addr)) 28 #define _MMIO_DWORD(mem_addr) (*(volatile uint32_t *)(mem_addr)) 31 #define _SFR_BYTE(sfr) _MMIO_BYTE(_SFR_ADDR(sfr)) 33 #define _SFR_WORD(sfr) _MMIO_WORD(_SFR_ADDR(sfr)) 34 #define _SFR_DWORD(sfr) _MMIO_DWORD(_SFR_ADDR(sfr)) 36 #define _SFR_MEM8(mem_addr) _MMIO_BYTE(mem_addr) 37 #define _SFR_MEM16(mem_addr) _MMIO_WORD(mem_addr) 38 #define _SFR_MEM32(mem_addr) _MMIO_DWORD(mem_addr) 40 #define bit_is_set(sfr, bit) (_SFR_BYTE(sfr) & _BV(bit)) 41 #define bit_is_clear(sfr, bit) (!(_SFR_BYTE(sfr) & _BV(bit))) 42 #define loop_until_bit_is_set(sfr, bit) do { } while (bit_is_clear(sfr, bit)) 43 #define loop_until_bit_is_clear(sfr, bit) do { } while (bit_is_set(sfr, bit))