c语言1字节怎么表示位,C语言Bit位定义

C语言Bit定义注意点:

首先看一个C位域使用的官方例子(摘自MC9S12XS128.h):

/*** ATD0CTL23 - ATD 0 Control Register 23; 0x000002C2 ***/

typedef union {

word Word;

/* Overlapped registers: */

struct {

/*** ATD0CTL2 - ATD 0 Control Register 2; 0x000002C2 ***/

union {

byte Byte;

struct {

byte ACMPIE      :1;                                       /* ATD Compare Interrupt Enable */

byte ASCIE       :1;                                       /* ATD Sequence Complete Interrupt Enable */

byte ETRIGE      :1;                                       /* External Trigger Mode enable */

byte ETRIGP      :1;                                       /* External Trigger Polarity */

byte ETRIGLE     :1;                                       /* External Trigger Level/Edge control */

byte ICLKSTP     :1;                                       /* Internal Clock in Stop Mode Bit */

byte AFFC        :1;                                       /* ATD Fast Conversion Complete Flag Clear */

byte             :1;

} Bits;

} ATD0CTL2STR;

#define ATD0CTL2                    _ATD0CTL23.Overlap_STR.ATD0CTL2STR.Byte

#define ATD0CTL2_ACMPIE             _ATD0CTL23.Overlap_STR.ATD0CTL2STR.Bits.ACMPIE

#define ATD0CTL2_ASCIE              _ATD0CTL23.Overlap_STR.ATD0CTL2STR.Bits.ASCIE

#define ATD0CTL2_ETRIGE             _ATD0CTL23.Overlap_STR.ATD0CTL2STR.Bits.ETRIGE

#define ATD0CTL2_ETRIGP             _ATD0CTL23.Overlap_STR.ATD0CTL2STR.Bits.ETRIGP

#define ATD0CTL2_ETRIGLE            _ATD0CTL23.Overlap_STR.ATD0CTL2STR.Bits.ETRIGLE

#define ATD0CTL2_ICLKSTP            _ATD0CTL23.Overlap_STR.ATD0CTL2STR.Bits.ICLKSTP

#define ATD0CTL2_AFFC               _ATD0CTL23.Overlap_STR.ATD0CTL2STR.Bits.AFFC

#define ATD0CTL2_ACMPIE_MASK        1U

#define ATD0CTL2_ASCIE_MASK         2U

#define ATD0CTL2_ETRIGE_MASK        4U

#define ATD0CTL2_ETRIGP_MASK        8U

#define ATD0CTL2_ETRIGLE_MASK       16U

#define ATD0CTL2_ICLKSTP_MASK       32U

#define ATD0CTL2_AFFC_MASK          64U

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值