能给分析一下这个定义的具体意义吗

2019-03-24 14:40发布

__no_init volatile union{  unsigned char IE1;   /* Interrupt Enable 1 */
  struct  {    unsigned char WDTIE           : 1; /*  */    unsigned char OFIE            : 1; /*  */    unsigned char                : 2;    unsigned char NMIIE           : 1; /*  */    unsigned char ACCVIE          : 1; /*  */    unsigned char URXIE0          : 1; /*  */    unsigned char UTXIE0          : 1; /*  */  }IE1_bit;} @0x0000;这个是“io430x14x.h"的,已经知道它是定义寄存器的,不过这里面这个结构体不明白是怎么回事。如果是位定义的话,怎么是unsigned char型的呢?还有后面的”:1“是什么意思啊?刚接触430,求指教! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
仙猫
1楼-- · 2019-03-24 20:12
 用结构体分别定义8个比特,这样写出的程序易读性好。比如想把ACCVIE位置1,不必写繁琐的与或操作,只需写如下式即可:
 IE1_bit.ACCVIE = 1;
伍师傅32
2楼-- · 2019-03-25 01:06
 精彩回答 2  元偷偷看……
仙猫
3楼-- · 2019-03-25 07:02
"/* */"前面的“:1”应该是定义的位数了吧?
 —— 是的。

可是定义的是unsigned char,怎么就变成bit了呢?
 —— IE1_bit的全部位数加起来是8比特,即char,同时又定义该char是unsigned型的。

一周热门 更多>

相关问题

    相关文章