您的位置 首页 应用

联合体union在单片机位界说时的妙用

在51系列单片机开发中,我们经常喜欢用位定义,对端口某位进行操作,也可以用来做为标志。在开发msp430、avr、arm等单片机时,就不能再使用

在51系列单片机开发中,咱们常常喜爱用位界说,对端口某位进行操作,也能够用来做为标志。在开发msp430avrarm等单片机时,就不能再运用位界说了。因而给咱们带来许多不变,这儿介绍一种运用union联合相同也能完成位操作。

这儿以MSP430为例,其他单片机相似。

1.用联合体做位标志

__no_initvolatile union {
uint8 temp;
struct
{
uint8bit0:1;
uint8bit1:1;
uint8bit2:1;
uint8bit3:1;
uint8bit4:1;
uint8bit5:1;
uint8bit6:1;
uint8bit7:1;
}temp_bit;
}var;

#definea_flagvar.temp_bit.bit0;

界说了上面的联合体,咱们就能够对a_flag进行位操作,进行读写,置位。

2.用联合体界说端口或许寄存器

__no_init volatile
union
{
unsigned char IOPORT;
struct
{
unsigned char Way: 1;
unsigned char Out: 1;
};
} @ 8;

void Test(void)
{
IOPORT = 0;
Way = 1;
Out = 1;
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/255742.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部