51中的 bit ack在AVR中怎么定义?
1个回答
展开全部
51是可以直接位操作的
AVR只可以用与或能指令来实现 #define Set_Bit(val, bitn) (val |=(1<<(bitn))) //置位某一位
#define Clr_Bit(val, bitn) (val&=~(1<<(bitn))) //清除某一位
#define Get_Bit(val, bitn) (val & (1<<(bitn))) //获取某一位
#define Com_Bit(val, bitn) (val ^=(1<<(bitn))) //取反某一位
uint8 flag1;
#define ask Set_Bit(flag1,0)
或者定义机构体
struct data
{
unsigned bit0:1;
unsigned bit1:1;
unsigned bit2:1;
unsigned bit3:1;
unsigned bit4:1;
unsigned bit5:1;
unsigned bit6:1;
unsigned bit7:1;
}Flag1;
#define ask Flag1.bit0
AVR只可以用与或能指令来实现 #define Set_Bit(val, bitn) (val |=(1<<(bitn))) //置位某一位
#define Clr_Bit(val, bitn) (val&=~(1<<(bitn))) //清除某一位
#define Get_Bit(val, bitn) (val & (1<<(bitn))) //获取某一位
#define Com_Bit(val, bitn) (val ^=(1<<(bitn))) //取反某一位
uint8 flag1;
#define ask Set_Bit(flag1,0)
或者定义机构体
struct data
{
unsigned bit0:1;
unsigned bit1:1;
unsigned bit2:1;
unsigned bit3:1;
unsigned bit4:1;
unsigned bit5:1;
unsigned bit6:1;
unsigned bit7:1;
}Flag1;
#define ask Flag1.bit0
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询