From 0666a6ba1dbd66cf8b93c113e362ccbcd99152a0 Mon Sep 17 00:00:00 2001 From: Arne Dußin Date: Sat, 6 Nov 2021 11:50:33 +0100 Subject: Initial commit --- src/eic/asynch.rs | 151 +++++ src/eic/config.rs | 1531 +++++++++++++++++++++++++++++++++++++++++++++++++ src/eic/ctrla.rs | 251 ++++++++ src/eic/debouncen.rs | 102 ++++ src/eic/dprescaler.rs | 671 ++++++++++++++++++++++ src/eic/evctrl.rs | 102 ++++ src/eic/intenclr.rs | 102 ++++ src/eic/intenset.rs | 102 ++++ src/eic/intflag.rs | 102 ++++ src/eic/nmictrl.rs | 342 +++++++++++ src/eic/nmiflag.rs | 112 ++++ src/eic/pinstate.rs | 52 ++ src/eic/syncbusy.rs | 71 +++ 13 files changed, 3691 insertions(+) create mode 100644 src/eic/asynch.rs create mode 100644 src/eic/config.rs create mode 100644 src/eic/ctrla.rs create mode 100644 src/eic/debouncen.rs create mode 100644 src/eic/dprescaler.rs create mode 100644 src/eic/evctrl.rs create mode 100644 src/eic/intenclr.rs create mode 100644 src/eic/intenset.rs create mode 100644 src/eic/intflag.rs create mode 100644 src/eic/nmictrl.rs create mode 100644 src/eic/nmiflag.rs create mode 100644 src/eic/pinstate.rs create mode 100644 src/eic/syncbusy.rs (limited to 'src/eic') diff --git a/src/eic/asynch.rs b/src/eic/asynch.rs new file mode 100644 index 0000000..0227933 --- /dev/null +++ b/src/eic/asynch.rs @@ -0,0 +1,151 @@ +#[doc = "Register `ASYNCH` reader"] +pub struct R(crate::R); +impl core::ops::Deref for R { + type Target = crate::R; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +impl From> for R { + #[inline(always)] + fn from(reader: crate::R) -> Self { + R(reader) + } +} +#[doc = "Register `ASYNCH` writer"] +pub struct W(crate::W); +impl core::ops::Deref for W { + type Target = crate::W; + #[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> for W { + #[inline(always)] + fn from(writer: crate::W) -> Self { + W(writer) + } +} +#[doc = "Asynchronous Edge Detection Mode\n\nValue on reset: 0"] +#[derive(Clone, Copy, Debug, PartialEq)] +#[repr(u16)] +pub enum ASYNCH_A { + #[doc = "0: Edge detection is clock synchronously operated"] + SYNC = 0, + #[doc = "1: Edge detection is clock asynchronously operated"] + ASYNC = 1, +} +impl From for u16 { + #[inline(always)] + fn from(variant: ASYNCH_A) -> Self { + variant as _ + } +} +#[doc = "Field `ASYNCH` reader - Asynchronous Edge Detection Mode"] +pub struct ASYNCH_R(crate::FieldReader); +impl ASYNCH_R { + pub(crate) fn new(bits: u16) -> Self { + ASYNCH_R(crate::FieldReader::new(bits)) + } + #[doc = r"Get enumerated values variant"] + #[inline(always)] + pub fn variant(&self) -> Option { + match self.bits { + 0 => Some(ASYNCH_A::SYNC), + 1 => Some(ASYNCH_A::ASYNC), + _ => None, + } + } + #[doc = "Checks if the value of the field is `SYNC`"] + #[inline(always)] + pub fn is_sync(&self) -> bool { + **self == ASYNCH_A::SYNC + } + #[doc = "Checks if the value of the field is `ASYNC`"] + #[inline(always)] + pub fn is_async(&self) -> bool { + **self == ASYNCH_A::ASYNC + } +} +impl core::ops::Deref for ASYNCH_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `ASYNCH` writer - Asynchronous Edge Detection Mode"] +pub struct ASYNCH_W<'a> { + w: &'a mut W, +} +impl<'a> ASYNCH_W<'a> { + #[doc = r"Writes `variant` to the field"] + #[inline(always)] + pub fn variant(self, variant: ASYNCH_A) -> &'a mut W { + unsafe { self.bits(variant.into()) } + } + #[doc = "Edge detection is clock synchronously operated"] + #[inline(always)] + pub fn sync(self) -> &'a mut W { + self.variant(ASYNCH_A::SYNC) + } + #[doc = "Edge detection is clock asynchronously operated"] + #[inline(always)] + pub fn async_(self) -> &'a mut W { + self.variant(ASYNCH_A::ASYNC) + } + #[doc = r"Writes raw bits to the field"] + #[inline(always)] + pub unsafe fn bits(self, value: u16) -> &'a mut W { + self.w.bits = (self.w.bits & !0xffff) | (value as u32 & 0xffff); + self.w + } +} +impl R { + #[doc = "Bits 0:15 - Asynchronous Edge Detection Mode"] + #[inline(always)] + pub fn asynch(&self) -> ASYNCH_R { + ASYNCH_R::new((self.bits & 0xffff) as u16) + } +} +impl W { + #[doc = "Bits 0:15 - Asynchronous Edge Detection Mode"] + #[inline(always)] + pub fn asynch(&mut self) -> ASYNCH_W { + ASYNCH_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 = "External Interrupt Asynchronous Mode\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 [asynch](index.html) module"] +pub struct ASYNCH_SPEC; +impl crate::RegisterSpec for ASYNCH_SPEC { + type Ux = u32; +} +#[doc = "`read()` method returns [asynch::R](R) reader structure"] +impl crate::Readable for ASYNCH_SPEC { + type Reader = R; +} +#[doc = "`write(|w| ..)` method takes [asynch::W](W) writer structure"] +impl crate::Writable for ASYNCH_SPEC { + type Writer = W; +} +#[doc = "`reset()` method sets ASYNCH to value 0"] +impl crate::Resettable for ASYNCH_SPEC { + #[inline(always)] + fn reset_value() -> Self::Ux { + 0 + } +} diff --git a/src/eic/config.rs b/src/eic/config.rs new file mode 100644 index 0000000..7b37c77 --- /dev/null +++ b/src/eic/config.rs @@ -0,0 +1,1531 @@ +#[doc = "Register `CONFIG[%s]` reader"] +pub struct R(crate::R); +impl core::ops::Deref for R { + type Target = crate::R; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +impl From> for R { + #[inline(always)] + fn from(reader: crate::R) -> Self { + R(reader) + } +} +#[doc = "Register `CONFIG[%s]` writer"] +pub struct W(crate::W); +impl core::ops::Deref for W { + type Target = crate::W; + #[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> for W { + #[inline(always)] + fn from(writer: crate::W) -> Self { + W(writer) + } +} +#[doc = "Input Sense Configuration 0\n\nValue on reset: 0"] +#[derive(Clone, Copy, Debug, PartialEq)] +#[repr(u8)] +pub enum SENSE0_A { + #[doc = "0: No detection"] + NONE = 0, + #[doc = "1: Rising edge detection"] + RISE = 1, + #[doc = "2: Falling edge detection"] + FALL = 2, + #[doc = "3: Both edges detection"] + BOTH = 3, + #[doc = "4: High level detection"] + HIGH = 4, + #[doc = "5: Low level detection"] + LOW = 5, +} +impl From for u8 { + #[inline(always)] + fn from(variant: SENSE0_A) -> Self { + variant as _ + } +} +#[doc = "Field `SENSE0` reader - Input Sense Configuration 0"] +pub struct SENSE0_R(crate::FieldReader); +impl SENSE0_R { + pub(crate) fn new(bits: u8) -> Self { + SENSE0_R(crate::FieldReader::new(bits)) + } + #[doc = r"Get enumerated values variant"] + #[inline(always)] + pub fn variant(&self) -> Option { + match self.bits { + 0 => Some(SENSE0_A::NONE), + 1 => Some(SENSE0_A::RISE), + 2 => Some(SENSE0_A::FALL), + 3 => Some(SENSE0_A::BOTH), + 4 => Some(SENSE0_A::HIGH), + 5 => Some(SENSE0_A::LOW), + _ => None, + } + } + #[doc = "Checks if the value of the field is `NONE`"] + #[inline(always)] + pub fn is_none(&self) -> bool { + **self == SENSE0_A::NONE + } + #[doc = "Checks if the value of the field is `RISE`"] + #[inline(always)] + pub fn is_rise(&self) -> bool { + **self == SENSE0_A::RISE + } + #[doc = "Checks if the value of the field is `FALL`"] + #[inline(always)] + pub fn is_fall(&self) -> bool { + **self == SENSE0_A::FALL + } + #[doc = "Checks if the value of the field is `BOTH`"] + #[inline(always)] + pub fn is_both(&self) -> bool { + **self == SENSE0_A::BOTH + } + #[doc = "Checks if the value of the field is `HIGH`"] + #[inline(always)] + pub fn is_high(&self) -> bool { + **self == SENSE0_A::HIGH + } + #[doc = "Checks if the value of the field is `LOW`"] + #[inline(always)] + pub fn is_low(&self) -> bool { + **self == SENSE0_A::LOW + } +} +impl core::ops::Deref for SENSE0_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `SENSE0` writer - Input Sense Configuration 0"] +pub struct SENSE0_W<'a> { + w: &'a mut W, +} +impl<'a> SENSE0_W<'a> { + #[doc = r"Writes `variant` to the field"] + #[inline(always)] + pub fn variant(self, variant: SENSE0_A) -> &'a mut W { + unsafe { self.bits(variant.into()) } + } + #[doc = "No detection"] + #[inline(always)] + pub fn none(self) -> &'a mut W { + self.variant(SENSE0_A::NONE) + } + #[doc = "Rising edge detection"] + #[inline(always)] + pub fn rise(self) -> &'a mut W { + self.variant(SENSE0_A::RISE) + } + #[doc = "Falling edge detection"] + #[inline(always)] + pub fn fall(self) -> &'a mut W { + self.variant(SENSE0_A::FALL) + } + #[doc = "Both edges detection"] + #[inline(always)] + pub fn both(self) -> &'a mut W { + self.variant(SENSE0_A::BOTH) + } + #[doc = "High level detection"] + #[inline(always)] + pub fn high(self) -> &'a mut W { + self.variant(SENSE0_A::HIGH) + } + #[doc = "Low level detection"] + #[inline(always)] + pub fn low(self) -> &'a mut W { + self.variant(SENSE0_A::LOW) + } + #[doc = r"Writes raw bits to the field"] + #[inline(always)] + pub unsafe fn bits(self, value: u8) -> &'a mut W { + self.w.bits = (self.w.bits & !0x07) | (value as u32 & 0x07); + self.w + } +} +#[doc = "Field `FILTEN0` reader - Filter Enable 0"] +pub struct FILTEN0_R(crate::FieldReader); +impl FILTEN0_R { + pub(crate) fn new(bits: bool) -> Self { + FILTEN0_R(crate::FieldReader::new(bits)) + } +} +impl core::ops::Deref for FILTEN0_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `FILTEN0` writer - Filter Enable 0"] +pub struct FILTEN0_W<'a> { + w: &'a mut W, +} +impl<'a> FILTEN0_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 << 3)) | ((value as u32 & 0x01) << 3); + self.w + } +} +#[doc = "Input Sense Configuration 1\n\nValue on reset: 0"] +#[derive(Clone, Copy, Debug, PartialEq)] +#[repr(u8)] +pub enum SENSE1_A { + #[doc = "0: No detection"] + NONE = 0, + #[doc = "1: Rising edge detection"] + RISE = 1, + #[doc = "2: Falling edge detection"] + FALL = 2, + #[doc = "3: Both edges detection"] + BOTH = 3, + #[doc = "4: High level detection"] + HIGH = 4, + #[doc = "5: Low level detection"] + LOW = 5, +} +impl From for u8 { + #[inline(always)] + fn from(variant: SENSE1_A) -> Self { + variant as _ + } +} +#[doc = "Field `SENSE1` reader - Input Sense Configuration 1"] +pub struct SENSE1_R(crate::FieldReader); +impl SENSE1_R { + pub(crate) fn new(bits: u8) -> Self { + SENSE1_R(crate::FieldReader::new(bits)) + } + #[doc = r"Get enumerated values variant"] + #[inline(always)] + pub fn variant(&self) -> Option { + match self.bits { + 0 => Some(SENSE1_A::NONE), + 1 => Some(SENSE1_A::RISE), + 2 => Some(SENSE1_A::FALL), + 3 => Some(SENSE1_A::BOTH), + 4 => Some(SENSE1_A::HIGH), + 5 => Some(SENSE1_A::LOW), + _ => None, + } + } + #[doc = "Checks if the value of the field is `NONE`"] + #[inline(always)] + pub fn is_none(&self) -> bool { + **self == SENSE1_A::NONE + } + #[doc = "Checks if the value of the field is `RISE`"] + #[inline(always)] + pub fn is_rise(&self) -> bool { + **self == SENSE1_A::RISE + } + #[doc = "Checks if the value of the field is `FALL`"] + #[inline(always)] + pub fn is_fall(&self) -> bool { + **self == SENSE1_A::FALL + } + #[doc = "Checks if the value of the field is `BOTH`"] + #[inline(always)] + pub fn is_both(&self) -> bool { + **self == SENSE1_A::BOTH + } + #[doc = "Checks if the value of the field is `HIGH`"] + #[inline(always)] + pub fn is_high(&self) -> bool { + **self == SENSE1_A::HIGH + } + #[doc = "Checks if the value of the field is `LOW`"] + #[inline(always)] + pub fn is_low(&self) -> bool { + **self == SENSE1_A::LOW + } +} +impl core::ops::Deref for SENSE1_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `SENSE1` writer - Input Sense Configuration 1"] +pub struct SENSE1_W<'a> { + w: &'a mut W, +} +impl<'a> SENSE1_W<'a> { + #[doc = r"Writes `variant` to the field"] + #[inline(always)] + pub fn variant(self, variant: SENSE1_A) -> &'a mut W { + unsafe { self.bits(variant.into()) } + } + #[doc = "No detection"] + #[inline(always)] + pub fn none(self) -> &'a mut W { + self.variant(SENSE1_A::NONE) + } + #[doc = "Rising edge detection"] + #[inline(always)] + pub fn rise(self) -> &'a mut W { + self.variant(SENSE1_A::RISE) + } + #[doc = "Falling edge detection"] + #[inline(always)] + pub fn fall(self) -> &'a mut W { + self.variant(SENSE1_A::FALL) + } + #[doc = "Both edges detection"] + #[inline(always)] + pub fn both(self) -> &'a mut W { + self.variant(SENSE1_A::BOTH) + } + #[doc = "High level detection"] + #[inline(always)] + pub fn high(self) -> &'a mut W { + self.variant(SENSE1_A::HIGH) + } + #[doc = "Low level detection"] + #[inline(always)] + pub fn low(self) -> &'a mut W { + self.variant(SENSE1_A::LOW) + } + #[doc = r"Writes raw bits to the field"] + #[inline(always)] + pub unsafe fn bits(self, value: u8) -> &'a mut W { + self.w.bits = (self.w.bits & !(0x07 << 4)) | ((value as u32 & 0x07) << 4); + self.w + } +} +#[doc = "Field `FILTEN1` reader - Filter Enable 1"] +pub struct FILTEN1_R(crate::FieldReader); +impl FILTEN1_R { + pub(crate) fn new(bits: bool) -> Self { + FILTEN1_R(crate::FieldReader::new(bits)) + } +} +impl core::ops::Deref for FILTEN1_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `FILTEN1` writer - Filter Enable 1"] +pub struct FILTEN1_W<'a> { + w: &'a mut W, +} +impl<'a> FILTEN1_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 << 7)) | ((value as u32 & 0x01) << 7); + self.w + } +} +#[doc = "Input Sense Configuration 2\n\nValue on reset: 0"] +#[derive(Clone, Copy, Debug, PartialEq)] +#[repr(u8)] +pub enum SENSE2_A { + #[doc = "0: No detection"] + NONE = 0, + #[doc = "1: Rising edge detection"] + RISE = 1, + #[doc = "2: Falling edge detection"] + FALL = 2, + #[doc = "3: Both edges detection"] + BOTH = 3, + #[doc = "4: High level detection"] + HIGH = 4, + #[doc = "5: Low level detection"] + LOW = 5, +} +impl From for u8 { + #[inline(always)] + fn from(variant: SENSE2_A) -> Self { + variant as _ + } +} +#[doc = "Field `SENSE2` reader - Input Sense Configuration 2"] +pub struct SENSE2_R(crate::FieldReader); +impl SENSE2_R { + pub(crate) fn new(bits: u8) -> Self { + SENSE2_R(crate::FieldReader::new(bits)) + } + #[doc = r"Get enumerated values variant"] + #[inline(always)] + pub fn variant(&self) -> Option { + match self.bits { + 0 => Some(SENSE2_A::NONE), + 1 => Some(SENSE2_A::RISE), + 2 => Some(SENSE2_A::FALL), + 3 => Some(SENSE2_A::BOTH), + 4 => Some(SENSE2_A::HIGH), + 5 => Some(SENSE2_A::LOW), + _ => None, + } + } + #[doc = "Checks if the value of the field is `NONE`"] + #[inline(always)] + pub fn is_none(&self) -> bool { + **self == SENSE2_A::NONE + } + #[doc = "Checks if the value of the field is `RISE`"] + #[inline(always)] + pub fn is_rise(&self) -> bool { + **self == SENSE2_A::RISE + } + #[doc = "Checks if the value of the field is `FALL`"] + #[inline(always)] + pub fn is_fall(&self) -> bool { + **self == SENSE2_A::FALL + } + #[doc = "Checks if the value of the field is `BOTH`"] + #[inline(always)] + pub fn is_both(&self) -> bool { + **self == SENSE2_A::BOTH + } + #[doc = "Checks if the value of the field is `HIGH`"] + #[inline(always)] + pub fn is_high(&self) -> bool { + **self == SENSE2_A::HIGH + } + #[doc = "Checks if the value of the field is `LOW`"] + #[inline(always)] + pub fn is_low(&self) -> bool { + **self == SENSE2_A::LOW + } +} +impl core::ops::Deref for SENSE2_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `SENSE2` writer - Input Sense Configuration 2"] +pub struct SENSE2_W<'a> { + w: &'a mut W, +} +impl<'a> SENSE2_W<'a> { + #[doc = r"Writes `variant` to the field"] + #[inline(always)] + pub fn variant(self, variant: SENSE2_A) -> &'a mut W { + unsafe { self.bits(variant.into()) } + } + #[doc = "No detection"] + #[inline(always)] + pub fn none(self) -> &'a mut W { + self.variant(SENSE2_A::NONE) + } + #[doc = "Rising edge detection"] + #[inline(always)] + pub fn rise(self) -> &'a mut W { + self.variant(SENSE2_A::RISE) + } + #[doc = "Falling edge detection"] + #[inline(always)] + pub fn fall(self) -> &'a mut W { + self.variant(SENSE2_A::FALL) + } + #[doc = "Both edges detection"] + #[inline(always)] + pub fn both(self) -> &'a mut W { + self.variant(SENSE2_A::BOTH) + } + #[doc = "High level detection"] + #[inline(always)] + pub fn high(self) -> &'a mut W { + self.variant(SENSE2_A::HIGH) + } + #[doc = "Low level detection"] + #[inline(always)] + pub fn low(self) -> &'a mut W { + self.variant(SENSE2_A::LOW) + } + #[doc = r"Writes raw bits to the field"] + #[inline(always)] + pub unsafe fn bits(self, value: u8) -> &'a mut W { + self.w.bits = (self.w.bits & !(0x07 << 8)) | ((value as u32 & 0x07) << 8); + self.w + } +} +#[doc = "Field `FILTEN2` reader - Filter Enable 2"] +pub struct FILTEN2_R(crate::FieldReader); +impl FILTEN2_R { + pub(crate) fn new(bits: bool) -> Self { + FILTEN2_R(crate::FieldReader::new(bits)) + } +} +impl core::ops::Deref for FILTEN2_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `FILTEN2` writer - Filter Enable 2"] +pub struct FILTEN2_W<'a> { + w: &'a mut W, +} +impl<'a> FILTEN2_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 << 11)) | ((value as u32 & 0x01) << 11); + self.w + } +} +#[doc = "Input Sense Configuration 3\n\nValue on reset: 0"] +#[derive(Clone, Copy, Debug, PartialEq)] +#[repr(u8)] +pub enum SENSE3_A { + #[doc = "0: No detection"] + NONE = 0, + #[doc = "1: Rising edge detection"] + RISE = 1, + #[doc = "2: Falling edge detection"] + FALL = 2, + #[doc = "3: Both edges detection"] + BOTH = 3, + #[doc = "4: High level detection"] + HIGH = 4, + #[doc = "5: Low level detection"] + LOW = 5, +} +impl From for u8 { + #[inline(always)] + fn from(variant: SENSE3_A) -> Self { + variant as _ + } +} +#[doc = "Field `SENSE3` reader - Input Sense Configuration 3"] +pub struct SENSE3_R(crate::FieldReader); +impl SENSE3_R { + pub(crate) fn new(bits: u8) -> Self { + SENSE3_R(crate::FieldReader::new(bits)) + } + #[doc = r"Get enumerated values variant"] + #[inline(always)] + pub fn variant(&self) -> Option { + match self.bits { + 0 => Some(SENSE3_A::NONE), + 1 => Some(SENSE3_A::RISE), + 2 => Some(SENSE3_A::FALL), + 3 => Some(SENSE3_A::BOTH), + 4 => Some(SENSE3_A::HIGH), + 5 => Some(SENSE3_A::LOW), + _ => None, + } + } + #[doc = "Checks if the value of the field is `NONE`"] + #[inline(always)] + pub fn is_none(&self) -> bool { + **self == SENSE3_A::NONE + } + #[doc = "Checks if the value of the field is `RISE`"] + #[inline(always)] + pub fn is_rise(&self) -> bool { + **self == SENSE3_A::RISE + } + #[doc = "Checks if the value of the field is `FALL`"] + #[inline(always)] + pub fn is_fall(&self) -> bool { + **self == SENSE3_A::FALL + } + #[doc = "Checks if the value of the field is `BOTH`"] + #[inline(always)] + pub fn is_both(&self) -> bool { + **self == SENSE3_A::BOTH + } + #[doc = "Checks if the value of the field is `HIGH`"] + #[inline(always)] + pub fn is_high(&self) -> bool { + **self == SENSE3_A::HIGH + } + #[doc = "Checks if the value of the field is `LOW`"] + #[inline(always)] + pub fn is_low(&self) -> bool { + **self == SENSE3_A::LOW + } +} +impl core::ops::Deref for SENSE3_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `SENSE3` writer - Input Sense Configuration 3"] +pub struct SENSE3_W<'a> { + w: &'a mut W, +} +impl<'a> SENSE3_W<'a> { + #[doc = r"Writes `variant` to the field"] + #[inline(always)] + pub fn variant(self, variant: SENSE3_A) -> &'a mut W { + unsafe { self.bits(variant.into()) } + } + #[doc = "No detection"] + #[inline(always)] + pub fn none(self) -> &'a mut W { + self.variant(SENSE3_A::NONE) + } + #[doc = "Rising edge detection"] + #[inline(always)] + pub fn rise(self) -> &'a mut W { + self.variant(SENSE3_A::RISE) + } + #[doc = "Falling edge detection"] + #[inline(always)] + pub fn fall(self) -> &'a mut W { + self.variant(SENSE3_A::FALL) + } + #[doc = "Both edges detection"] + #[inline(always)] + pub fn both(self) -> &'a mut W { + self.variant(SENSE3_A::BOTH) + } + #[doc = "High level detection"] + #[inline(always)] + pub fn high(self) -> &'a mut W { + self.variant(SENSE3_A::HIGH) + } + #[doc = "Low level detection"] + #[inline(always)] + pub fn low(self) -> &'a mut W { + self.variant(SENSE3_A::LOW) + } + #[doc = r"Writes raw bits to the field"] + #[inline(always)] + pub unsafe fn bits(self, value: u8) -> &'a mut W { + self.w.bits = (self.w.bits & !(0x07 << 12)) | ((value as u32 & 0x07) << 12); + self.w + } +} +#[doc = "Field `FILTEN3` reader - Filter Enable 3"] +pub struct FILTEN3_R(crate::FieldReader); +impl FILTEN3_R { + pub(crate) fn new(bits: bool) -> Self { + FILTEN3_R(crate::FieldReader::new(bits)) + } +} +impl core::ops::Deref for FILTEN3_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `FILTEN3` writer - Filter Enable 3"] +pub struct FILTEN3_W<'a> { + w: &'a mut W, +} +impl<'a> FILTEN3_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 << 15)) | ((value as u32 & 0x01) << 15); + self.w + } +} +#[doc = "Input Sense Configuration 4\n\nValue on reset: 0"] +#[derive(Clone, Copy, Debug, PartialEq)] +#[repr(u8)] +pub enum SENSE4_A { + #[doc = "0: No detection"] + NONE = 0, + #[doc = "1: Rising edge detection"] + RISE = 1, + #[doc = "2: Falling edge detection"] + FALL = 2, + #[doc = "3: Both edges detection"] + BOTH = 3, + #[doc = "4: High level detection"] + HIGH = 4, + #[doc = "5: Low level detection"] + LOW = 5, +} +impl From for u8 { + #[inline(always)] + fn from(variant: SENSE4_A) -> Self { + variant as _ + } +} +#[doc = "Field `SENSE4` reader - Input Sense Configuration 4"] +pub struct SENSE4_R(crate::FieldReader); +impl SENSE4_R { + pub(crate) fn new(bits: u8) -> Self { + SENSE4_R(crate::FieldReader::new(bits)) + } + #[doc = r"Get enumerated values variant"] + #[inline(always)] + pub fn variant(&self) -> Option { + match self.bits { + 0 => Some(SENSE4_A::NONE), + 1 => Some(SENSE4_A::RISE), + 2 => Some(SENSE4_A::FALL), + 3 => Some(SENSE4_A::BOTH), + 4 => Some(SENSE4_A::HIGH), + 5 => Some(SENSE4_A::LOW), + _ => None, + } + } + #[doc = "Checks if the value of the field is `NONE`"] + #[inline(always)] + pub fn is_none(&self) -> bool { + **self == SENSE4_A::NONE + } + #[doc = "Checks if the value of the field is `RISE`"] + #[inline(always)] + pub fn is_rise(&self) -> bool { + **self == SENSE4_A::RISE + } + #[doc = "Checks if the value of the field is `FALL`"] + #[inline(always)] + pub fn is_fall(&self) -> bool { + **self == SENSE4_A::FALL + } + #[doc = "Checks if the value of the field is `BOTH`"] + #[inline(always)] + pub fn is_both(&self) -> bool { + **self == SENSE4_A::BOTH + } + #[doc = "Checks if the value of the field is `HIGH`"] + #[inline(always)] + pub fn is_high(&self) -> bool { + **self == SENSE4_A::HIGH + } + #[doc = "Checks if the value of the field is `LOW`"] + #[inline(always)] + pub fn is_low(&self) -> bool { + **self == SENSE4_A::LOW + } +} +impl core::ops::Deref for SENSE4_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `SENSE4` writer - Input Sense Configuration 4"] +pub struct SENSE4_W<'a> { + w: &'a mut W, +} +impl<'a> SENSE4_W<'a> { + #[doc = r"Writes `variant` to the field"] + #[inline(always)] + pub fn variant(self, variant: SENSE4_A) -> &'a mut W { + unsafe { self.bits(variant.into()) } + } + #[doc = "No detection"] + #[inline(always)] + pub fn none(self) -> &'a mut W { + self.variant(SENSE4_A::NONE) + } + #[doc = "Rising edge detection"] + #[inline(always)] + pub fn rise(self) -> &'a mut W { + self.variant(SENSE4_A::RISE) + } + #[doc = "Falling edge detection"] + #[inline(always)] + pub fn fall(self) -> &'a mut W { + self.variant(SENSE4_A::FALL) + } + #[doc = "Both edges detection"] + #[inline(always)] + pub fn both(self) -> &'a mut W { + self.variant(SENSE4_A::BOTH) + } + #[doc = "High level detection"] + #[inline(always)] + pub fn high(self) -> &'a mut W { + self.variant(SENSE4_A::HIGH) + } + #[doc = "Low level detection"] + #[inline(always)] + pub fn low(self) -> &'a mut W { + self.variant(SENSE4_A::LOW) + } + #[doc = r"Writes raw bits to the field"] + #[inline(always)] + pub unsafe fn bits(self, value: u8) -> &'a mut W { + self.w.bits = (self.w.bits & !(0x07 << 16)) | ((value as u32 & 0x07) << 16); + self.w + } +} +#[doc = "Field `FILTEN4` reader - Filter Enable 4"] +pub struct FILTEN4_R(crate::FieldReader); +impl FILTEN4_R { + pub(crate) fn new(bits: bool) -> Self { + FILTEN4_R(crate::FieldReader::new(bits)) + } +} +impl core::ops::Deref for FILTEN4_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `FILTEN4` writer - Filter Enable 4"] +pub struct FILTEN4_W<'a> { + w: &'a mut W, +} +impl<'a> FILTEN4_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 << 19)) | ((value as u32 & 0x01) << 19); + self.w + } +} +#[doc = "Input Sense Configuration 5\n\nValue on reset: 0"] +#[derive(Clone, Copy, Debug, PartialEq)] +#[repr(u8)] +pub enum SENSE5_A { + #[doc = "0: No detection"] + NONE = 0, + #[doc = "1: Rising edge detection"] + RISE = 1, + #[doc = "2: Falling edge detection"] + FALL = 2, + #[doc = "3: Both edges detection"] + BOTH = 3, + #[doc = "4: High level detection"] + HIGH = 4, + #[doc = "5: Low level detection"] + LOW = 5, +} +impl From for u8 { + #[inline(always)] + fn from(variant: SENSE5_A) -> Self { + variant as _ + } +} +#[doc = "Field `SENSE5` reader - Input Sense Configuration 5"] +pub struct SENSE5_R(crate::FieldReader); +impl SENSE5_R { + pub(crate) fn new(bits: u8) -> Self { + SENSE5_R(crate::FieldReader::new(bits)) + } + #[doc = r"Get enumerated values variant"] + #[inline(always)] + pub fn variant(&self) -> Option { + match self.bits { + 0 => Some(SENSE5_A::NONE), + 1 => Some(SENSE5_A::RISE), + 2 => Some(SENSE5_A::FALL), + 3 => Some(SENSE5_A::BOTH), + 4 => Some(SENSE5_A::HIGH), + 5 => Some(SENSE5_A::LOW), + _ => None, + } + } + #[doc = "Checks if the value of the field is `NONE`"] + #[inline(always)] + pub fn is_none(&self) -> bool { + **self == SENSE5_A::NONE + } + #[doc = "Checks if the value of the field is `RISE`"] + #[inline(always)] + pub fn is_rise(&self) -> bool { + **self == SENSE5_A::RISE + } + #[doc = "Checks if the value of the field is `FALL`"] + #[inline(always)] + pub fn is_fall(&self) -> bool { + **self == SENSE5_A::FALL + } + #[doc = "Checks if the value of the field is `BOTH`"] + #[inline(always)] + pub fn is_both(&self) -> bool { + **self == SENSE5_A::BOTH + } + #[doc = "Checks if the value of the field is `HIGH`"] + #[inline(always)] + pub fn is_high(&self) -> bool { + **self == SENSE5_A::HIGH + } + #[doc = "Checks if the value of the field is `LOW`"] + #[inline(always)] + pub fn is_low(&self) -> bool { + **self == SENSE5_A::LOW + } +} +impl core::ops::Deref for SENSE5_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `SENSE5` writer - Input Sense Configuration 5"] +pub struct SENSE5_W<'a> { + w: &'a mut W, +} +impl<'a> SENSE5_W<'a> { + #[doc = r"Writes `variant` to the field"] + #[inline(always)] + pub fn variant(self, variant: SENSE5_A) -> &'a mut W { + unsafe { self.bits(variant.into()) } + } + #[doc = "No detection"] + #[inline(always)] + pub fn none(self) -> &'a mut W { + self.variant(SENSE5_A::NONE) + } + #[doc = "Rising edge detection"] + #[inline(always)] + pub fn rise(self) -> &'a mut W { + self.variant(SENSE5_A::RISE) + } + #[doc = "Falling edge detection"] + #[inline(always)] + pub fn fall(self) -> &'a mut W { + self.variant(SENSE5_A::FALL) + } + #[doc = "Both edges detection"] + #[inline(always)] + pub fn both(self) -> &'a mut W { + self.variant(SENSE5_A::BOTH) + } + #[doc = "High level detection"] + #[inline(always)] + pub fn high(self) -> &'a mut W { + self.variant(SENSE5_A::HIGH) + } + #[doc = "Low level detection"] + #[inline(always)] + pub fn low(self) -> &'a mut W { + self.variant(SENSE5_A::LOW) + } + #[doc = r"Writes raw bits to the field"] + #[inline(always)] + pub unsafe fn bits(self, value: u8) -> &'a mut W { + self.w.bits = (self.w.bits & !(0x07 << 20)) | ((value as u32 & 0x07) << 20); + self.w + } +} +#[doc = "Field `FILTEN5` reader - Filter Enable 5"] +pub struct FILTEN5_R(crate::FieldReader); +impl FILTEN5_R { + pub(crate) fn new(bits: bool) -> Self { + FILTEN5_R(crate::FieldReader::new(bits)) + } +} +impl core::ops::Deref for FILTEN5_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `FILTEN5` writer - Filter Enable 5"] +pub struct FILTEN5_W<'a> { + w: &'a mut W, +} +impl<'a> FILTEN5_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 << 23)) | ((value as u32 & 0x01) << 23); + self.w + } +} +#[doc = "Input Sense Configuration 6\n\nValue on reset: 0"] +#[derive(Clone, Copy, Debug, PartialEq)] +#[repr(u8)] +pub enum SENSE6_A { + #[doc = "0: No detection"] + NONE = 0, + #[doc = "1: Rising edge detection"] + RISE = 1, + #[doc = "2: Falling edge detection"] + FALL = 2, + #[doc = "3: Both edges detection"] + BOTH = 3, + #[doc = "4: High level detection"] + HIGH = 4, + #[doc = "5: Low level detection"] + LOW = 5, +} +impl From for u8 { + #[inline(always)] + fn from(variant: SENSE6_A) -> Self { + variant as _ + } +} +#[doc = "Field `SENSE6` reader - Input Sense Configuration 6"] +pub struct SENSE6_R(crate::FieldReader); +impl SENSE6_R { + pub(crate) fn new(bits: u8) -> Self { + SENSE6_R(crate::FieldReader::new(bits)) + } + #[doc = r"Get enumerated values variant"] + #[inline(always)] + pub fn variant(&self) -> Option { + match self.bits { + 0 => Some(SENSE6_A::NONE), + 1 => Some(SENSE6_A::RISE), + 2 => Some(SENSE6_A::FALL), + 3 => Some(SENSE6_A::BOTH), + 4 => Some(SENSE6_A::HIGH), + 5 => Some(SENSE6_A::LOW), + _ => None, + } + } + #[doc = "Checks if the value of the field is `NONE`"] + #[inline(always)] + pub fn is_none(&self) -> bool { + **self == SENSE6_A::NONE + } + #[doc = "Checks if the value of the field is `RISE`"] + #[inline(always)] + pub fn is_rise(&self) -> bool { + **self == SENSE6_A::RISE + } + #[doc = "Checks if the value of the field is `FALL`"] + #[inline(always)] + pub fn is_fall(&self) -> bool { + **self == SENSE6_A::FALL + } + #[doc = "Checks if the value of the field is `BOTH`"] + #[inline(always)] + pub fn is_both(&self) -> bool { + **self == SENSE6_A::BOTH + } + #[doc = "Checks if the value of the field is `HIGH`"] + #[inline(always)] + pub fn is_high(&self) -> bool { + **self == SENSE6_A::HIGH + } + #[doc = "Checks if the value of the field is `LOW`"] + #[inline(always)] + pub fn is_low(&self) -> bool { + **self == SENSE6_A::LOW + } +} +impl core::ops::Deref for SENSE6_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `SENSE6` writer - Input Sense Configuration 6"] +pub struct SENSE6_W<'a> { + w: &'a mut W, +} +impl<'a> SENSE6_W<'a> { + #[doc = r"Writes `variant` to the field"] + #[inline(always)] + pub fn variant(self, variant: SENSE6_A) -> &'a mut W { + unsafe { self.bits(variant.into()) } + } + #[doc = "No detection"] + #[inline(always)] + pub fn none(self) -> &'a mut W { + self.variant(SENSE6_A::NONE) + } + #[doc = "Rising edge detection"] + #[inline(always)] + pub fn rise(self) -> &'a mut W { + self.variant(SENSE6_A::RISE) + } + #[doc = "Falling edge detection"] + #[inline(always)] + pub fn fall(self) -> &'a mut W { + self.variant(SENSE6_A::FALL) + } + #[doc = "Both edges detection"] + #[inline(always)] + pub fn both(self) -> &'a mut W { + self.variant(SENSE6_A::BOTH) + } + #[doc = "High level detection"] + #[inline(always)] + pub fn high(self) -> &'a mut W { + self.variant(SENSE6_A::HIGH) + } + #[doc = "Low level detection"] + #[inline(always)] + pub fn low(self) -> &'a mut W { + self.variant(SENSE6_A::LOW) + } + #[doc = r"Writes raw bits to the field"] + #[inline(always)] + pub unsafe fn bits(self, value: u8) -> &'a mut W { + self.w.bits = (self.w.bits & !(0x07 << 24)) | ((value as u32 & 0x07) << 24); + self.w + } +} +#[doc = "Field `FILTEN6` reader - Filter Enable 6"] +pub struct FILTEN6_R(crate::FieldReader); +impl FILTEN6_R { + pub(crate) fn new(bits: bool) -> Self { + FILTEN6_R(crate::FieldReader::new(bits)) + } +} +impl core::ops::Deref for FILTEN6_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `FILTEN6` writer - Filter Enable 6"] +pub struct FILTEN6_W<'a> { + w: &'a mut W, +} +impl<'a> FILTEN6_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 << 27)) | ((value as u32 & 0x01) << 27); + self.w + } +} +#[doc = "Input Sense Configuration 7\n\nValue on reset: 0"] +#[derive(Clone, Copy, Debug, PartialEq)] +#[repr(u8)] +pub enum SENSE7_A { + #[doc = "0: No detection"] + NONE = 0, + #[doc = "1: Rising edge detection"] + RISE = 1, + #[doc = "2: Falling edge detection"] + FALL = 2, + #[doc = "3: Both edges detection"] + BOTH = 3, + #[doc = "4: High level detection"] + HIGH = 4, + #[doc = "5: Low level detection"] + LOW = 5, +} +impl From for u8 { + #[inline(always)] + fn from(variant: SENSE7_A) -> Self { + variant as _ + } +} +#[doc = "Field `SENSE7` reader - Input Sense Configuration 7"] +pub struct SENSE7_R(crate::FieldReader); +impl SENSE7_R { + pub(crate) fn new(bits: u8) -> Self { + SENSE7_R(crate::FieldReader::new(bits)) + } + #[doc = r"Get enumerated values variant"] + #[inline(always)] + pub fn variant(&self) -> Option { + match self.bits { + 0 => Some(SENSE7_A::NONE), + 1 => Some(SENSE7_A::RISE), + 2 => Some(SENSE7_A::FALL), + 3 => Some(SENSE7_A::BOTH), + 4 => Some(SENSE7_A::HIGH), + 5 => Some(SENSE7_A::LOW), + _ => None, + } + } + #[doc = "Checks if the value of the field is `NONE`"] + #[inline(always)] + pub fn is_none(&self) -> bool { + **self == SENSE7_A::NONE + } + #[doc = "Checks if the value of the field is `RISE`"] + #[inline(always)] + pub fn is_rise(&self) -> bool { + **self == SENSE7_A::RISE + } + #[doc = "Checks if the value of the field is `FALL`"] + #[inline(always)] + pub fn is_fall(&self) -> bool { + **self == SENSE7_A::FALL + } + #[doc = "Checks if the value of the field is `BOTH`"] + #[inline(always)] + pub fn is_both(&self) -> bool { + **self == SENSE7_A::BOTH + } + #[doc = "Checks if the value of the field is `HIGH`"] + #[inline(always)] + pub fn is_high(&self) -> bool { + **self == SENSE7_A::HIGH + } + #[doc = "Checks if the value of the field is `LOW`"] + #[inline(always)] + pub fn is_low(&self) -> bool { + **self == SENSE7_A::LOW + } +} +impl core::ops::Deref for SENSE7_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `SENSE7` writer - Input Sense Configuration 7"] +pub struct SENSE7_W<'a> { + w: &'a mut W, +} +impl<'a> SENSE7_W<'a> { + #[doc = r"Writes `variant` to the field"] + #[inline(always)] + pub fn variant(self, variant: SENSE7_A) -> &'a mut W { + unsafe { self.bits(variant.into()) } + } + #[doc = "No detection"] + #[inline(always)] + pub fn none(self) -> &'a mut W { + self.variant(SENSE7_A::NONE) + } + #[doc = "Rising edge detection"] + #[inline(always)] + pub fn rise(self) -> &'a mut W { + self.variant(SENSE7_A::RISE) + } + #[doc = "Falling edge detection"] + #[inline(always)] + pub fn fall(self) -> &'a mut W { + self.variant(SENSE7_A::FALL) + } + #[doc = "Both edges detection"] + #[inline(always)] + pub fn both(self) -> &'a mut W { + self.variant(SENSE7_A::BOTH) + } + #[doc = "High level detection"] + #[inline(always)] + pub fn high(self) -> &'a mut W { + self.variant(SENSE7_A::HIGH) + } + #[doc = "Low level detection"] + #[inline(always)] + pub fn low(self) -> &'a mut W { + self.variant(SENSE7_A::LOW) + } + #[doc = r"Writes raw bits to the field"] + #[inline(always)] + pub unsafe fn bits(self, value: u8) -> &'a mut W { + self.w.bits = (self.w.bits & !(0x07 << 28)) | ((value as u32 & 0x07) << 28); + self.w + } +} +#[doc = "Field `FILTEN7` reader - Filter Enable 7"] +pub struct FILTEN7_R(crate::FieldReader); +impl FILTEN7_R { + pub(crate) fn new(bits: bool) -> Self { + FILTEN7_R(crate::FieldReader::new(bits)) + } +} +impl core::ops::Deref for FILTEN7_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `FILTEN7` writer - Filter Enable 7"] +pub struct FILTEN7_W<'a> { + w: &'a mut W, +} +impl<'a> FILTEN7_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 << 31)) | ((value as u32 & 0x01) << 31); + self.w + } +} +impl R { + #[doc = "Bits 0:2 - Input Sense Configuration 0"] + #[inline(always)] + pub fn sense0(&self) -> SENSE0_R { + SENSE0_R::new((self.bits & 0x07) as u8) + } + #[doc = "Bit 3 - Filter Enable 0"] + #[inline(always)] + pub fn filten0(&self) -> FILTEN0_R { + FILTEN0_R::new(((self.bits >> 3) & 0x01) != 0) + } + #[doc = "Bits 4:6 - Input Sense Configuration 1"] + #[inline(always)] + pub fn sense1(&self) -> SENSE1_R { + SENSE1_R::new(((self.bits >> 4) & 0x07) as u8) + } + #[doc = "Bit 7 - Filter Enable 1"] + #[inline(always)] + pub fn filten1(&self) -> FILTEN1_R { + FILTEN1_R::new(((self.bits >> 7) & 0x01) != 0) + } + #[doc = "Bits 8:10 - Input Sense Configuration 2"] + #[inline(always)] + pub fn sense2(&self) -> SENSE2_R { + SENSE2_R::new(((self.bits >> 8) & 0x07) as u8) + } + #[doc = "Bit 11 - Filter Enable 2"] + #[inline(always)] + pub fn filten2(&self) -> FILTEN2_R { + FILTEN2_R::new(((self.bits >> 11) & 0x01) != 0) + } + #[doc = "Bits 12:14 - Input Sense Configuration 3"] + #[inline(always)] + pub fn sense3(&self) -> SENSE3_R { + SENSE3_R::new(((self.bits >> 12) & 0x07) as u8) + } + #[doc = "Bit 15 - Filter Enable 3"] + #[inline(always)] + pub fn filten3(&self) -> FILTEN3_R { + FILTEN3_R::new(((self.bits >> 15) & 0x01) != 0) + } + #[doc = "Bits 16:18 - Input Sense Configuration 4"] + #[inline(always)] + pub fn sense4(&self) -> SENSE4_R { + SENSE4_R::new(((self.bits >> 16) & 0x07) as u8) + } + #[doc = "Bit 19 - Filter Enable 4"] + #[inline(always)] + pub fn filten4(&self) -> FILTEN4_R { + FILTEN4_R::new(((self.bits >> 19) & 0x01) != 0) + } + #[doc = "Bits 20:22 - Input Sense Configuration 5"] + #[inline(always)] + pub fn sense5(&self) -> SENSE5_R { + SENSE5_R::new(((self.bits >> 20) & 0x07) as u8) + } + #[doc = "Bit 23 - Filter Enable 5"] + #[inline(always)] + pub fn filten5(&self) -> FILTEN5_R { + FILTEN5_R::new(((self.bits >> 23) & 0x01) != 0) + } + #[doc = "Bits 24:26 - Input Sense Configuration 6"] + #[inline(always)] + pub fn sense6(&self) -> SENSE6_R { + SENSE6_R::new(((self.bits >> 24) & 0x07) as u8) + } + #[doc = "Bit 27 - Filter Enable 6"] + #[inline(always)] + pub fn filten6(&self) -> FILTEN6_R { + FILTEN6_R::new(((self.bits >> 27) & 0x01) != 0) + } + #[doc = "Bits 28:30 - Input Sense Configuration 7"] + #[inline(always)] + pub fn sense7(&self) -> SENSE7_R { + SENSE7_R::new(((self.bits >> 28) & 0x07) as u8) + } + #[doc = "Bit 31 - Filter Enable 7"] + #[inline(always)] + pub fn filten7(&self) -> FILTEN7_R { + FILTEN7_R::new(((self.bits >> 31) & 0x01) != 0) + } +} +impl W { + #[doc = "Bits 0:2 - Input Sense Configuration 0"] + #[inline(always)] + pub fn sense0(&mut self) -> SENSE0_W { + SENSE0_W { w: self } + } + #[doc = "Bit 3 - Filter Enable 0"] + #[inline(always)] + pub fn filten0(&mut self) -> FILTEN0_W { + FILTEN0_W { w: self } + } + #[doc = "Bits 4:6 - Input Sense Configuration 1"] + #[inline(always)] + pub fn sense1(&mut self) -> SENSE1_W { + SENSE1_W { w: self } + } + #[doc = "Bit 7 - Filter Enable 1"] + #[inline(always)] + pub fn filten1(&mut self) -> FILTEN1_W { + FILTEN1_W { w: self } + } + #[doc = "Bits 8:10 - Input Sense Configuration 2"] + #[inline(always)] + pub fn sense2(&mut self) -> SENSE2_W { + SENSE2_W { w: self } + } + #[doc = "Bit 11 - Filter Enable 2"] + #[inline(always)] + pub fn filten2(&mut self) -> FILTEN2_W { + FILTEN2_W { w: self } + } + #[doc = "Bits 12:14 - Input Sense Configuration 3"] + #[inline(always)] + pub fn sense3(&mut self) -> SENSE3_W { + SENSE3_W { w: self } + } + #[doc = "Bit 15 - Filter Enable 3"] + #[inline(always)] + pub fn filten3(&mut self) -> FILTEN3_W { + FILTEN3_W { w: self } + } + #[doc = "Bits 16:18 - Input Sense Configuration 4"] + #[inline(always)] + pub fn sense4(&mut self) -> SENSE4_W { + SENSE4_W { w: self } + } + #[doc = "Bit 19 - Filter Enable 4"] + #[inline(always)] + pub fn filten4(&mut self) -> FILTEN4_W { + FILTEN4_W { w: self } + } + #[doc = "Bits 20:22 - Input Sense Configuration 5"] + #[inline(always)] + pub fn sense5(&mut self) -> SENSE5_W { + SENSE5_W { w: self } + } + #[doc = "Bit 23 - Filter Enable 5"] + #[inline(always)] + pub fn filten5(&mut self) -> FILTEN5_W { + FILTEN5_W { w: self } + } + #[doc = "Bits 24:26 - Input Sense Configuration 6"] + #[inline(always)] + pub fn sense6(&mut self) -> SENSE6_W { + SENSE6_W { w: self } + } + #[doc = "Bit 27 - Filter Enable 6"] + #[inline(always)] + pub fn filten6(&mut self) -> FILTEN6_W { + FILTEN6_W { w: self } + } + #[doc = "Bits 28:30 - Input Sense Configuration 7"] + #[inline(always)] + pub fn sense7(&mut self) -> SENSE7_W { + SENSE7_W { w: self } + } + #[doc = "Bit 31 - Filter Enable 7"] + #[inline(always)] + pub fn filten7(&mut self) -> FILTEN7_W { + FILTEN7_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 = "External Interrupt Sense Configuration\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 [config](index.html) module"] +pub struct CONFIG_SPEC; +impl crate::RegisterSpec for CONFIG_SPEC { + type Ux = u32; +} +#[doc = "`read()` method returns [config::R](R) reader structure"] +impl crate::Readable for CONFIG_SPEC { + type Reader = R; +} +#[doc = "`write(|w| ..)` method takes [config::W](W) writer structure"] +impl crate::Writable for CONFIG_SPEC { + type Writer = W; +} +#[doc = "`reset()` method sets CONFIG[%s] +to value 0"] +impl crate::Resettable for CONFIG_SPEC { + #[inline(always)] + fn reset_value() -> Self::Ux { + 0 + } +} diff --git a/src/eic/ctrla.rs b/src/eic/ctrla.rs new file mode 100644 index 0000000..3cc4ce0 --- /dev/null +++ b/src/eic/ctrla.rs @@ -0,0 +1,251 @@ +#[doc = "Register `CTRLA` reader"] +pub struct R(crate::R); +impl core::ops::Deref for R { + type Target = crate::R; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +impl From> for R { + #[inline(always)] + fn from(reader: crate::R) -> Self { + R(reader) + } +} +#[doc = "Register `CTRLA` writer"] +pub struct W(crate::W); +impl core::ops::Deref for W { + type Target = crate::W; + #[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> for W { + #[inline(always)] + fn from(writer: crate::W) -> Self { + W(writer) + } +} +#[doc = "Field `SWRST` reader - Software Reset"] +pub struct SWRST_R(crate::FieldReader); +impl SWRST_R { + pub(crate) fn new(bits: bool) -> Self { + SWRST_R(crate::FieldReader::new(bits)) + } +} +impl core::ops::Deref for SWRST_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `SWRST` writer - Software Reset"] +pub struct SWRST_W<'a> { + w: &'a mut W, +} +impl<'a> SWRST_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 u8 & 0x01); + self.w + } +} +#[doc = "Field `ENABLE` reader - Enable"] +pub struct ENABLE_R(crate::FieldReader); +impl ENABLE_R { + pub(crate) fn new(bits: bool) -> Self { + ENABLE_R(crate::FieldReader::new(bits)) + } +} +impl core::ops::Deref for ENABLE_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `ENABLE` writer - Enable"] +pub struct ENABLE_W<'a> { + w: &'a mut W, +} +impl<'a> ENABLE_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 u8 & 0x01) << 1); + self.w + } +} +#[doc = "Clock Selection\n\nValue on reset: 0"] +#[derive(Clone, Copy, Debug, PartialEq)] +pub enum CKSEL_A { + #[doc = "0: Clocked by GCLK"] + CLK_GCLK = 0, + #[doc = "1: Clocked by ULP32K"] + CLK_ULP32K = 1, +} +impl From for bool { + #[inline(always)] + fn from(variant: CKSEL_A) -> Self { + variant as u8 != 0 + } +} +#[doc = "Field `CKSEL` reader - Clock Selection"] +pub struct CKSEL_R(crate::FieldReader); +impl CKSEL_R { + pub(crate) fn new(bits: bool) -> Self { + CKSEL_R(crate::FieldReader::new(bits)) + } + #[doc = r"Get enumerated values variant"] + #[inline(always)] + pub fn variant(&self) -> CKSEL_A { + match self.bits { + false => CKSEL_A::CLK_GCLK, + true => CKSEL_A::CLK_ULP32K, + } + } + #[doc = "Checks if the value of the field is `CLK_GCLK`"] + #[inline(always)] + pub fn is_clk_gclk(&self) -> bool { + **self == CKSEL_A::CLK_GCLK + } + #[doc = "Checks if the value of the field is `CLK_ULP32K`"] + #[inline(always)] + pub fn is_clk_ulp32k(&self) -> bool { + **self == CKSEL_A::CLK_ULP32K + } +} +impl core::ops::Deref for CKSEL_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `CKSEL` writer - Clock Selection"] +pub struct CKSEL_W<'a> { + w: &'a mut W, +} +impl<'a> CKSEL_W<'a> { + #[doc = r"Writes `variant` to the field"] + #[inline(always)] + pub fn variant(self, variant: CKSEL_A) -> &'a mut W { + self.bit(variant.into()) + } + #[doc = "Clocked by GCLK"] + #[inline(always)] + pub fn clk_gclk(self) -> &'a mut W { + self.variant(CKSEL_A::CLK_GCLK) + } + #[doc = "Clocked by ULP32K"] + #[inline(always)] + pub fn clk_ulp32k(self) -> &'a mut W { + self.variant(CKSEL_A::CLK_ULP32K) + } + #[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 << 4)) | ((value as u8 & 0x01) << 4); + self.w + } +} +impl R { + #[doc = "Bit 0 - Software Reset"] + #[inline(always)] + pub fn swrst(&self) -> SWRST_R { + SWRST_R::new((self.bits & 0x01) != 0) + } + #[doc = "Bit 1 - Enable"] + #[inline(always)] + pub fn enable(&self) -> ENABLE_R { + ENABLE_R::new(((self.bits >> 1) & 0x01) != 0) + } + #[doc = "Bit 4 - Clock Selection"] + #[inline(always)] + pub fn cksel(&self) -> CKSEL_R { + CKSEL_R::new(((self.bits >> 4) & 0x01) != 0) + } +} +impl W { + #[doc = "Bit 0 - Software Reset"] + #[inline(always)] + pub fn swrst(&mut self) -> SWRST_W { + SWRST_W { w: self } + } + #[doc = "Bit 1 - Enable"] + #[inline(always)] + pub fn enable(&mut self) -> ENABLE_W { + ENABLE_W { w: self } + } + #[doc = "Bit 4 - Clock Selection"] + #[inline(always)] + pub fn cksel(&mut self) -> CKSEL_W { + CKSEL_W { w: self } + } + #[doc = "Writes raw bits to the register."] + #[inline(always)] + pub unsafe fn bits(&mut self, bits: u8) -> &mut Self { + self.0.bits(bits); + self + } +} +#[doc = "Control A\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 [ctrla](index.html) module"] +pub struct CTRLA_SPEC; +impl crate::RegisterSpec for CTRLA_SPEC { + type Ux = u8; +} +#[doc = "`read()` method returns [ctrla::R](R) reader structure"] +impl crate::Readable for CTRLA_SPEC { + type Reader = R; +} +#[doc = "`write(|w| ..)` method takes [ctrla::W](W) writer structure"] +impl crate::Writable for CTRLA_SPEC { + type Writer = W; +} +#[doc = "`reset()` method sets CTRLA to value 0"] +impl crate::Resettable for CTRLA_SPEC { + #[inline(always)] + fn reset_value() -> Self::Ux { + 0 + } +} diff --git a/src/eic/debouncen.rs b/src/eic/debouncen.rs new file mode 100644 index 0000000..d6d1953 --- /dev/null +++ b/src/eic/debouncen.rs @@ -0,0 +1,102 @@ +#[doc = "Register `DEBOUNCEN` reader"] +pub struct R(crate::R); +impl core::ops::Deref for R { + type Target = crate::R; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +impl From> for R { + #[inline(always)] + fn from(reader: crate::R) -> Self { + R(reader) + } +} +#[doc = "Register `DEBOUNCEN` writer"] +pub struct W(crate::W); +impl core::ops::Deref for W { + type Target = crate::W; + #[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> for W { + #[inline(always)] + fn from(writer: crate::W) -> Self { + W(writer) + } +} +#[doc = "Field `DEBOUNCEN` reader - Debouncer Enable"] +pub struct DEBOUNCEN_R(crate::FieldReader); +impl DEBOUNCEN_R { + pub(crate) fn new(bits: u16) -> Self { + DEBOUNCEN_R(crate::FieldReader::new(bits)) + } +} +impl core::ops::Deref for DEBOUNCEN_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `DEBOUNCEN` writer - Debouncer Enable"] +pub struct DEBOUNCEN_W<'a> { + w: &'a mut W, +} +impl<'a> DEBOUNCEN_W<'a> { + #[doc = r"Writes raw bits to the field"] + #[inline(always)] + pub unsafe fn bits(self, value: u16) -> &'a mut W { + self.w.bits = (self.w.bits & !0xffff) | (value as u32 & 0xffff); + self.w + } +} +impl R { + #[doc = "Bits 0:15 - Debouncer Enable"] + #[inline(always)] + pub fn debouncen(&self) -> DEBOUNCEN_R { + DEBOUNCEN_R::new((self.bits & 0xffff) as u16) + } +} +impl W { + #[doc = "Bits 0:15 - Debouncer Enable"] + #[inline(always)] + pub fn debouncen(&mut self) -> DEBOUNCEN_W { + DEBOUNCEN_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 = "Debouncer Enable\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 [debouncen](index.html) module"] +pub struct DEBOUNCEN_SPEC; +impl crate::RegisterSpec for DEBOUNCEN_SPEC { + type Ux = u32; +} +#[doc = "`read()` method returns [debouncen::R](R) reader structure"] +impl crate::Readable for DEBOUNCEN_SPEC { + type Reader = R; +} +#[doc = "`write(|w| ..)` method takes [debouncen::W](W) writer structure"] +impl crate::Writable for DEBOUNCEN_SPEC { + type Writer = W; +} +#[doc = "`reset()` method sets DEBOUNCEN to value 0"] +impl crate::Resettable for DEBOUNCEN_SPEC { + #[inline(always)] + fn reset_value() -> Self::Ux { + 0 + } +} diff --git a/src/eic/dprescaler.rs b/src/eic/dprescaler.rs new file mode 100644 index 0000000..2bfbc46 --- /dev/null +++ b/src/eic/dprescaler.rs @@ -0,0 +1,671 @@ +#[doc = "Register `DPRESCALER` reader"] +pub struct R(crate::R); +impl core::ops::Deref for R { + type Target = crate::R; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +impl From> for R { + #[inline(always)] + fn from(reader: crate::R) -> Self { + R(reader) + } +} +#[doc = "Register `DPRESCALER` writer"] +pub struct W(crate::W); +impl core::ops::Deref for W { + type Target = crate::W; + #[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> for W { + #[inline(always)] + fn from(writer: crate::W) -> Self { + W(writer) + } +} +#[doc = "Debouncer Prescaler\n\nValue on reset: 0"] +#[derive(Clone, Copy, Debug, PartialEq)] +#[repr(u8)] +pub enum PRESCALER0_A { + #[doc = "0: EIC clock divided by 2"] + DIV2 = 0, + #[doc = "1: EIC clock divided by 4"] + DIV4 = 1, + #[doc = "2: EIC clock divided by 8"] + DIV8 = 2, + #[doc = "3: EIC clock divided by 16"] + DIV16 = 3, + #[doc = "4: EIC clock divided by 32"] + DIV32 = 4, + #[doc = "5: EIC clock divided by 64"] + DIV64 = 5, + #[doc = "6: EIC clock divided by 128"] + DIV128 = 6, + #[doc = "7: EIC clock divided by 256"] + DIV256 = 7, +} +impl From for u8 { + #[inline(always)] + fn from(variant: PRESCALER0_A) -> Self { + variant as _ + } +} +#[doc = "Field `PRESCALER0` reader - Debouncer Prescaler"] +pub struct PRESCALER0_R(crate::FieldReader); +impl PRESCALER0_R { + pub(crate) fn new(bits: u8) -> Self { + PRESCALER0_R(crate::FieldReader::new(bits)) + } + #[doc = r"Get enumerated values variant"] + #[inline(always)] + pub fn variant(&self) -> PRESCALER0_A { + match self.bits { + 0 => PRESCALER0_A::DIV2, + 1 => PRESCALER0_A::DIV4, + 2 => PRESCALER0_A::DIV8, + 3 => PRESCALER0_A::DIV16, + 4 => PRESCALER0_A::DIV32, + 5 => PRESCALER0_A::DIV64, + 6 => PRESCALER0_A::DIV128, + 7 => PRESCALER0_A::DIV256, + _ => unreachable!(), + } + } + #[doc = "Checks if the value of the field is `DIV2`"] + #[inline(always)] + pub fn is_div2(&self) -> bool { + **self == PRESCALER0_A::DIV2 + } + #[doc = "Checks if the value of the field is `DIV4`"] + #[inline(always)] + pub fn is_div4(&self) -> bool { + **self == PRESCALER0_A::DIV4 + } + #[doc = "Checks if the value of the field is `DIV8`"] + #[inline(always)] + pub fn is_div8(&self) -> bool { + **self == PRESCALER0_A::DIV8 + } + #[doc = "Checks if the value of the field is `DIV16`"] + #[inline(always)] + pub fn is_div16(&self) -> bool { + **self == PRESCALER0_A::DIV16 + } + #[doc = "Checks if the value of the field is `DIV32`"] + #[inline(always)] + pub fn is_div32(&self) -> bool { + **self == PRESCALER0_A::DIV32 + } + #[doc = "Checks if the value of the field is `DIV64`"] + #[inline(always)] + pub fn is_div64(&self) -> bool { + **self == PRESCALER0_A::DIV64 + } + #[doc = "Checks if the value of the field is `DIV128`"] + #[inline(always)] + pub fn is_div128(&self) -> bool { + **self == PRESCALER0_A::DIV128 + } + #[doc = "Checks if the value of the field is `DIV256`"] + #[inline(always)] + pub fn is_div256(&self) -> bool { + **self == PRESCALER0_A::DIV256 + } +} +impl core::ops::Deref for PRESCALER0_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `PRESCALER0` writer - Debouncer Prescaler"] +pub struct PRESCALER0_W<'a> { + w: &'a mut W, +} +impl<'a> PRESCALER0_W<'a> { + #[doc = r"Writes `variant` to the field"] + #[inline(always)] + pub fn variant(self, variant: PRESCALER0_A) -> &'a mut W { + self.bits(variant.into()) + } + #[doc = "EIC clock divided by 2"] + #[inline(always)] + pub fn div2(self) -> &'a mut W { + self.variant(PRESCALER0_A::DIV2) + } + #[doc = "EIC clock divided by 4"] + #[inline(always)] + pub fn div4(self) -> &'a mut W { + self.variant(PRESCALER0_A::DIV4) + } + #[doc = "EIC clock divided by 8"] + #[inline(always)] + pub fn div8(self) -> &'a mut W { + self.variant(PRESCALER0_A::DIV8) + } + #[doc = "EIC clock divided by 16"] + #[inline(always)] + pub fn div16(self) -> &'a mut W { + self.variant(PRESCALER0_A::DIV16) + } + #[doc = "EIC clock divided by 32"] + #[inline(always)] + pub fn div32(self) -> &'a mut W { + self.variant(PRESCALER0_A::DIV32) + } + #[doc = "EIC clock divided by 64"] + #[inline(always)] + pub fn div64(self) -> &'a mut W { + self.variant(PRESCALER0_A::DIV64) + } + #[doc = "EIC clock divided by 128"] + #[inline(always)] + pub fn div128(self) -> &'a mut W { + self.variant(PRESCALER0_A::DIV128) + } + #[doc = "EIC clock divided by 256"] + #[inline(always)] + pub fn div256(self) -> &'a mut W { + self.variant(PRESCALER0_A::DIV256) + } + #[doc = r"Writes raw bits to the field"] + #[inline(always)] + pub fn bits(self, value: u8) -> &'a mut W { + self.w.bits = (self.w.bits & !0x07) | (value as u32 & 0x07); + self.w + } +} +#[doc = "Debouncer number of states\n\nValue on reset: 0"] +#[derive(Clone, Copy, Debug, PartialEq)] +pub enum STATES0_A { + #[doc = "0: 3 low frequency samples"] + LFREQ3 = 0, + #[doc = "1: 7 low frequency samples"] + LFREQ7 = 1, +} +impl From for bool { + #[inline(always)] + fn from(variant: STATES0_A) -> Self { + variant as u8 != 0 + } +} +#[doc = "Field `STATES0` reader - Debouncer number of states"] +pub struct STATES0_R(crate::FieldReader); +impl STATES0_R { + pub(crate) fn new(bits: bool) -> Self { + STATES0_R(crate::FieldReader::new(bits)) + } + #[doc = r"Get enumerated values variant"] + #[inline(always)] + pub fn variant(&self) -> STATES0_A { + match self.bits { + false => STATES0_A::LFREQ3, + true => STATES0_A::LFREQ7, + } + } + #[doc = "Checks if the value of the field is `LFREQ3`"] + #[inline(always)] + pub fn is_lfreq3(&self) -> bool { + **self == STATES0_A::LFREQ3 + } + #[doc = "Checks if the value of the field is `LFREQ7`"] + #[inline(always)] + pub fn is_lfreq7(&self) -> bool { + **self == STATES0_A::LFREQ7 + } +} +impl core::ops::Deref for STATES0_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `STATES0` writer - Debouncer number of states"] +pub struct STATES0_W<'a> { + w: &'a mut W, +} +impl<'a> STATES0_W<'a> { + #[doc = r"Writes `variant` to the field"] + #[inline(always)] + pub fn variant(self, variant: STATES0_A) -> &'a mut W { + self.bit(variant.into()) + } + #[doc = "3 low frequency samples"] + #[inline(always)] + pub fn lfreq3(self) -> &'a mut W { + self.variant(STATES0_A::LFREQ3) + } + #[doc = "7 low frequency samples"] + #[inline(always)] + pub fn lfreq7(self) -> &'a mut W { + self.variant(STATES0_A::LFREQ7) + } + #[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 << 3)) | ((value as u32 & 0x01) << 3); + self.w + } +} +#[doc = "Debouncer Prescaler\n\nValue on reset: 0"] +#[derive(Clone, Copy, Debug, PartialEq)] +#[repr(u8)] +pub enum PRESCALER1_A { + #[doc = "0: EIC clock divided by 2"] + DIV2 = 0, + #[doc = "1: EIC clock divided by 4"] + DIV4 = 1, + #[doc = "2: EIC clock divided by 8"] + DIV8 = 2, + #[doc = "3: EIC clock divided by 16"] + DIV16 = 3, + #[doc = "4: EIC clock divided by 32"] + DIV32 = 4, + #[doc = "5: EIC clock divided by 64"] + DIV64 = 5, + #[doc = "6: EIC clock divided by 128"] + DIV128 = 6, + #[doc = "7: EIC clock divided by 256"] + DIV256 = 7, +} +impl From for u8 { + #[inline(always)] + fn from(variant: PRESCALER1_A) -> Self { + variant as _ + } +} +#[doc = "Field `PRESCALER1` reader - Debouncer Prescaler"] +pub struct PRESCALER1_R(crate::FieldReader); +impl PRESCALER1_R { + pub(crate) fn new(bits: u8) -> Self { + PRESCALER1_R(crate::FieldReader::new(bits)) + } + #[doc = r"Get enumerated values variant"] + #[inline(always)] + pub fn variant(&self) -> PRESCALER1_A { + match self.bits { + 0 => PRESCALER1_A::DIV2, + 1 => PRESCALER1_A::DIV4, + 2 => PRESCALER1_A::DIV8, + 3 => PRESCALER1_A::DIV16, + 4 => PRESCALER1_A::DIV32, + 5 => PRESCALER1_A::DIV64, + 6 => PRESCALER1_A::DIV128, + 7 => PRESCALER1_A::DIV256, + _ => unreachable!(), + } + } + #[doc = "Checks if the value of the field is `DIV2`"] + #[inline(always)] + pub fn is_div2(&self) -> bool { + **self == PRESCALER1_A::DIV2 + } + #[doc = "Checks if the value of the field is `DIV4`"] + #[inline(always)] + pub fn is_div4(&self) -> bool { + **self == PRESCALER1_A::DIV4 + } + #[doc = "Checks if the value of the field is `DIV8`"] + #[inline(always)] + pub fn is_div8(&self) -> bool { + **self == PRESCALER1_A::DIV8 + } + #[doc = "Checks if the value of the field is `DIV16`"] + #[inline(always)] + pub fn is_div16(&self) -> bool { + **self == PRESCALER1_A::DIV16 + } + #[doc = "Checks if the value of the field is `DIV32`"] + #[inline(always)] + pub fn is_div32(&self) -> bool { + **self == PRESCALER1_A::DIV32 + } + #[doc = "Checks if the value of the field is `DIV64`"] + #[inline(always)] + pub fn is_div64(&self) -> bool { + **self == PRESCALER1_A::DIV64 + } + #[doc = "Checks if the value of the field is `DIV128`"] + #[inline(always)] + pub fn is_div128(&self) -> bool { + **self == PRESCALER1_A::DIV128 + } + #[doc = "Checks if the value of the field is `DIV256`"] + #[inline(always)] + pub fn is_div256(&self) -> bool { + **self == PRESCALER1_A::DIV256 + } +} +impl core::ops::Deref for PRESCALER1_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `PRESCALER1` writer - Debouncer Prescaler"] +pub struct PRESCALER1_W<'a> { + w: &'a mut W, +} +impl<'a> PRESCALER1_W<'a> { + #[doc = r"Writes `variant` to the field"] + #[inline(always)] + pub fn variant(self, variant: PRESCALER1_A) -> &'a mut W { + self.bits(variant.into()) + } + #[doc = "EIC clock divided by 2"] + #[inline(always)] + pub fn div2(self) -> &'a mut W { + self.variant(PRESCALER1_A::DIV2) + } + #[doc = "EIC clock divided by 4"] + #[inline(always)] + pub fn div4(self) -> &'a mut W { + self.variant(PRESCALER1_A::DIV4) + } + #[doc = "EIC clock divided by 8"] + #[inline(always)] + pub fn div8(self) -> &'a mut W { + self.variant(PRESCALER1_A::DIV8) + } + #[doc = "EIC clock divided by 16"] + #[inline(always)] + pub fn div16(self) -> &'a mut W { + self.variant(PRESCALER1_A::DIV16) + } + #[doc = "EIC clock divided by 32"] + #[inline(always)] + pub fn div32(self) -> &'a mut W { + self.variant(PRESCALER1_A::DIV32) + } + #[doc = "EIC clock divided by 64"] + #[inline(always)] + pub fn div64(self) -> &'a mut W { + self.variant(PRESCALER1_A::DIV64) + } + #[doc = "EIC clock divided by 128"] + #[inline(always)] + pub fn div128(self) -> &'a mut W { + self.variant(PRESCALER1_A::DIV128) + } + #[doc = "EIC clock divided by 256"] + #[inline(always)] + pub fn div256(self) -> &'a mut W { + self.variant(PRESCALER1_A::DIV256) + } + #[doc = r"Writes raw bits to the field"] + #[inline(always)] + pub fn bits(self, value: u8) -> &'a mut W { + self.w.bits = (self.w.bits & !(0x07 << 4)) | ((value as u32 & 0x07) << 4); + self.w + } +} +#[doc = "Debouncer number of states\n\nValue on reset: 0"] +#[derive(Clone, Copy, Debug, PartialEq)] +pub enum STATES1_A { + #[doc = "0: 3 low frequency samples"] + LFREQ3 = 0, + #[doc = "1: 7 low frequency samples"] + LFREQ7 = 1, +} +impl From for bool { + #[inline(always)] + fn from(variant: STATES1_A) -> Self { + variant as u8 != 0 + } +} +#[doc = "Field `STATES1` reader - Debouncer number of states"] +pub struct STATES1_R(crate::FieldReader); +impl STATES1_R { + pub(crate) fn new(bits: bool) -> Self { + STATES1_R(crate::FieldReader::new(bits)) + } + #[doc = r"Get enumerated values variant"] + #[inline(always)] + pub fn variant(&self) -> STATES1_A { + match self.bits { + false => STATES1_A::LFREQ3, + true => STATES1_A::LFREQ7, + } + } + #[doc = "Checks if the value of the field is `LFREQ3`"] + #[inline(always)] + pub fn is_lfreq3(&self) -> bool { + **self == STATES1_A::LFREQ3 + } + #[doc = "Checks if the value of the field is `LFREQ7`"] + #[inline(always)] + pub fn is_lfreq7(&self) -> bool { + **self == STATES1_A::LFREQ7 + } +} +impl core::ops::Deref for STATES1_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `STATES1` writer - Debouncer number of states"] +pub struct STATES1_W<'a> { + w: &'a mut W, +} +impl<'a> STATES1_W<'a> { + #[doc = r"Writes `variant` to the field"] + #[inline(always)] + pub fn variant(self, variant: STATES1_A) -> &'a mut W { + self.bit(variant.into()) + } + #[doc = "3 low frequency samples"] + #[inline(always)] + pub fn lfreq3(self) -> &'a mut W { + self.variant(STATES1_A::LFREQ3) + } + #[doc = "7 low frequency samples"] + #[inline(always)] + pub fn lfreq7(self) -> &'a mut W { + self.variant(STATES1_A::LFREQ7) + } + #[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 << 7)) | ((value as u32 & 0x01) << 7); + self.w + } +} +#[doc = "Pin Sampler frequency selection\n\nValue on reset: 0"] +#[derive(Clone, Copy, Debug, PartialEq)] +pub enum TICKON_A { + #[doc = "0: Clocked by GCLK"] + CLK_GCLK_EIC = 0, + #[doc = "1: Clocked by Low Frequency Clock"] + CLK_LFREQ = 1, +} +impl From for bool { + #[inline(always)] + fn from(variant: TICKON_A) -> Self { + variant as u8 != 0 + } +} +#[doc = "Field `TICKON` reader - Pin Sampler frequency selection"] +pub struct TICKON_R(crate::FieldReader); +impl TICKON_R { + pub(crate) fn new(bits: bool) -> Self { + TICKON_R(crate::FieldReader::new(bits)) + } + #[doc = r"Get enumerated values variant"] + #[inline(always)] + pub fn variant(&self) -> TICKON_A { + match self.bits { + false => TICKON_A::CLK_GCLK_EIC, + true => TICKON_A::CLK_LFREQ, + } + } + #[doc = "Checks if the value of the field is `CLK_GCLK_EIC`"] + #[inline(always)] + pub fn is_clk_gclk_eic(&self) -> bool { + **self == TICKON_A::CLK_GCLK_EIC + } + #[doc = "Checks if the value of the field is `CLK_LFREQ`"] + #[inline(always)] + pub fn is_clk_lfreq(&self) -> bool { + **self == TICKON_A::CLK_LFREQ + } +} +impl core::ops::Deref for TICKON_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `TICKON` writer - Pin Sampler frequency selection"] +pub struct TICKON_W<'a> { + w: &'a mut W, +} +impl<'a> TICKON_W<'a> { + #[doc = r"Writes `variant` to the field"] + #[inline(always)] + pub fn variant(self, variant: TICKON_A) -> &'a mut W { + self.bit(variant.into()) + } + #[doc = "Clocked by GCLK"] + #[inline(always)] + pub fn clk_gclk_eic(self) -> &'a mut W { + self.variant(TICKON_A::CLK_GCLK_EIC) + } + #[doc = "Clocked by Low Frequency Clock"] + #[inline(always)] + pub fn clk_lfreq(self) -> &'a mut W { + self.variant(TICKON_A::CLK_LFREQ) + } + #[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 << 16)) | ((value as u32 & 0x01) << 16); + self.w + } +} +impl R { + #[doc = "Bits 0:2 - Debouncer Prescaler"] + #[inline(always)] + pub fn prescaler0(&self) -> PRESCALER0_R { + PRESCALER0_R::new((self.bits & 0x07) as u8) + } + #[doc = "Bit 3 - Debouncer number of states"] + #[inline(always)] + pub fn states0(&self) -> STATES0_R { + STATES0_R::new(((self.bits >> 3) & 0x01) != 0) + } + #[doc = "Bits 4:6 - Debouncer Prescaler"] + #[inline(always)] + pub fn prescaler1(&self) -> PRESCALER1_R { + PRESCALER1_R::new(((self.bits >> 4) & 0x07) as u8) + } + #[doc = "Bit 7 - Debouncer number of states"] + #[inline(always)] + pub fn states1(&self) -> STATES1_R { + STATES1_R::new(((self.bits >> 7) & 0x01) != 0) + } + #[doc = "Bit 16 - Pin Sampler frequency selection"] + #[inline(always)] + pub fn tickon(&self) -> TICKON_R { + TICKON_R::new(((self.bits >> 16) & 0x01) != 0) + } +} +impl W { + #[doc = "Bits 0:2 - Debouncer Prescaler"] + #[inline(always)] + pub fn prescaler0(&mut self) -> PRESCALER0_W { + PRESCALER0_W { w: self } + } + #[doc = "Bit 3 - Debouncer number of states"] + #[inline(always)] + pub fn states0(&mut self) -> STATES0_W { + STATES0_W { w: self } + } + #[doc = "Bits 4:6 - Debouncer Prescaler"] + #[inline(always)] + pub fn prescaler1(&mut self) -> PRESCALER1_W { + PRESCALER1_W { w: self } + } + #[doc = "Bit 7 - Debouncer number of states"] + #[inline(always)] + pub fn states1(&mut self) -> STATES1_W { + STATES1_W { w: self } + } + #[doc = "Bit 16 - Pin Sampler frequency selection"] + #[inline(always)] + pub fn tickon(&mut self) -> TICKON_W { + TICKON_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 = "Debouncer Prescaler\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 [dprescaler](index.html) module"] +pub struct DPRESCALER_SPEC; +impl crate::RegisterSpec for DPRESCALER_SPEC { + type Ux = u32; +} +#[doc = "`read()` method returns [dprescaler::R](R) reader structure"] +impl crate::Readable for DPRESCALER_SPEC { + type Reader = R; +} +#[doc = "`write(|w| ..)` method takes [dprescaler::W](W) writer structure"] +impl crate::Writable for DPRESCALER_SPEC { + type Writer = W; +} +#[doc = "`reset()` method sets DPRESCALER to value 0"] +impl crate::Resettable for DPRESCALER_SPEC { + #[inline(always)] + fn reset_value() -> Self::Ux { + 0 + } +} diff --git a/src/eic/evctrl.rs b/src/eic/evctrl.rs new file mode 100644 index 0000000..e23d3f1 --- /dev/null +++ b/src/eic/evctrl.rs @@ -0,0 +1,102 @@ +#[doc = "Register `EVCTRL` reader"] +pub struct R(crate::R); +impl core::ops::Deref for R { + type Target = crate::R; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +impl From> for R { + #[inline(always)] + fn from(reader: crate::R) -> Self { + R(reader) + } +} +#[doc = "Register `EVCTRL` writer"] +pub struct W(crate::W); +impl core::ops::Deref for W { + type Target = crate::W; + #[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> for W { + #[inline(always)] + fn from(writer: crate::W) -> Self { + W(writer) + } +} +#[doc = "Field `EXTINTEO` reader - External Interrupt Event Output Enable"] +pub struct EXTINTEO_R(crate::FieldReader); +impl EXTINTEO_R { + pub(crate) fn new(bits: u16) -> Self { + EXTINTEO_R(crate::FieldReader::new(bits)) + } +} +impl core::ops::Deref for EXTINTEO_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `EXTINTEO` writer - External Interrupt Event Output Enable"] +pub struct EXTINTEO_W<'a> { + w: &'a mut W, +} +impl<'a> EXTINTEO_W<'a> { + #[doc = r"Writes raw bits to the field"] + #[inline(always)] + pub unsafe fn bits(self, value: u16) -> &'a mut W { + self.w.bits = (self.w.bits & !0xffff) | (value as u32 & 0xffff); + self.w + } +} +impl R { + #[doc = "Bits 0:15 - External Interrupt Event Output Enable"] + #[inline(always)] + pub fn extinteo(&self) -> EXTINTEO_R { + EXTINTEO_R::new((self.bits & 0xffff) as u16) + } +} +impl W { + #[doc = "Bits 0:15 - External Interrupt Event Output Enable"] + #[inline(always)] + pub fn extinteo(&mut self) -> EXTINTEO_W { + EXTINTEO_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 = "Event Control\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 [evctrl](index.html) module"] +pub struct EVCTRL_SPEC; +impl crate::RegisterSpec for EVCTRL_SPEC { + type Ux = u32; +} +#[doc = "`read()` method returns [evctrl::R](R) reader structure"] +impl crate::Readable for EVCTRL_SPEC { + type Reader = R; +} +#[doc = "`write(|w| ..)` method takes [evctrl::W](W) writer structure"] +impl crate::Writable for EVCTRL_SPEC { + type Writer = W; +} +#[doc = "`reset()` method sets EVCTRL to value 0"] +impl crate::Resettable for EVCTRL_SPEC { + #[inline(always)] + fn reset_value() -> Self::Ux { + 0 + } +} diff --git a/src/eic/intenclr.rs b/src/eic/intenclr.rs new file mode 100644 index 0000000..389cfb0 --- /dev/null +++ b/src/eic/intenclr.rs @@ -0,0 +1,102 @@ +#[doc = "Register `INTENCLR` reader"] +pub struct R(crate::R); +impl core::ops::Deref for R { + type Target = crate::R; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +impl From> for R { + #[inline(always)] + fn from(reader: crate::R) -> Self { + R(reader) + } +} +#[doc = "Register `INTENCLR` writer"] +pub struct W(crate::W); +impl core::ops::Deref for W { + type Target = crate::W; + #[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> for W { + #[inline(always)] + fn from(writer: crate::W) -> Self { + W(writer) + } +} +#[doc = "Field `EXTINT` reader - External Interrupt Enable"] +pub struct EXTINT_R(crate::FieldReader); +impl EXTINT_R { + pub(crate) fn new(bits: u16) -> Self { + EXTINT_R(crate::FieldReader::new(bits)) + } +} +impl core::ops::Deref for EXTINT_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `EXTINT` writer - External Interrupt Enable"] +pub struct EXTINT_W<'a> { + w: &'a mut W, +} +impl<'a> EXTINT_W<'a> { + #[doc = r"Writes raw bits to the field"] + #[inline(always)] + pub unsafe fn bits(self, value: u16) -> &'a mut W { + self.w.bits = (self.w.bits & !0xffff) | (value as u32 & 0xffff); + self.w + } +} +impl R { + #[doc = "Bits 0:15 - External Interrupt Enable"] + #[inline(always)] + pub fn extint(&self) -> EXTINT_R { + EXTINT_R::new((self.bits & 0xffff) as u16) + } +} +impl W { + #[doc = "Bits 0:15 - External Interrupt Enable"] + #[inline(always)] + pub fn extint(&mut self) -> EXTINT_W { + EXTINT_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 = "Interrupt Enable Clear\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 [intenclr](index.html) module"] +pub struct INTENCLR_SPEC; +impl crate::RegisterSpec for INTENCLR_SPEC { + type Ux = u32; +} +#[doc = "`read()` method returns [intenclr::R](R) reader structure"] +impl crate::Readable for INTENCLR_SPEC { + type Reader = R; +} +#[doc = "`write(|w| ..)` method takes [intenclr::W](W) writer structure"] +impl crate::Writable for INTENCLR_SPEC { + type Writer = W; +} +#[doc = "`reset()` method sets INTENCLR to value 0"] +impl crate::Resettable for INTENCLR_SPEC { + #[inline(always)] + fn reset_value() -> Self::Ux { + 0 + } +} diff --git a/src/eic/intenset.rs b/src/eic/intenset.rs new file mode 100644 index 0000000..4a699e0 --- /dev/null +++ b/src/eic/intenset.rs @@ -0,0 +1,102 @@ +#[doc = "Register `INTENSET` reader"] +pub struct R(crate::R); +impl core::ops::Deref for R { + type Target = crate::R; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +impl From> for R { + #[inline(always)] + fn from(reader: crate::R) -> Self { + R(reader) + } +} +#[doc = "Register `INTENSET` writer"] +pub struct W(crate::W); +impl core::ops::Deref for W { + type Target = crate::W; + #[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> for W { + #[inline(always)] + fn from(writer: crate::W) -> Self { + W(writer) + } +} +#[doc = "Field `EXTINT` reader - External Interrupt Enable"] +pub struct EXTINT_R(crate::FieldReader); +impl EXTINT_R { + pub(crate) fn new(bits: u16) -> Self { + EXTINT_R(crate::FieldReader::new(bits)) + } +} +impl core::ops::Deref for EXTINT_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `EXTINT` writer - External Interrupt Enable"] +pub struct EXTINT_W<'a> { + w: &'a mut W, +} +impl<'a> EXTINT_W<'a> { + #[doc = r"Writes raw bits to the field"] + #[inline(always)] + pub unsafe fn bits(self, value: u16) -> &'a mut W { + self.w.bits = (self.w.bits & !0xffff) | (value as u32 & 0xffff); + self.w + } +} +impl R { + #[doc = "Bits 0:15 - External Interrupt Enable"] + #[inline(always)] + pub fn extint(&self) -> EXTINT_R { + EXTINT_R::new((self.bits & 0xffff) as u16) + } +} +impl W { + #[doc = "Bits 0:15 - External Interrupt Enable"] + #[inline(always)] + pub fn extint(&mut self) -> EXTINT_W { + EXTINT_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 = "Interrupt Enable Set\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 [intenset](index.html) module"] +pub struct INTENSET_SPEC; +impl crate::RegisterSpec for INTENSET_SPEC { + type Ux = u32; +} +#[doc = "`read()` method returns [intenset::R](R) reader structure"] +impl crate::Readable for INTENSET_SPEC { + type Reader = R; +} +#[doc = "`write(|w| ..)` method takes [intenset::W](W) writer structure"] +impl crate::Writable for INTENSET_SPEC { + type Writer = W; +} +#[doc = "`reset()` method sets INTENSET to value 0"] +impl crate::Resettable for INTENSET_SPEC { + #[inline(always)] + fn reset_value() -> Self::Ux { + 0 + } +} diff --git a/src/eic/intflag.rs b/src/eic/intflag.rs new file mode 100644 index 0000000..0fcb751 --- /dev/null +++ b/src/eic/intflag.rs @@ -0,0 +1,102 @@ +#[doc = "Register `INTFLAG` reader"] +pub struct R(crate::R); +impl core::ops::Deref for R { + type Target = crate::R; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +impl From> for R { + #[inline(always)] + fn from(reader: crate::R) -> Self { + R(reader) + } +} +#[doc = "Register `INTFLAG` writer"] +pub struct W(crate::W); +impl core::ops::Deref for W { + type Target = crate::W; + #[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> for W { + #[inline(always)] + fn from(writer: crate::W) -> Self { + W(writer) + } +} +#[doc = "Field `EXTINT` reader - External Interrupt"] +pub struct EXTINT_R(crate::FieldReader); +impl EXTINT_R { + pub(crate) fn new(bits: u16) -> Self { + EXTINT_R(crate::FieldReader::new(bits)) + } +} +impl core::ops::Deref for EXTINT_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `EXTINT` writer - External Interrupt"] +pub struct EXTINT_W<'a> { + w: &'a mut W, +} +impl<'a> EXTINT_W<'a> { + #[doc = r"Writes raw bits to the field"] + #[inline(always)] + pub unsafe fn bits(self, value: u16) -> &'a mut W { + self.w.bits = (self.w.bits & !0xffff) | (value as u32 & 0xffff); + self.w + } +} +impl R { + #[doc = "Bits 0:15 - External Interrupt"] + #[inline(always)] + pub fn extint(&self) -> EXTINT_R { + EXTINT_R::new((self.bits & 0xffff) as u16) + } +} +impl W { + #[doc = "Bits 0:15 - External Interrupt"] + #[inline(always)] + pub fn extint(&mut self) -> EXTINT_W { + EXTINT_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 = "Interrupt Flag Status and Clear\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 [intflag](index.html) module"] +pub struct INTFLAG_SPEC; +impl crate::RegisterSpec for INTFLAG_SPEC { + type Ux = u32; +} +#[doc = "`read()` method returns [intflag::R](R) reader structure"] +impl crate::Readable for INTFLAG_SPEC { + type Reader = R; +} +#[doc = "`write(|w| ..)` method takes [intflag::W](W) writer structure"] +impl crate::Writable for INTFLAG_SPEC { + type Writer = W; +} +#[doc = "`reset()` method sets INTFLAG to value 0"] +impl crate::Resettable for INTFLAG_SPEC { + #[inline(always)] + fn reset_value() -> Self::Ux { + 0 + } +} diff --git a/src/eic/nmictrl.rs b/src/eic/nmictrl.rs new file mode 100644 index 0000000..1e16dbd --- /dev/null +++ b/src/eic/nmictrl.rs @@ -0,0 +1,342 @@ +#[doc = "Register `NMICTRL` reader"] +pub struct R(crate::R); +impl core::ops::Deref for R { + type Target = crate::R; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +impl From> for R { + #[inline(always)] + fn from(reader: crate::R) -> Self { + R(reader) + } +} +#[doc = "Register `NMICTRL` writer"] +pub struct W(crate::W); +impl core::ops::Deref for W { + type Target = crate::W; + #[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> for W { + #[inline(always)] + fn from(writer: crate::W) -> Self { + W(writer) + } +} +#[doc = "Non-Maskable Interrupt Sense Configuration\n\nValue on reset: 0"] +#[derive(Clone, Copy, Debug, PartialEq)] +#[repr(u8)] +pub enum NMISENSE_A { + #[doc = "0: No detection"] + NONE = 0, + #[doc = "1: Rising-edge detection"] + RISE = 1, + #[doc = "2: Falling-edge detection"] + FALL = 2, + #[doc = "3: Both-edges detection"] + BOTH = 3, + #[doc = "4: High-level detection"] + HIGH = 4, + #[doc = "5: Low-level detection"] + LOW = 5, +} +impl From for u8 { + #[inline(always)] + fn from(variant: NMISENSE_A) -> Self { + variant as _ + } +} +#[doc = "Field `NMISENSE` reader - Non-Maskable Interrupt Sense Configuration"] +pub struct NMISENSE_R(crate::FieldReader); +impl NMISENSE_R { + pub(crate) fn new(bits: u8) -> Self { + NMISENSE_R(crate::FieldReader::new(bits)) + } + #[doc = r"Get enumerated values variant"] + #[inline(always)] + pub fn variant(&self) -> Option { + match self.bits { + 0 => Some(NMISENSE_A::NONE), + 1 => Some(NMISENSE_A::RISE), + 2 => Some(NMISENSE_A::FALL), + 3 => Some(NMISENSE_A::BOTH), + 4 => Some(NMISENSE_A::HIGH), + 5 => Some(NMISENSE_A::LOW), + _ => None, + } + } + #[doc = "Checks if the value of the field is `NONE`"] + #[inline(always)] + pub fn is_none(&self) -> bool { + **self == NMISENSE_A::NONE + } + #[doc = "Checks if the value of the field is `RISE`"] + #[inline(always)] + pub fn is_rise(&self) -> bool { + **self == NMISENSE_A::RISE + } + #[doc = "Checks if the value of the field is `FALL`"] + #[inline(always)] + pub fn is_fall(&self) -> bool { + **self == NMISENSE_A::FALL + } + #[doc = "Checks if the value of the field is `BOTH`"] + #[inline(always)] + pub fn is_both(&self) -> bool { + **self == NMISENSE_A::BOTH + } + #[doc = "Checks if the value of the field is `HIGH`"] + #[inline(always)] + pub fn is_high(&self) -> bool { + **self == NMISENSE_A::HIGH + } + #[doc = "Checks if the value of the field is `LOW`"] + #[inline(always)] + pub fn is_low(&self) -> bool { + **self == NMISENSE_A::LOW + } +} +impl core::ops::Deref for NMISENSE_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `NMISENSE` writer - Non-Maskable Interrupt Sense Configuration"] +pub struct NMISENSE_W<'a> { + w: &'a mut W, +} +impl<'a> NMISENSE_W<'a> { + #[doc = r"Writes `variant` to the field"] + #[inline(always)] + pub fn variant(self, variant: NMISENSE_A) -> &'a mut W { + unsafe { self.bits(variant.into()) } + } + #[doc = "No detection"] + #[inline(always)] + pub fn none(self) -> &'a mut W { + self.variant(NMISENSE_A::NONE) + } + #[doc = "Rising-edge detection"] + #[inline(always)] + pub fn rise(self) -> &'a mut W { + self.variant(NMISENSE_A::RISE) + } + #[doc = "Falling-edge detection"] + #[inline(always)] + pub fn fall(self) -> &'a mut W { + self.variant(NMISENSE_A::FALL) + } + #[doc = "Both-edges detection"] + #[inline(always)] + pub fn both(self) -> &'a mut W { + self.variant(NMISENSE_A::BOTH) + } + #[doc = "High-level detection"] + #[inline(always)] + pub fn high(self) -> &'a mut W { + self.variant(NMISENSE_A::HIGH) + } + #[doc = "Low-level detection"] + #[inline(always)] + pub fn low(self) -> &'a mut W { + self.variant(NMISENSE_A::LOW) + } + #[doc = r"Writes raw bits to the field"] + #[inline(always)] + pub unsafe fn bits(self, value: u8) -> &'a mut W { + self.w.bits = (self.w.bits & !0x07) | (value as u8 & 0x07); + self.w + } +} +#[doc = "Field `NMIFILTEN` reader - Non-Maskable Interrupt Filter Enable"] +pub struct NMIFILTEN_R(crate::FieldReader); +impl NMIFILTEN_R { + pub(crate) fn new(bits: bool) -> Self { + NMIFILTEN_R(crate::FieldReader::new(bits)) + } +} +impl core::ops::Deref for NMIFILTEN_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `NMIFILTEN` writer - Non-Maskable Interrupt Filter Enable"] +pub struct NMIFILTEN_W<'a> { + w: &'a mut W, +} +impl<'a> NMIFILTEN_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 << 3)) | ((value as u8 & 0x01) << 3); + self.w + } +} +#[doc = "Asynchronous Edge Detection Mode\n\nValue on reset: 0"] +#[derive(Clone, Copy, Debug, PartialEq)] +pub enum NMIASYNCH_A { + #[doc = "0: Edge detection is clock synchronously operated"] + SYNC = 0, + #[doc = "1: Edge detection is clock asynchronously operated"] + ASYNC = 1, +} +impl From for bool { + #[inline(always)] + fn from(variant: NMIASYNCH_A) -> Self { + variant as u8 != 0 + } +} +#[doc = "Field `NMIASYNCH` reader - Asynchronous Edge Detection Mode"] +pub struct NMIASYNCH_R(crate::FieldReader); +impl NMIASYNCH_R { + pub(crate) fn new(bits: bool) -> Self { + NMIASYNCH_R(crate::FieldReader::new(bits)) + } + #[doc = r"Get enumerated values variant"] + #[inline(always)] + pub fn variant(&self) -> NMIASYNCH_A { + match self.bits { + false => NMIASYNCH_A::SYNC, + true => NMIASYNCH_A::ASYNC, + } + } + #[doc = "Checks if the value of the field is `SYNC`"] + #[inline(always)] + pub fn is_sync(&self) -> bool { + **self == NMIASYNCH_A::SYNC + } + #[doc = "Checks if the value of the field is `ASYNC`"] + #[inline(always)] + pub fn is_async(&self) -> bool { + **self == NMIASYNCH_A::ASYNC + } +} +impl core::ops::Deref for NMIASYNCH_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `NMIASYNCH` writer - Asynchronous Edge Detection Mode"] +pub struct NMIASYNCH_W<'a> { + w: &'a mut W, +} +impl<'a> NMIASYNCH_W<'a> { + #[doc = r"Writes `variant` to the field"] + #[inline(always)] + pub fn variant(self, variant: NMIASYNCH_A) -> &'a mut W { + self.bit(variant.into()) + } + #[doc = "Edge detection is clock synchronously operated"] + #[inline(always)] + pub fn sync(self) -> &'a mut W { + self.variant(NMIASYNCH_A::SYNC) + } + #[doc = "Edge detection is clock asynchronously operated"] + #[inline(always)] + pub fn async_(self) -> &'a mut W { + self.variant(NMIASYNCH_A::ASYNC) + } + #[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 << 4)) | ((value as u8 & 0x01) << 4); + self.w + } +} +impl R { + #[doc = "Bits 0:2 - Non-Maskable Interrupt Sense Configuration"] + #[inline(always)] + pub fn nmisense(&self) -> NMISENSE_R { + NMISENSE_R::new((self.bits & 0x07) as u8) + } + #[doc = "Bit 3 - Non-Maskable Interrupt Filter Enable"] + #[inline(always)] + pub fn nmifilten(&self) -> NMIFILTEN_R { + NMIFILTEN_R::new(((self.bits >> 3) & 0x01) != 0) + } + #[doc = "Bit 4 - Asynchronous Edge Detection Mode"] + #[inline(always)] + pub fn nmiasynch(&self) -> NMIASYNCH_R { + NMIASYNCH_R::new(((self.bits >> 4) & 0x01) != 0) + } +} +impl W { + #[doc = "Bits 0:2 - Non-Maskable Interrupt Sense Configuration"] + #[inline(always)] + pub fn nmisense(&mut self) -> NMISENSE_W { + NMISENSE_W { w: self } + } + #[doc = "Bit 3 - Non-Maskable Interrupt Filter Enable"] + #[inline(always)] + pub fn nmifilten(&mut self) -> NMIFILTEN_W { + NMIFILTEN_W { w: self } + } + #[doc = "Bit 4 - Asynchronous Edge Detection Mode"] + #[inline(always)] + pub fn nmiasynch(&mut self) -> NMIASYNCH_W { + NMIASYNCH_W { w: self } + } + #[doc = "Writes raw bits to the register."] + #[inline(always)] + pub unsafe fn bits(&mut self, bits: u8) -> &mut Self { + self.0.bits(bits); + self + } +} +#[doc = "Non-Maskable Interrupt Control\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 [nmictrl](index.html) module"] +pub struct NMICTRL_SPEC; +impl crate::RegisterSpec for NMICTRL_SPEC { + type Ux = u8; +} +#[doc = "`read()` method returns [nmictrl::R](R) reader structure"] +impl crate::Readable for NMICTRL_SPEC { + type Reader = R; +} +#[doc = "`write(|w| ..)` method takes [nmictrl::W](W) writer structure"] +impl crate::Writable for NMICTRL_SPEC { + type Writer = W; +} +#[doc = "`reset()` method sets NMICTRL to value 0"] +impl crate::Resettable for NMICTRL_SPEC { + #[inline(always)] + fn reset_value() -> Self::Ux { + 0 + } +} diff --git a/src/eic/nmiflag.rs b/src/eic/nmiflag.rs new file mode 100644 index 0000000..3155276 --- /dev/null +++ b/src/eic/nmiflag.rs @@ -0,0 +1,112 @@ +#[doc = "Register `NMIFLAG` reader"] +pub struct R(crate::R); +impl core::ops::Deref for R { + type Target = crate::R; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +impl From> for R { + #[inline(always)] + fn from(reader: crate::R) -> Self { + R(reader) + } +} +#[doc = "Register `NMIFLAG` writer"] +pub struct W(crate::W); +impl core::ops::Deref for W { + type Target = crate::W; + #[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> for W { + #[inline(always)] + fn from(writer: crate::W) -> Self { + W(writer) + } +} +#[doc = "Field `NMI` reader - Non-Maskable Interrupt"] +pub struct NMI_R(crate::FieldReader); +impl NMI_R { + pub(crate) fn new(bits: bool) -> Self { + NMI_R(crate::FieldReader::new(bits)) + } +} +impl core::ops::Deref for NMI_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `NMI` writer - Non-Maskable Interrupt"] +pub struct NMI_W<'a> { + w: &'a mut W, +} +impl<'a> NMI_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 u16 & 0x01); + self.w + } +} +impl R { + #[doc = "Bit 0 - Non-Maskable Interrupt"] + #[inline(always)] + pub fn nmi(&self) -> NMI_R { + NMI_R::new((self.bits & 0x01) != 0) + } +} +impl W { + #[doc = "Bit 0 - Non-Maskable Interrupt"] + #[inline(always)] + pub fn nmi(&mut self) -> NMI_W { + NMI_W { w: self } + } + #[doc = "Writes raw bits to the register."] + #[inline(always)] + pub unsafe fn bits(&mut self, bits: u16) -> &mut Self { + self.0.bits(bits); + self + } +} +#[doc = "Non-Maskable Interrupt Flag Status and Clear\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 [nmiflag](index.html) module"] +pub struct NMIFLAG_SPEC; +impl crate::RegisterSpec for NMIFLAG_SPEC { + type Ux = u16; +} +#[doc = "`read()` method returns [nmiflag::R](R) reader structure"] +impl crate::Readable for NMIFLAG_SPEC { + type Reader = R; +} +#[doc = "`write(|w| ..)` method takes [nmiflag::W](W) writer structure"] +impl crate::Writable for NMIFLAG_SPEC { + type Writer = W; +} +#[doc = "`reset()` method sets NMIFLAG to value 0"] +impl crate::Resettable for NMIFLAG_SPEC { + #[inline(always)] + fn reset_value() -> Self::Ux { + 0 + } +} diff --git a/src/eic/pinstate.rs b/src/eic/pinstate.rs new file mode 100644 index 0000000..a3ccb57 --- /dev/null +++ b/src/eic/pinstate.rs @@ -0,0 +1,52 @@ +#[doc = "Register `PINSTATE` reader"] +pub struct R(crate::R); +impl core::ops::Deref for R { + type Target = crate::R; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +impl From> for R { + #[inline(always)] + fn from(reader: crate::R) -> Self { + R(reader) + } +} +#[doc = "Field `PINSTATE` reader - Pin State"] +pub struct PINSTATE_R(crate::FieldReader); +impl PINSTATE_R { + pub(crate) fn new(bits: u16) -> Self { + PINSTATE_R(crate::FieldReader::new(bits)) + } +} +impl core::ops::Deref for PINSTATE_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +impl R { + #[doc = "Bits 0:15 - Pin State"] + #[inline(always)] + pub fn pinstate(&self) -> PINSTATE_R { + PINSTATE_R::new((self.bits & 0xffff) as u16) + } +} +#[doc = "Pin State\n\nThis register you can [`read`](crate::generic::Reg::read). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [pinstate](index.html) module"] +pub struct PINSTATE_SPEC; +impl crate::RegisterSpec for PINSTATE_SPEC { + type Ux = u32; +} +#[doc = "`read()` method returns [pinstate::R](R) reader structure"] +impl crate::Readable for PINSTATE_SPEC { + type Reader = R; +} +#[doc = "`reset()` method sets PINSTATE to value 0"] +impl crate::Resettable for PINSTATE_SPEC { + #[inline(always)] + fn reset_value() -> Self::Ux { + 0 + } +} diff --git a/src/eic/syncbusy.rs b/src/eic/syncbusy.rs new file mode 100644 index 0000000..949f238 --- /dev/null +++ b/src/eic/syncbusy.rs @@ -0,0 +1,71 @@ +#[doc = "Register `SYNCBUSY` reader"] +pub struct R(crate::R); +impl core::ops::Deref for R { + type Target = crate::R; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +impl From> for R { + #[inline(always)] + fn from(reader: crate::R) -> Self { + R(reader) + } +} +#[doc = "Field `SWRST` reader - Software Reset Synchronization Busy Status"] +pub struct SWRST_R(crate::FieldReader); +impl SWRST_R { + pub(crate) fn new(bits: bool) -> Self { + SWRST_R(crate::FieldReader::new(bits)) + } +} +impl core::ops::Deref for SWRST_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +#[doc = "Field `ENABLE` reader - Enable Synchronization Busy Status"] +pub struct ENABLE_R(crate::FieldReader); +impl ENABLE_R { + pub(crate) fn new(bits: bool) -> Self { + ENABLE_R(crate::FieldReader::new(bits)) + } +} +impl core::ops::Deref for ENABLE_R { + type Target = crate::FieldReader; + #[inline(always)] + fn deref(&self) -> &Self::Target { + &self.0 + } +} +impl R { + #[doc = "Bit 0 - Software Reset Synchronization Busy Status"] + #[inline(always)] + pub fn swrst(&self) -> SWRST_R { + SWRST_R::new((self.bits & 0x01) != 0) + } + #[doc = "Bit 1 - Enable Synchronization Busy Status"] + #[inline(always)] + pub fn enable(&self) -> ENABLE_R { + ENABLE_R::new(((self.bits >> 1) & 0x01) != 0) + } +} +#[doc = "Synchronization Busy\n\nThis register you can [`read`](crate::generic::Reg::read). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [syncbusy](index.html) module"] +pub struct SYNCBUSY_SPEC; +impl crate::RegisterSpec for SYNCBUSY_SPEC { + type Ux = u32; +} +#[doc = "`read()` method returns [syncbusy::R](R) reader structure"] +impl crate::Readable for SYNCBUSY_SPEC { + type Reader = R; +} +#[doc = "`reset()` method sets SYNCBUSY to value 0"] +impl crate::Resettable for SYNCBUSY_SPEC { + #[inline(always)] + fn reset_value() -> Self::Ux { + 0 + } +} -- cgit v1.2.3-70-g09d2