#[repr(transparent)]pub struct Stat(pub u32);Expand description
Status register for Master, Slave, and Monitor functions.
Tuple Fields§
§0: u32Implementations§
Source§impl Stat
impl Stat
Sourcepub const fn mstpending(&self) -> Mstpending
pub const fn mstpending(&self) -> Mstpending
Master Pending. Indicates that the Master is waiting to continue communication on the I2C-bus (pending) or is idle. When the master is pending, the MSTSTATE bits indicate what type of software service if any the master expects. This flag will cause an interrupt when set if, enabled via the INTENSET register. The MSTPENDING flag is not set when the DMA is handling an event (if the MSTDMA bit in the MSTCTL register is set). If the master is in the idle state, and no communication is needed, mask this interrupt.
Sourcepub const fn set_mstpending(&mut self, val: Mstpending)
pub const fn set_mstpending(&mut self, val: Mstpending)
Master Pending. Indicates that the Master is waiting to continue communication on the I2C-bus (pending) or is idle. When the master is pending, the MSTSTATE bits indicate what type of software service if any the master expects. This flag will cause an interrupt when set if, enabled via the INTENSET register. The MSTPENDING flag is not set when the DMA is handling an event (if the MSTDMA bit in the MSTCTL register is set). If the master is in the idle state, and no communication is needed, mask this interrupt.
Sourcepub const fn mststate(&self) -> Mststate
pub const fn mststate(&self) -> Mststate
Master State code. The master state code reflects the master state when the MSTPENDING bit is set, that is the master is pending or in the idle state. Each value of this field indicates a specific required service for the Master function. All other values are reserved. See Table 400 for details of state values and appropriate responses.
Sourcepub const fn set_mststate(&mut self, val: Mststate)
pub const fn set_mststate(&mut self, val: Mststate)
Master State code. The master state code reflects the master state when the MSTPENDING bit is set, that is the master is pending or in the idle state. Each value of this field indicates a specific required service for the Master function. All other values are reserved. See Table 400 for details of state values and appropriate responses.
Sourcepub const fn mstarbloss(&self) -> Mstarbloss
pub const fn mstarbloss(&self) -> Mstarbloss
Master Arbitration Loss flag. This flag can be cleared by software writing a 1 to this bit. It is also cleared automatically a 1 is written to MSTCONTINUE.
Sourcepub const fn set_mstarbloss(&mut self, val: Mstarbloss)
pub const fn set_mstarbloss(&mut self, val: Mstarbloss)
Master Arbitration Loss flag. This flag can be cleared by software writing a 1 to this bit. It is also cleared automatically a 1 is written to MSTCONTINUE.
Sourcepub const fn mstststperr(&self) -> bool
pub const fn mstststperr(&self) -> bool
Master Start/Stop Error flag. This flag can be cleared by software writing a 1 to this bit. It is also cleared automatically a 1 is written to MSTCONTINUE.
Sourcepub const fn set_mstststperr(&mut self, val: bool)
pub const fn set_mstststperr(&mut self, val: bool)
Master Start/Stop Error flag. This flag can be cleared by software writing a 1 to this bit. It is also cleared automatically a 1 is written to MSTCONTINUE.
Sourcepub const fn slvpending(&self) -> Slvpending
pub const fn slvpending(&self) -> Slvpending
Slave Pending. Indicates that the Slave function is waiting to continue communication on the I2C-bus and needs software service. This flag will cause an interrupt when set if enabled via INTENSET. The SLVPENDING flag is not set when the DMA is handling an event (if the SLVDMA bit in the SLVCTL register is set). The SLVPENDING flag is read-only and is automatically cleared when a 1 is written to the SLVCONTINUE bit in the SLVCTL register. The point in time when SlvPending is set depends on whether the I2C interface is in HSCAPABLE mode. See Section 25.7.2.2.2. When the I2C interface is configured to be HSCAPABLE, HS master codes are detected automatically. Due to the requirements of the HS I2C specification, slave addresses must also be detected automatically, since the address must be acknowledged before the clock can be stretched.
Sourcepub const fn set_slvpending(&mut self, val: Slvpending)
pub const fn set_slvpending(&mut self, val: Slvpending)
Slave Pending. Indicates that the Slave function is waiting to continue communication on the I2C-bus and needs software service. This flag will cause an interrupt when set if enabled via INTENSET. The SLVPENDING flag is not set when the DMA is handling an event (if the SLVDMA bit in the SLVCTL register is set). The SLVPENDING flag is read-only and is automatically cleared when a 1 is written to the SLVCONTINUE bit in the SLVCTL register. The point in time when SlvPending is set depends on whether the I2C interface is in HSCAPABLE mode. See Section 25.7.2.2.2. When the I2C interface is configured to be HSCAPABLE, HS master codes are detected automatically. Due to the requirements of the HS I2C specification, slave addresses must also be detected automatically, since the address must be acknowledged before the clock can be stretched.
Sourcepub const fn slvstate(&self) -> Slvstate
pub const fn slvstate(&self) -> Slvstate
Slave State code. Each value of this field indicates a specific required service for the Slave function. All other values are reserved. See Table 401 for state values and actions. note that the occurrence of some states and how they are handled are affected by DMA mode and Automatic Operation modes.
Sourcepub const fn set_slvstate(&mut self, val: Slvstate)
pub const fn set_slvstate(&mut self, val: Slvstate)
Slave State code. Each value of this field indicates a specific required service for the Slave function. All other values are reserved. See Table 401 for state values and actions. note that the occurrence of some states and how they are handled are affected by DMA mode and Automatic Operation modes.
Sourcepub const fn slvnotstr(&self) -> Slvnotstr
pub const fn slvnotstr(&self) -> Slvnotstr
Slave Not Stretching. Indicates when the slave function is stretching the I2C clock. This is needed in order to gracefully invoke Deep Sleep or Power-down modes during slave operation. This read-only flag reflects the slave function status in real time.
Sourcepub const fn set_slvnotstr(&mut self, val: Slvnotstr)
pub const fn set_slvnotstr(&mut self, val: Slvnotstr)
Slave Not Stretching. Indicates when the slave function is stretching the I2C clock. This is needed in order to gracefully invoke Deep Sleep or Power-down modes during slave operation. This read-only flag reflects the slave function status in real time.
Sourcepub const fn slvidx(&self) -> Slvidx
pub const fn slvidx(&self) -> Slvidx
Slave address match Index. This field is valid when the I2C slave function has been selected by receiving an address that matches one of the slave addresses defined by any enabled slave address registers, and provides an identification of the address that was matched. It is possible that more than one address could be matched, but only one match can be reported here.
Sourcepub const fn set_slvidx(&mut self, val: Slvidx)
pub const fn set_slvidx(&mut self, val: Slvidx)
Slave address match Index. This field is valid when the I2C slave function has been selected by receiving an address that matches one of the slave addresses defined by any enabled slave address registers, and provides an identification of the address that was matched. It is possible that more than one address could be matched, but only one match can be reported here.
Sourcepub const fn slvsel(&self) -> bool
pub const fn slvsel(&self) -> bool
Slave selected flag. SLVSEL is set after an address match when software tells the Slave function to acknowledge the address, or when the address has been automatically acknowledged. It is cleared when another address cycle presents an address that does not match an enabled address on the Slave function, when slave software decides to NACK a matched address, when there is a Stop detected on the bus, when the master NACKs slave data, and in some combinations of Automatic Operation. SLVSEL is not cleared if software NACKs data.
Sourcepub const fn set_slvsel(&mut self, val: bool)
pub const fn set_slvsel(&mut self, val: bool)
Slave selected flag. SLVSEL is set after an address match when software tells the Slave function to acknowledge the address, or when the address has been automatically acknowledged. It is cleared when another address cycle presents an address that does not match an enabled address on the Slave function, when slave software decides to NACK a matched address, when there is a Stop detected on the bus, when the master NACKs slave data, and in some combinations of Automatic Operation. SLVSEL is not cleared if software NACKs data.
Sourcepub const fn slvdesel(&self) -> bool
pub const fn slvdesel(&self) -> bool
Slave Deselected flag. This flag will cause an interrupt when set if enabled via INTENSET. This flag can be cleared by writing a 1 to this bit.
Sourcepub const fn set_slvdesel(&mut self, val: bool)
pub const fn set_slvdesel(&mut self, val: bool)
Slave Deselected flag. This flag will cause an interrupt when set if enabled via INTENSET. This flag can be cleared by writing a 1 to this bit.
Sourcepub const fn monrdy(&self) -> Monrdy
pub const fn monrdy(&self) -> Monrdy
Monitor Ready. This flag is cleared when the MONRXDAT register is read.
Sourcepub const fn set_monrdy(&mut self, val: Monrdy)
pub const fn set_monrdy(&mut self, val: Monrdy)
Monitor Ready. This flag is cleared when the MONRXDAT register is read.
Sourcepub const fn monactive(&self) -> bool
pub const fn monactive(&self) -> bool
Monitor Active flag. Indicates when the Monitor function considers the I 2C bus to be active. Active is defined here as when some Master is on the bus: a bus Start has occurred more recently than a bus Stop.
Sourcepub const fn set_monactive(&mut self, val: bool)
pub const fn set_monactive(&mut self, val: bool)
Monitor Active flag. Indicates when the Monitor function considers the I 2C bus to be active. Active is defined here as when some Master is on the bus: a bus Start has occurred more recently than a bus Stop.
Sourcepub const fn monidle(&self) -> bool
pub const fn monidle(&self) -> bool
Monitor Idle flag. This flag is set when the Monitor function sees the I2C bus change from active to inactive. This can be used by software to decide when to process data accumulated by the Monitor function. This flag will cause an interrupt when set if enabled via the INTENSET register. The flag can be cleared by writing a 1 to this bit.
Sourcepub const fn set_monidle(&mut self, val: bool)
pub const fn set_monidle(&mut self, val: bool)
Monitor Idle flag. This flag is set when the Monitor function sees the I2C bus change from active to inactive. This can be used by software to decide when to process data accumulated by the Monitor function. This flag will cause an interrupt when set if enabled via the INTENSET register. The flag can be cleared by writing a 1 to this bit.
Sourcepub const fn eventtimeout(&self) -> Eventtimeout
pub const fn eventtimeout(&self) -> Eventtimeout
Event Time-out Interrupt flag. Indicates when the time between events has been longer than the time specified by the TIMEOUT register. Events include Start, Stop, and clock edges. The flag is cleared by writing a 1 to this bit. No time-out is created when the I2C-bus is idle.
Sourcepub const fn set_eventtimeout(&mut self, val: Eventtimeout)
pub const fn set_eventtimeout(&mut self, val: Eventtimeout)
Event Time-out Interrupt flag. Indicates when the time between events has been longer than the time specified by the TIMEOUT register. Events include Start, Stop, and clock edges. The flag is cleared by writing a 1 to this bit. No time-out is created when the I2C-bus is idle.
Sourcepub const fn scltimeout(&self) -> bool
pub const fn scltimeout(&self) -> bool
SCL Time-out Interrupt flag. Indicates when SCL has remained low longer than the time specific by the TIMEOUT register. The flag is cleared by writing a 1 to this bit.
Sourcepub const fn set_scltimeout(&mut self, val: bool)
pub const fn set_scltimeout(&mut self, val: bool)
SCL Time-out Interrupt flag. Indicates when SCL has remained low longer than the time specific by the TIMEOUT register. The flag is cleared by writing a 1 to this bit.