1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
#[doc = r"Register block"]
#[repr(C)]
pub struct RegisterBlock {
    #[doc = "0x00 - USCI B1 Control Register 1"]
    pub ucb1ctl1: crate::Reg<ucb1ctl1::UCB1CTL1_SPEC>,
    #[doc = "0x01 - USCI B1 Control Register 0"]
    pub ucb1ctl0: crate::Reg<ucb1ctl0::UCB1CTL0_SPEC>,
    #[doc = "0x02 - USCI B1 Control Word Register 1"]
    pub ucb1ctlw1: crate::Reg<ucb1ctlw1::UCB1CTLW1_SPEC>,
    _reserved3: [u8; 2usize],
    #[doc = "0x06 - USCI B1 Baud Rate 0"]
    pub ucb1br0: crate::Reg<ucb1br0::UCB1BR0_SPEC>,
    #[doc = "0x07 - USCI B1 Baud Rate 1"]
    pub ucb1br1: crate::Reg<ucb1br1::UCB1BR1_SPEC>,
    #[doc = "0x08 - USCI B1 Status Register"]
    pub ucb1stat_i2c: crate::Reg<ucb1stat_i2c::UCB1STAT_I2C_SPEC>,
    #[doc = "0x09 - USCI B1 Byte Counter Register"]
    pub ucb1bcnt_i2c: crate::Reg<ucb1bcnt_i2c::UCB1BCNT_I2C_SPEC>,
    #[doc = "0x0a - USCI B1 Byte Counter Threshold Register"]
    pub ucb1tbcnt: crate::Reg<ucb1tbcnt::UCB1TBCNT_SPEC>,
    #[doc = "0x0c - USCI B1 Receive Buffer"]
    pub ucb1rxbuf: crate::Reg<ucb1rxbuf::UCB1RXBUF_SPEC>,
    #[doc = "0x0e - USCI B1 Transmit Buffer"]
    pub ucb1txbuf: crate::Reg<ucb1txbuf::UCB1TXBUF_SPEC>,
    _reserved10: [u8; 4usize],
    #[doc = "0x14 - USCI B1 I2C Own Address 0"]
    pub ucb1i2coa0: crate::Reg<ucb1i2coa0::UCB1I2COA0_SPEC>,
    #[doc = "0x16 - USCI B1 I2C Own Address 1"]
    pub ucb1i2coa1: crate::Reg<ucb1i2coa1::UCB1I2COA1_SPEC>,
    #[doc = "0x18 - USCI B1 I2C Own Address 2"]
    pub ucb1i2coa2: crate::Reg<ucb1i2coa2::UCB1I2COA2_SPEC>,
    #[doc = "0x1a - USCI B1 I2C Own Address 3"]
    pub ucb1i2coa3: crate::Reg<ucb1i2coa3::UCB1I2COA3_SPEC>,
    #[doc = "0x1c - USCI B1 Received Address Register"]
    pub ucb1addrx: crate::Reg<ucb1addrx::UCB1ADDRX_SPEC>,
    #[doc = "0x1e - USCI B1 Address Mask Register"]
    pub ucb1addmask: crate::Reg<ucb1addmask::UCB1ADDMASK_SPEC>,
    #[doc = "0x20 - USCI B1 I2C Slave Address"]
    pub ucb1i2csa: crate::Reg<ucb1i2csa::UCB1I2CSA_SPEC>,
    _reserved17: [u8; 8usize],
    _reserved_17_ucb1: [u8; 2usize],
    _reserved_18_ucb1: [u8; 2usize],
    #[doc = "0x2e - USCI B1 Interrupt Vector Register"]
    pub ucb1iv: crate::Reg<ucb1iv::UCB1IV_SPEC>,
}
impl RegisterBlock {
    #[doc = "0x2a - USCI B1 Interrupt Enable Register"]
    #[inline(always)]
    pub fn ucb1ie_i2c(&self) -> &crate::Reg<ucb1ie_i2c::UCB1IE_I2C_SPEC> {
        unsafe {
            &*(((self as *const Self) as *const u8).add(42usize)
                as *const crate::Reg<ucb1ie_i2c::UCB1IE_I2C_SPEC>)
        }
    }
    #[doc = "0x2a - USCI B1 Interrupt Enable Register"]
    #[inline(always)]
    pub fn ucb1ie(&self) -> &crate::Reg<ucb1ie::UCB1IE_SPEC> {
        unsafe {
            &*(((self as *const Self) as *const u8).add(42usize)
                as *const crate::Reg<ucb1ie::UCB1IE_SPEC>)
        }
    }
    #[doc = "0x2c - USCI B1 Interrupt Flags Register"]
    #[inline(always)]
    pub fn ucb1ifg_i2c(&self) -> &crate::Reg<ucb1ifg_i2c::UCB1IFG_I2C_SPEC> {
        unsafe {
            &*(((self as *const Self) as *const u8).add(44usize)
                as *const crate::Reg<ucb1ifg_i2c::UCB1IFG_I2C_SPEC>)
        }
    }
    #[doc = "0x2c - USCI B1 Interrupt Flags Register"]
    #[inline(always)]
    pub fn ucb1ifg(&self) -> &crate::Reg<ucb1ifg::UCB1IFG_SPEC> {
        unsafe {
            &*(((self as *const Self) as *const u8).add(44usize)
                as *const crate::Reg<ucb1ifg::UCB1IFG_SPEC>)
        }
    }
}
#[doc = "UCB1CTL1 register accessor: an alias for `Reg<UCB1CTL1_SPEC>`"]
pub type UCB1CTL1 = crate::Reg<ucb1ctl1::UCB1CTL1_SPEC>;
#[doc = "USCI B1 Control Register 1"]
pub mod ucb1ctl1;
#[doc = "UCB1CTL0 register accessor: an alias for `Reg<UCB1CTL0_SPEC>`"]
pub type UCB1CTL0 = crate::Reg<ucb1ctl0::UCB1CTL0_SPEC>;
#[doc = "USCI B1 Control Register 0"]
pub mod ucb1ctl0;
#[doc = "UCB1BR0 register accessor: an alias for `Reg<UCB1BR0_SPEC>`"]
pub type UCB1BR0 = crate::Reg<ucb1br0::UCB1BR0_SPEC>;
#[doc = "USCI B1 Baud Rate 0"]
pub mod ucb1br0;
#[doc = "UCB1BR1 register accessor: an alias for `Reg<UCB1BR1_SPEC>`"]
pub type UCB1BR1 = crate::Reg<ucb1br1::UCB1BR1_SPEC>;
#[doc = "USCI B1 Baud Rate 1"]
pub mod ucb1br1;
#[doc = "UCB1STAT_I2C register accessor: an alias for `Reg<UCB1STAT_I2C_SPEC>`"]
pub type UCB1STAT_I2C = crate::Reg<ucb1stat_i2c::UCB1STAT_I2C_SPEC>;
#[doc = "USCI B1 Status Register"]
pub mod ucb1stat_i2c;
#[doc = "UCB1BCNT_I2C register accessor: an alias for `Reg<UCB1BCNT_I2C_SPEC>`"]
pub type UCB1BCNT_I2C = crate::Reg<ucb1bcnt_i2c::UCB1BCNT_I2C_SPEC>;
#[doc = "USCI B1 Byte Counter Register"]
pub mod ucb1bcnt_i2c;
#[doc = "UCB1CTLW1 register accessor: an alias for `Reg<UCB1CTLW1_SPEC>`"]
pub type UCB1CTLW1 = crate::Reg<ucb1ctlw1::UCB1CTLW1_SPEC>;
#[doc = "USCI B1 Control Word Register 1"]
pub mod ucb1ctlw1;
#[doc = "UCB1TBCNT register accessor: an alias for `Reg<UCB1TBCNT_SPEC>`"]
pub type UCB1TBCNT = crate::Reg<ucb1tbcnt::UCB1TBCNT_SPEC>;
#[doc = "USCI B1 Byte Counter Threshold Register"]
pub mod ucb1tbcnt;
#[doc = "UCB1RXBUF register accessor: an alias for `Reg<UCB1RXBUF_SPEC>`"]
pub type UCB1RXBUF = crate::Reg<ucb1rxbuf::UCB1RXBUF_SPEC>;
#[doc = "USCI B1 Receive Buffer"]
pub mod ucb1rxbuf;
#[doc = "UCB1TXBUF register accessor: an alias for `Reg<UCB1TXBUF_SPEC>`"]
pub type UCB1TXBUF = crate::Reg<ucb1txbuf::UCB1TXBUF_SPEC>;
#[doc = "USCI B1 Transmit Buffer"]
pub mod ucb1txbuf;
#[doc = "UCB1I2COA0 register accessor: an alias for `Reg<UCB1I2COA0_SPEC>`"]
pub type UCB1I2COA0 = crate::Reg<ucb1i2coa0::UCB1I2COA0_SPEC>;
#[doc = "USCI B1 I2C Own Address 0"]
pub mod ucb1i2coa0;
#[doc = "UCB1I2COA1 register accessor: an alias for `Reg<UCB1I2COA1_SPEC>`"]
pub type UCB1I2COA1 = crate::Reg<ucb1i2coa1::UCB1I2COA1_SPEC>;
#[doc = "USCI B1 I2C Own Address 1"]
pub mod ucb1i2coa1;
#[doc = "UCB1I2COA2 register accessor: an alias for `Reg<UCB1I2COA2_SPEC>`"]
pub type UCB1I2COA2 = crate::Reg<ucb1i2coa2::UCB1I2COA2_SPEC>;
#[doc = "USCI B1 I2C Own Address 2"]
pub mod ucb1i2coa2;
#[doc = "UCB1I2COA3 register accessor: an alias for `Reg<UCB1I2COA3_SPEC>`"]
pub type UCB1I2COA3 = crate::Reg<ucb1i2coa3::UCB1I2COA3_SPEC>;
#[doc = "USCI B1 I2C Own Address 3"]
pub mod ucb1i2coa3;
#[doc = "UCB1ADDRX register accessor: an alias for `Reg<UCB1ADDRX_SPEC>`"]
pub type UCB1ADDRX = crate::Reg<ucb1addrx::UCB1ADDRX_SPEC>;
#[doc = "USCI B1 Received Address Register"]
pub mod ucb1addrx;
#[doc = "UCB1ADDMASK register accessor: an alias for `Reg<UCB1ADDMASK_SPEC>`"]
pub type UCB1ADDMASK = crate::Reg<ucb1addmask::UCB1ADDMASK_SPEC>;
#[doc = "USCI B1 Address Mask Register"]
pub mod ucb1addmask;
#[doc = "UCB1I2CSA register accessor: an alias for `Reg<UCB1I2CSA_SPEC>`"]
pub type UCB1I2CSA = crate::Reg<ucb1i2csa::UCB1I2CSA_SPEC>;
#[doc = "USCI B1 I2C Slave Address"]
pub mod ucb1i2csa;
#[doc = "UCB1IE register accessor: an alias for `Reg<UCB1IE_SPEC>`"]
pub type UCB1IE = crate::Reg<ucb1ie::UCB1IE_SPEC>;
#[doc = "USCI B1 Interrupt Enable Register"]
pub mod ucb1ie;
#[doc = "UCB1IE_I2C register accessor: an alias for `Reg<UCB1IE_I2C_SPEC>`"]
pub type UCB1IE_I2C = crate::Reg<ucb1ie_i2c::UCB1IE_I2C_SPEC>;
#[doc = "USCI B1 Interrupt Enable Register"]
pub mod ucb1ie_i2c;
#[doc = "UCB1IFG register accessor: an alias for `Reg<UCB1IFG_SPEC>`"]
pub type UCB1IFG = crate::Reg<ucb1ifg::UCB1IFG_SPEC>;
#[doc = "USCI B1 Interrupt Flags Register"]
pub mod ucb1ifg;
#[doc = "UCB1IFG_I2C register accessor: an alias for `Reg<UCB1IFG_I2C_SPEC>`"]
pub type UCB1IFG_I2C = crate::Reg<ucb1ifg_i2c::UCB1IFG_I2C_SPEC>;
#[doc = "USCI B1 Interrupt Flags Register"]
pub mod ucb1ifg_i2c;
#[doc = "UCB1IV register accessor: an alias for `Reg<UCB1IV_SPEC>`"]
pub type UCB1IV = crate::Reg<ucb1iv::UCB1IV_SPEC>;
#[doc = "USCI B1 Interrupt Vector Register"]
pub mod ucb1iv;