xmc1100 0.2.0

Low-level register mappings for the XMC1100 series of ARM Cortex-M0 microcontrollers
Documentation
#[doc = "Reader of register CPUID"]
pub type R = crate::R<u32, super::CPUID>;
#[doc = "Revision Number\n\nValue on reset: 0"]
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum REVISION_A {
    #[doc = "0: Patch 0"]
    VALUE1,
}
impl From<REVISION_A> for u8 {
    #[inline(always)]
    fn from(variant: REVISION_A) -> Self {
        match variant {
            REVISION_A::VALUE1 => 0,
        }
    }
}
#[doc = "Reader of field `Revision`"]
pub type REVISION_R = crate::R<u8, REVISION_A>;
impl REVISION_R {
    #[doc = r"Get enumerated values variant"]
    #[inline(always)]
    pub fn variant(&self) -> crate::Variant<u8, REVISION_A> {
        use crate::Variant::*;
        match self.bits {
            0 => Val(REVISION_A::VALUE1),
            i => Res(i),
        }
    }
    #[doc = "Checks if the value of the field is `VALUE1`"]
    #[inline(always)]
    pub fn is_value1(&self) -> bool {
        *self == REVISION_A::VALUE1
    }
}
#[doc = "Part Number of the Processor\n\nValue on reset: 3104"]
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum PARTNO_A {
    #[doc = "3104: Cortex-M0"]
    VALUE1,
}
impl From<PARTNO_A> for u16 {
    #[inline(always)]
    fn from(variant: PARTNO_A) -> Self {
        match variant {
            PARTNO_A::VALUE1 => 3104,
        }
    }
}
#[doc = "Reader of field `PartNo`"]
pub type PARTNO_R = crate::R<u16, PARTNO_A>;
impl PARTNO_R {
    #[doc = r"Get enumerated values variant"]
    #[inline(always)]
    pub fn variant(&self) -> crate::Variant<u16, PARTNO_A> {
        use crate::Variant::*;
        match self.bits {
            3104 => Val(PARTNO_A::VALUE1),
            i => Res(i),
        }
    }
    #[doc = "Checks if the value of the field is `VALUE1`"]
    #[inline(always)]
    pub fn is_value1(&self) -> bool {
        *self == PARTNO_A::VALUE1
    }
}
#[doc = "Architecture\n\nValue on reset: 12"]
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum ARCHITECTURE_A {
    #[doc = "12: ARMv6-M"]
    VALUE1,
}
impl From<ARCHITECTURE_A> for u8 {
    #[inline(always)]
    fn from(variant: ARCHITECTURE_A) -> Self {
        match variant {
            ARCHITECTURE_A::VALUE1 => 12,
        }
    }
}
#[doc = "Reader of field `Architecture`"]
pub type ARCHITECTURE_R = crate::R<u8, ARCHITECTURE_A>;
impl ARCHITECTURE_R {
    #[doc = r"Get enumerated values variant"]
    #[inline(always)]
    pub fn variant(&self) -> crate::Variant<u8, ARCHITECTURE_A> {
        use crate::Variant::*;
        match self.bits {
            12 => Val(ARCHITECTURE_A::VALUE1),
            i => Res(i),
        }
    }
    #[doc = "Checks if the value of the field is `VALUE1`"]
    #[inline(always)]
    pub fn is_value1(&self) -> bool {
        *self == ARCHITECTURE_A::VALUE1
    }
}
#[doc = "Variant Number\n\nValue on reset: 0"]
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum VARIANT_A {
    #[doc = "0: Revision 0"]
    VALUE1,
}
impl From<VARIANT_A> for u8 {
    #[inline(always)]
    fn from(variant: VARIANT_A) -> Self {
        match variant {
            VARIANT_A::VALUE1 => 0,
        }
    }
}
#[doc = "Reader of field `Variant`"]
pub type VARIANT_R = crate::R<u8, VARIANT_A>;
impl VARIANT_R {
    #[doc = r"Get enumerated values variant"]
    #[inline(always)]
    pub fn variant(&self) -> crate::Variant<u8, VARIANT_A> {
        use crate::Variant::*;
        match self.bits {
            0 => Val(VARIANT_A::VALUE1),
            i => Res(i),
        }
    }
    #[doc = "Checks if the value of the field is `VALUE1`"]
    #[inline(always)]
    pub fn is_value1(&self) -> bool {
        *self == VARIANT_A::VALUE1
    }
}
#[doc = "Implementer Code\n\nValue on reset: 65"]
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum IMPLEMENTER_A {
    #[doc = "65: ARM"]
    VALUE1,
}
impl From<IMPLEMENTER_A> for u8 {
    #[inline(always)]
    fn from(variant: IMPLEMENTER_A) -> Self {
        match variant {
            IMPLEMENTER_A::VALUE1 => 65,
        }
    }
}
#[doc = "Reader of field `Implementer`"]
pub type IMPLEMENTER_R = crate::R<u8, IMPLEMENTER_A>;
impl IMPLEMENTER_R {
    #[doc = r"Get enumerated values variant"]
    #[inline(always)]
    pub fn variant(&self) -> crate::Variant<u8, IMPLEMENTER_A> {
        use crate::Variant::*;
        match self.bits {
            65 => Val(IMPLEMENTER_A::VALUE1),
            i => Res(i),
        }
    }
    #[doc = "Checks if the value of the field is `VALUE1`"]
    #[inline(always)]
    pub fn is_value1(&self) -> bool {
        *self == IMPLEMENTER_A::VALUE1
    }
}
impl R {
    #[doc = "Bits 0:3 - Revision Number"]
    #[inline(always)]
    pub fn revision(&self) -> REVISION_R {
        REVISION_R::new((self.bits & 0x0f) as u8)
    }
    #[doc = "Bits 4:15 - Part Number of the Processor"]
    #[inline(always)]
    pub fn part_no(&self) -> PARTNO_R {
        PARTNO_R::new(((self.bits >> 4) & 0x0fff) as u16)
    }
    #[doc = "Bits 16:19 - Architecture"]
    #[inline(always)]
    pub fn architecture(&self) -> ARCHITECTURE_R {
        ARCHITECTURE_R::new(((self.bits >> 16) & 0x0f) as u8)
    }
    #[doc = "Bits 20:23 - Variant Number"]
    #[inline(always)]
    pub fn variant(&self) -> VARIANT_R {
        VARIANT_R::new(((self.bits >> 20) & 0x0f) as u8)
    }
    #[doc = "Bits 24:31 - Implementer Code"]
    #[inline(always)]
    pub fn implementer(&self) -> IMPLEMENTER_R {
        IMPLEMENTER_R::new(((self.bits >> 24) & 0xff) as u8)
    }
}