bitfield.h

来自「自己设计的5路定时器!用于公司。内附电路图(DXP)」· C头文件 代码 · 共 37 行

H
37
字号
#ifndef __BITFIELD_H__
#define __BITFIELD_H__ 


#define GET_BITFIELD(addr)         (*((volatile bitfield *)(addr)))  

#define __GET_BIT(addr,b)        GET_BITFIELD(addr).bit##b  
#define GET_BIT(addr,b) __GET_BIT(addr,b)  

#define GET_Bitfield(addr)         (*(( bitfield *)(addr))) 
#define __GET_Bit(addr,b)       GET_Bitfield(addr).bit##b  
#define GET_Bit(addr,b)       __GET_Bit(addr,b)  


#ifdef __IAR_SYSTEMS_ICC__ 
#define GET_IO_BITFIELD(addr)         (*(( __io volatile   bitfield  *)(addr)))  
#define __GET_IO_BIT(addr,b)        GET_IO_BITFIELD(addr).bit##b  
#define GET_IO_BIT(addr,b) __GET_IO_BIT(addr,b)  

#else  
#define GET_IO_BITFIELD(addr) GET_BITFIELD(addr)  
#define GET_IO_BIT(addr,b) GET_BIT(addr,b) 
#endif 
typedef struct { 
                                unsigned char bit0:1; 
                                unsigned char bit1:1; 
                                unsigned char bit2:1; 
                                unsigned char bit3:1;         
                                unsigned char bit4:1; 
                                unsigned char bit5:1; 
                                unsigned char bit6:1; 
                                unsigned char bit7:1;                                                                 
                                }bitfield; 


#endif 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?