刚才在网上找了一个资料室自己建个头文件来定义位操作。//定义位域
tyoedef struct ByteBit
{
unsigned Bit0:1;
unsigned Bitl:l;
unsigned Bit2:1:
unsigned Bit3:1;
unsigned Bit4:1;
unsigned Bit5:1;
unsigned Bit6:1;
unsigned Bit7:1;
}
BYTE_BIT;
//B口宏定义,此值参见相应头文件。
#define_PINB ox23
#define_DDRB ox24
#define PORTB ox25
//定义B端口每个位,进行地址绑定。
#define PINB_BITO (*(volatileBYTE_BIT*)(_PINB)).BTTO
PINB_BITl BITl……
#dcfinc PORTB_BIT0(*(volatilcBYTE_BIT*)(_PORTB))BIT0
PORTB_BIT1 BIT1……
#define DDRB BITO (*(volatilcBYTE_BIT*)(_DDRB)BITO
DDRB_B1T1 Bitl……
如果还要定义其他口的话,那个位域是不是还要一模一样在写一次的。
|