pub type IC_TAR = Reg<IC_TAR_SPEC>;
Expand description
IC_TAR (rw) register accessor: I2C Target Address Register
This register is 12 bits wide, and bits 31:12 are reserved. This register can be written to only when IC_ENABLE[0] is set to 0.
Note: If the software or application is aware that the DW_apb_i2c is not using the TAR address for the pending commands in the Tx FIFO, then it is possible to update the TAR address even while the Tx FIFO has entries (IC_STATUS[2]= 0). - It is not necessary to perform any write to this register if DW_apb_i2c is enabled as an I2C slave only.
You can read
this register and get ic_tar::R
. You can reset
, write
, write_with_zero
this register using ic_tar::W
. You can also modify
this register. See API.
For information about available fields see ic_tar
module
Aliased Type§
struct IC_TAR { /* private fields */ }
Implementations
Source§impl<REG: Resettable + Writable> Reg<REG>
impl<REG: Resettable + Writable> Reg<REG>
Sourcepub fn reset(&self)
pub fn reset(&self)
Writes the reset value to Writable
register.
Resets the register to its initial state.
Sourcepub fn write<F>(&self, f: F)
pub fn write<F>(&self, f: F)
Writes bits to a Writable
register.
You can write raw bits into a register:
periph.reg.write(|w| unsafe { w.bits(rawbits) });
or write only the fields you need:
periph.reg.write(|w| w
.field1().bits(newfield1bits)
.field2().set_bit()
.field3().variant(VARIANT)
);
or an alternative way of saying the same:
periph.reg.write(|w| {
w.field1().bits(newfield1bits);
w.field2().set_bit();
w.field3().variant(VARIANT)
});
In the latter case, other fields will be set to their reset value.
Source§impl<REG: Readable + Writable> Reg<REG>
impl<REG: Readable + Writable> Reg<REG>
Sourcepub fn modify<F>(&self, f: F)
pub fn modify<F>(&self, f: F)
Modifies the contents of the register by reading and then writing it.
E.g. to do a read-modify-write sequence to change parts of a register:
periph.reg.modify(|r, w| unsafe { w.bits(
r.bits() | 3
) });
or
periph.reg.modify(|_, w| w
.field1().bits(newfield1bits)
.field2().set_bit()
.field3().variant(VARIANT)
);
or an alternative way of saying the same:
periph.reg.modify(|_, w| {
w.field1().bits(newfield1bits);
w.field2().set_bit();
w.field3().variant(VARIANT)
});
Other fields will have the value they had before the call to modify
.
Source§impl<REG: RegisterSpec> Reg<REG>
impl<REG: RegisterSpec> Reg<REG>
Source§impl<REG: Readable> Reg<REG>
impl<REG: Readable> Reg<REG>
Sourcepub fn read(&self) -> R<REG>
pub fn read(&self) -> R<REG>
Reads the contents of a Readable
register.
You can read the raw contents of a register by using bits
:
let bits = periph.reg.read().bits();
or get the content of a particular field of a register:
let reader = periph.reg.read();
let bits = reader.field1().bits();
let flag = reader.field2().bit_is_set();