#[doc = "Register `I2C_ISR` reader"]
pub struct R(crate::R<I2C_ISR_SPEC>);
impl core::ops::Deref for R {
type Target = crate::R<I2C_ISR_SPEC>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl From<crate::R<I2C_ISR_SPEC>> for R {
#[inline(always)]
fn from(reader: crate::R<I2C_ISR_SPEC>) -> Self {
R(reader)
}
}
#[doc = "Register `I2C_ISR` writer"]
pub struct W(crate::W<I2C_ISR_SPEC>);
impl core::ops::Deref for W {
type Target = crate::W<I2C_ISR_SPEC>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl core::ops::DerefMut for W {
#[inline(always)]
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.0
}
}
impl From<crate::W<I2C_ISR_SPEC>> for W {
#[inline(always)]
fn from(writer: crate::W<I2C_ISR_SPEC>) -> Self {
W(writer)
}
}
#[doc = "Field `TXE` reader - TXE"]
pub struct TXE_R(crate::FieldReader<bool, bool>);
impl TXE_R {
pub(crate) fn new(bits: bool) -> Self {
TXE_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for TXE_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `TXE` writer - TXE"]
pub struct TXE_W<'a> {
w: &'a mut W,
}
impl<'a> TXE_W<'a> {
#[doc = r"Sets the field bit"]
#[inline(always)]
pub fn set_bit(self) -> &'a mut W {
self.bit(true)
}
#[doc = r"Clears the field bit"]
#[inline(always)]
pub fn clear_bit(self) -> &'a mut W {
self.bit(false)
}
#[doc = r"Writes raw bits to the field"]
#[inline(always)]
pub fn bit(self, value: bool) -> &'a mut W {
self.w.bits = (self.w.bits & !0x01) | (value as u32 & 0x01);
self.w
}
}
#[doc = "Field `TXIS` reader - TXIS"]
pub struct TXIS_R(crate::FieldReader<bool, bool>);
impl TXIS_R {
pub(crate) fn new(bits: bool) -> Self {
TXIS_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for TXIS_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `TXIS` writer - TXIS"]
pub struct TXIS_W<'a> {
w: &'a mut W,
}
impl<'a> TXIS_W<'a> {
#[doc = r"Sets the field bit"]
#[inline(always)]
pub fn set_bit(self) -> &'a mut W {
self.bit(true)
}
#[doc = r"Clears the field bit"]
#[inline(always)]
pub fn clear_bit(self) -> &'a mut W {
self.bit(false)
}
#[doc = r"Writes raw bits to the field"]
#[inline(always)]
pub fn bit(self, value: bool) -> &'a mut W {
self.w.bits = (self.w.bits & !(0x01 << 1)) | ((value as u32 & 0x01) << 1);
self.w
}
}
#[doc = "Field `RXNE` reader - RXNE"]
pub struct RXNE_R(crate::FieldReader<bool, bool>);
impl RXNE_R {
pub(crate) fn new(bits: bool) -> Self {
RXNE_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for RXNE_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `ADDR` reader - ADDR"]
pub struct ADDR_R(crate::FieldReader<bool, bool>);
impl ADDR_R {
pub(crate) fn new(bits: bool) -> Self {
ADDR_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for ADDR_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `NACKF` reader - NACKF"]
pub struct NACKF_R(crate::FieldReader<bool, bool>);
impl NACKF_R {
pub(crate) fn new(bits: bool) -> Self {
NACKF_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for NACKF_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `STOPF` reader - STOPF"]
pub struct STOPF_R(crate::FieldReader<bool, bool>);
impl STOPF_R {
pub(crate) fn new(bits: bool) -> Self {
STOPF_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for STOPF_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `TC` reader - TC"]
pub struct TC_R(crate::FieldReader<bool, bool>);
impl TC_R {
pub(crate) fn new(bits: bool) -> Self {
TC_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for TC_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `TCR` reader - TCR"]
pub struct TCR_R(crate::FieldReader<bool, bool>);
impl TCR_R {
pub(crate) fn new(bits: bool) -> Self {
TCR_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for TCR_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `BERR` reader - BERR"]
pub struct BERR_R(crate::FieldReader<bool, bool>);
impl BERR_R {
pub(crate) fn new(bits: bool) -> Self {
BERR_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for BERR_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `ARLO` reader - ARLO"]
pub struct ARLO_R(crate::FieldReader<bool, bool>);
impl ARLO_R {
pub(crate) fn new(bits: bool) -> Self {
ARLO_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for ARLO_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `OVR` reader - OVR"]
pub struct OVR_R(crate::FieldReader<bool, bool>);
impl OVR_R {
pub(crate) fn new(bits: bool) -> Self {
OVR_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for OVR_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `PECERR` reader - PECERR"]
pub struct PECERR_R(crate::FieldReader<bool, bool>);
impl PECERR_R {
pub(crate) fn new(bits: bool) -> Self {
PECERR_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for PECERR_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `TIMEOUT` reader - TIMEOUT"]
pub struct TIMEOUT_R(crate::FieldReader<bool, bool>);
impl TIMEOUT_R {
pub(crate) fn new(bits: bool) -> Self {
TIMEOUT_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for TIMEOUT_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `ALERT` reader - ALERT"]
pub struct ALERT_R(crate::FieldReader<bool, bool>);
impl ALERT_R {
pub(crate) fn new(bits: bool) -> Self {
ALERT_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for ALERT_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `BUSY` reader - BUSY"]
pub struct BUSY_R(crate::FieldReader<bool, bool>);
impl BUSY_R {
pub(crate) fn new(bits: bool) -> Self {
BUSY_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for BUSY_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `DIR` reader - DIR"]
pub struct DIR_R(crate::FieldReader<bool, bool>);
impl DIR_R {
pub(crate) fn new(bits: bool) -> Self {
DIR_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for DIR_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `ADDCODE` reader - ADDCODE"]
pub struct ADDCODE_R(crate::FieldReader<u8, u8>);
impl ADDCODE_R {
pub(crate) fn new(bits: u8) -> Self {
ADDCODE_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for ADDCODE_R {
type Target = crate::FieldReader<u8, u8>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl R {
#[doc = "Bit 0 - TXE"]
#[inline(always)]
pub fn txe(&self) -> TXE_R {
TXE_R::new((self.bits & 0x01) != 0)
}
#[doc = "Bit 1 - TXIS"]
#[inline(always)]
pub fn txis(&self) -> TXIS_R {
TXIS_R::new(((self.bits >> 1) & 0x01) != 0)
}
#[doc = "Bit 2 - RXNE"]
#[inline(always)]
pub fn rxne(&self) -> RXNE_R {
RXNE_R::new(((self.bits >> 2) & 0x01) != 0)
}
#[doc = "Bit 3 - ADDR"]
#[inline(always)]
pub fn addr(&self) -> ADDR_R {
ADDR_R::new(((self.bits >> 3) & 0x01) != 0)
}
#[doc = "Bit 4 - NACKF"]
#[inline(always)]
pub fn nackf(&self) -> NACKF_R {
NACKF_R::new(((self.bits >> 4) & 0x01) != 0)
}
#[doc = "Bit 5 - STOPF"]
#[inline(always)]
pub fn stopf(&self) -> STOPF_R {
STOPF_R::new(((self.bits >> 5) & 0x01) != 0)
}
#[doc = "Bit 6 - TC"]
#[inline(always)]
pub fn tc(&self) -> TC_R {
TC_R::new(((self.bits >> 6) & 0x01) != 0)
}
#[doc = "Bit 7 - TCR"]
#[inline(always)]
pub fn tcr(&self) -> TCR_R {
TCR_R::new(((self.bits >> 7) & 0x01) != 0)
}
#[doc = "Bit 8 - BERR"]
#[inline(always)]
pub fn berr(&self) -> BERR_R {
BERR_R::new(((self.bits >> 8) & 0x01) != 0)
}
#[doc = "Bit 9 - ARLO"]
#[inline(always)]
pub fn arlo(&self) -> ARLO_R {
ARLO_R::new(((self.bits >> 9) & 0x01) != 0)
}
#[doc = "Bit 10 - OVR"]
#[inline(always)]
pub fn ovr(&self) -> OVR_R {
OVR_R::new(((self.bits >> 10) & 0x01) != 0)
}
#[doc = "Bit 11 - PECERR"]
#[inline(always)]
pub fn pecerr(&self) -> PECERR_R {
PECERR_R::new(((self.bits >> 11) & 0x01) != 0)
}
#[doc = "Bit 12 - TIMEOUT"]
#[inline(always)]
pub fn timeout(&self) -> TIMEOUT_R {
TIMEOUT_R::new(((self.bits >> 12) & 0x01) != 0)
}
#[doc = "Bit 13 - ALERT"]
#[inline(always)]
pub fn alert(&self) -> ALERT_R {
ALERT_R::new(((self.bits >> 13) & 0x01) != 0)
}
#[doc = "Bit 15 - BUSY"]
#[inline(always)]
pub fn busy(&self) -> BUSY_R {
BUSY_R::new(((self.bits >> 15) & 0x01) != 0)
}
#[doc = "Bit 16 - DIR"]
#[inline(always)]
pub fn dir(&self) -> DIR_R {
DIR_R::new(((self.bits >> 16) & 0x01) != 0)
}
#[doc = "Bits 17:23 - ADDCODE"]
#[inline(always)]
pub fn addcode(&self) -> ADDCODE_R {
ADDCODE_R::new(((self.bits >> 17) & 0x7f) as u8)
}
}
impl W {
#[doc = "Bit 0 - TXE"]
#[inline(always)]
pub fn txe(&mut self) -> TXE_W {
TXE_W { w: self }
}
#[doc = "Bit 1 - TXIS"]
#[inline(always)]
pub fn txis(&mut self) -> TXIS_W {
TXIS_W { w: self }
}
#[doc = "Writes raw bits to the register."]
#[inline(always)]
pub unsafe fn bits(&mut self, bits: u32) -> &mut Self {
self.0.bits(bits);
self
}
}
#[doc = "Access: No wait states\n\nThis register you can [`read`](crate::generic::Reg::read), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [i2c_isr](index.html) module"]
pub struct I2C_ISR_SPEC;
impl crate::RegisterSpec for I2C_ISR_SPEC {
type Ux = u32;
}
#[doc = "`read()` method returns [i2c_isr::R](R) reader structure"]
impl crate::Readable for I2C_ISR_SPEC {
type Reader = R;
}
#[doc = "`write(|w| ..)` method takes [i2c_isr::W](W) writer structure"]
impl crate::Writable for I2C_ISR_SPEC {
type Writer = W;
}
#[doc = "`reset()` method sets I2C_ISR to value 0x01"]
impl crate::Resettable for I2C_ISR_SPEC {
#[inline(always)]
fn reset_value() -> Self::Ux {
0x01
}
}