hk32f005-pac 0.1.0

HK32F005 PAC, Generate by Chiptool
Documentation
#[doc = "CFGR1"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Cfgr1(pub u32);
impl Cfgr1 {
    #[doc = "Memory mapping selection"]
    #[must_use]
    #[inline(always)]
    pub const fn mem_mode(&self) -> u8 {
        let val = (self.0 >> 0usize) & 0x03;
        val as u8
    }
    #[doc = "Memory mapping selection"]
    #[inline(always)]
    pub const fn set_mem_mode(&mut self, val: u8) {
        self.0 = (self.0 & !(0x03 << 0usize)) | (((val as u32) & 0x03) << 0usize);
    }
}
impl Default for Cfgr1 {
    #[inline(always)]
    fn default() -> Cfgr1 {
        Cfgr1(0)
    }
}
impl core::fmt::Debug for Cfgr1 {
    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
        f.debug_struct("Cfgr1")
            .field("mem_mode", &self.mem_mode())
            .finish()
    }
}
#[cfg(feature = "defmt")]
impl defmt::Format for Cfgr1 {
    fn format(&self, f: defmt::Formatter) {
        defmt::write!(f, "Cfgr1 {{ mem_mode: {=u8:?} }}", self.mem_mode())
    }
}
#[doc = "CFGR2"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Cfgr2(pub u32);
impl Cfgr2 {
    #[doc = "NRST or GPIO function enable"]
    #[must_use]
    #[inline(always)]
    pub const fn nrst_ioen(&self) -> bool {
        let val = (self.0 >> 0usize) & 0x01;
        val != 0
    }
    #[doc = "NRST or GPIO function enable"]
    #[inline(always)]
    pub const fn set_nrst_ioen(&mut self, val: bool) {
        self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
    }
    #[doc = "NRST GPIO enable key"]
    #[must_use]
    #[inline(always)]
    pub const fn nrst_ioen_key(&self) -> u16 {
        let val = (self.0 >> 16usize) & 0xffff;
        val as u16
    }
    #[doc = "NRST GPIO enable key"]
    #[inline(always)]
    pub const fn set_nrst_ioen_key(&mut self, val: u16) {
        self.0 = (self.0 & !(0xffff << 16usize)) | (((val as u32) & 0xffff) << 16usize);
    }
}
impl Default for Cfgr2 {
    #[inline(always)]
    fn default() -> Cfgr2 {
        Cfgr2(0)
    }
}
impl core::fmt::Debug for Cfgr2 {
    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
        f.debug_struct("Cfgr2")
            .field("nrst_ioen", &self.nrst_ioen())
            .field("nrst_ioen_key", &self.nrst_ioen_key())
            .finish()
    }
}
#[cfg(feature = "defmt")]
impl defmt::Format for Cfgr2 {
    fn format(&self, f: defmt::Formatter) {
        defmt::write!(
            f,
            "Cfgr2 {{ nrst_ioen: {=bool:?}, nrst_ioen_key: {=u16:?} }}",
            self.nrst_ioen(),
            self.nrst_ioen_key()
        )
    }
}
#[doc = "EXTICR1"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Exticr1(pub u32);
impl Exticr1 {
    #[doc = "EXTIy external interrupt source input selection"]
    #[must_use]
    #[inline(always)]
    pub const fn exti0(&self) -> u8 {
        let val = (self.0 >> 0usize) & 0x0f;
        val as u8
    }
    #[doc = "EXTIy external interrupt source input selection"]
    #[inline(always)]
    pub const fn set_exti0(&mut self, val: u8) {
        self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize);
    }
    #[doc = "EXTIy external interrupt source input selection"]
    #[must_use]
    #[inline(always)]
    pub const fn exti1(&self) -> u8 {
        let val = (self.0 >> 4usize) & 0x0f;
        val as u8
    }
    #[doc = "EXTIy external interrupt source input selection"]
    #[inline(always)]
    pub const fn set_exti1(&mut self, val: u8) {
        self.0 = (self.0 & !(0x0f << 4usize)) | (((val as u32) & 0x0f) << 4usize);
    }
    #[doc = "EXTIy external interrupt source input selection"]
    #[must_use]
    #[inline(always)]
    pub const fn exti2(&self) -> u8 {
        let val = (self.0 >> 8usize) & 0x0f;
        val as u8
    }
    #[doc = "EXTIy external interrupt source input selection"]
    #[inline(always)]
    pub const fn set_exti2(&mut self, val: u8) {
        self.0 = (self.0 & !(0x0f << 8usize)) | (((val as u32) & 0x0f) << 8usize);
    }
    #[doc = "EXTIy external interrupt source input selection"]
    #[must_use]
    #[inline(always)]
    pub const fn exti3(&self) -> u8 {
        let val = (self.0 >> 12usize) & 0x0f;
        val as u8
    }
    #[doc = "EXTIy external interrupt source input selection"]
    #[inline(always)]
    pub const fn set_exti3(&mut self, val: u8) {
        self.0 = (self.0 & !(0x0f << 12usize)) | (((val as u32) & 0x0f) << 12usize);
    }
}
impl Default for Exticr1 {
    #[inline(always)]
    fn default() -> Exticr1 {
        Exticr1(0)
    }
}
impl core::fmt::Debug for Exticr1 {
    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
        f.debug_struct("Exticr1")
            .field("exti0", &self.exti0())
            .field("exti1", &self.exti1())
            .field("exti2", &self.exti2())
            .field("exti3", &self.exti3())
            .finish()
    }
}
#[cfg(feature = "defmt")]
impl defmt::Format for Exticr1 {
    fn format(&self, f: defmt::Formatter) {
        defmt::write!(
            f,
            "Exticr1 {{ exti0: {=u8:?}, exti1: {=u8:?}, exti2: {=u8:?}, exti3: {=u8:?} }}",
            self.exti0(),
            self.exti1(),
            self.exti2(),
            self.exti3()
        )
    }
}
#[doc = "EXTICR2"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Exticr2(pub u32);
impl Exticr2 {
    #[doc = "EXTIy external interrupt source input selection"]
    #[must_use]
    #[inline(always)]
    pub const fn exti4(&self) -> u8 {
        let val = (self.0 >> 0usize) & 0x0f;
        val as u8
    }
    #[doc = "EXTIy external interrupt source input selection"]
    #[inline(always)]
    pub const fn set_exti4(&mut self, val: u8) {
        self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize);
    }
    #[doc = "EXTIy external interrupt source input selection"]
    #[must_use]
    #[inline(always)]
    pub const fn exti5(&self) -> u8 {
        let val = (self.0 >> 4usize) & 0x0f;
        val as u8
    }
    #[doc = "EXTIy external interrupt source input selection"]
    #[inline(always)]
    pub const fn set_exti5(&mut self, val: u8) {
        self.0 = (self.0 & !(0x0f << 4usize)) | (((val as u32) & 0x0f) << 4usize);
    }
    #[doc = "EXTIy external interrupt source input selection"]
    #[must_use]
    #[inline(always)]
    pub const fn exti6(&self) -> u8 {
        let val = (self.0 >> 8usize) & 0x0f;
        val as u8
    }
    #[doc = "EXTIy external interrupt source input selection"]
    #[inline(always)]
    pub const fn set_exti6(&mut self, val: u8) {
        self.0 = (self.0 & !(0x0f << 8usize)) | (((val as u32) & 0x0f) << 8usize);
    }
}
impl Default for Exticr2 {
    #[inline(always)]
    fn default() -> Exticr2 {
        Exticr2(0)
    }
}
impl core::fmt::Debug for Exticr2 {
    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
        f.debug_struct("Exticr2")
            .field("exti4", &self.exti4())
            .field("exti5", &self.exti5())
            .field("exti6", &self.exti6())
            .finish()
    }
}
#[cfg(feature = "defmt")]
impl defmt::Format for Exticr2 {
    fn format(&self, f: defmt::Formatter) {
        defmt::write!(
            f,
            "Exticr2 {{ exti4: {=u8:?}, exti5: {=u8:?}, exti6: {=u8:?} }}",
            self.exti4(),
            self.exti5(),
            self.exti6()
        )
    }
}