#[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()
)
}
}