embclib  0.1
regctrl.h
1 
21 #ifndef REGCTRL_4f297a88_eb33_11e9_bd8a_705a0f25cb51
22 #define REGCTRL_4f297a88_eb33_11e9_bd8a_705a0f25cb51
23 
24 #ifdef __cplusplus
25  extern "C" {
26 #endif
27 
28 #define __REGCTRL_VERSION (0x0001u)
29 
30 #define BIT_Mask(bitpos) (1 << (bitpos))
31 #define BIT_MaskFill(bitpos) (BIT_Mask((bitpos)) - 1)
32 
33 #define BIT_Set(reg, bitpos) \
34  ((reg) |= BIT_Mask((bitpos)))
35 
36 #define BIT_Clear(reg, bitpos) \
37  ((reg) &= ~BIT_Mask((bitpos)))
38 
39 #define BIT_Read(reg, bitpos) \
40  (((reg) >> (bitpos)) & 0x1U)
41 
42 #define BIT_Toggle(reg, bitpos) \
43  ((reg) ^= BIT_Mask((bitpos)))
44 
45 #define REG_Clear(reg) \
46  ((reg) = (0x0))
47 
48 #define REG_Write(reg, val) \
49  ((reg) = (val))
50 
51 #define REG_Read(reg) ((reg))
52 
53 #define REG_Modify(reg, setmask, clearmask) \
54 REG_Write((reg), (((REG_Read(reg)) & (~(clearmask))) | (setmask)))
55 
56 #define REG_Cut(reg, bitpos, len) \
57  (((reg) >> (bitpos)) & BIT_MaskFill((len)))
58 
59 #define REG_Shift(val, bitpos) \
60  ( (val) << (bitpos))
61 
62 #define REG_RightShift(val, bitpos) \
63  ((val) >> (bitpos))
64 
65 #define BIT_IsSet(reg, bitpos) \
66  (BIT_Read((reg), (bitpos)))
67 
68 #define BIT_IsClear(reg, bitpos) \
69  (BIT_Read((reg), (bitpos)) == 0x0U)
70 
71 #define BIT_IsAllSet(reg, mask) \
72  (((reg) & (mask)) == (mask))
73 
74 #define BIT_IsAnySet(reg, mask) \
75  (((reg) & (mask)) != 0x0U)
76 
77 #ifdef __cplusplus
78 }
79 #endif
80 
81 #endif /* REGCTRL_4f297a88_eb33_11e9_bd8a_705a0f25cb51 */