新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)中的位域操作

單片機(jī)中的位域操作

作者: 時(shí)間:2016-11-26 來源:網(wǎng)絡(luò) 收藏
在一個(gè)工程項(xiàng)目中,有時(shí)候我們經(jīng)常會(huì)用到許多狀態(tài)標(biāo)志位。很多時(shí)候我們會(huì)去程序中定義這些變量,而這些變量往往占用了一個(gè)字節(jié)(byte),然而我們需要的僅僅是一個(gè)狀態(tài)位(bit)。這樣去定義變量不僅浪費(fèi)了存儲(chǔ)空間,而且不利于變量管理。下面,介紹一種使用位域的方法定義狀態(tài)標(biāo)志的方法:

//定義聯(lián)合體,同時(shí)命名別名為function

本文引用地址:http://m.butianyuan.cn/article/201611/321954.htm

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

}function;
function myflag;//定義聯(lián)合體變量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;
}



關(guān)鍵詞: 單片機(jī)位域操

評(píng)論


技術(shù)專區(qū)

關(guān)閉