新闻中心

EEPW首页>嵌入式系统>设计应用> 单片机中的位域操作

单片机中的位域操作

作者: 时间:2016-11-26 来源:网络 收藏
在一个工程项目中,有时候我们经常会用到许多状态标志位。很多时候我们会去程序中定义这些变量,而这些变量往往占用了一个字节(byte),然而我们需要的仅仅是一个状态位(bit)。这样去定义变量不仅浪费了存储空间,而且不利于变量管理。下面,介绍一种使用位域的方法定义状态标志的方法:

//定义联合体,同时命名别名为function

本文引用地址://m.amcfsurvey.com/article/201611/321954.htm

typedef union
{
u8 flagByte;
struct
{
u8 b0:1;
u8 b1:1;
u8 b2:1;
}bits;

}function;
function myflag;//定义联合体变量myflag

//变量操作

union _SYS_STATUS_
{
struct
{
unsignedm0: 1;

unsignedm1: 1;

unsignedm2: 1;

unsignedm3: 1;

unsignedm4: 1;

unsignedm5: 1;

unsignedm6: 1;

unsignedm7: 1;

unsignedi0: 1;

unsignedi1: 1;

unsignedi2: 1;

unsignedi3: 1;

unsignedi4: 1;

unsignedi5: 1;
unsignedi6: 1;

unsignedi7: 1;


};
struct
{
unsigned intsysStuAll;
};
}
externunion _SYS_STATUS_ sSysStatus;

void tempp()
{
myflag.flagByte=0;
myflag.flagByte=0xff;
myflag.bits.b0=0;
myflag.bits.b1=0;
}



关键词:单片机位域操

评论


技术专区

关闭