#[repr(C)]
#[derive(Debug)]
pub struct RegisterBlock {
cr1: CR1,
cr2: CR2,
smcr: SMCR,
dier: DIER,
sr: SR,
egr: EGR,
_reserved_6_ccmr1: [u8; 0x04],
_reserved7: [u8; 0x04],
ccer: CCER,
cnt: CNT,
_reserved9: [u8; 0x02],
psc: PSC,
arr: ARR,
_reserved11: [u8; 0x06],
ccr: [CCR; 2],
_reserved12: [u8; 0x14],
or: OR,
}
impl RegisterBlock {
#[inline(always)]
pub const fn cr1(&self) -> &CR1 {
&self.cr1
}
#[inline(always)]
pub const fn cr2(&self) -> &CR2 {
&self.cr2
}
#[inline(always)]
pub const fn smcr(&self) -> &SMCR {
&self.smcr
}
#[inline(always)]
pub const fn dier(&self) -> &DIER {
&self.dier
}
#[inline(always)]
pub const fn sr(&self) -> &SR {
&self.sr
}
#[inline(always)]
pub const fn egr(&self) -> &EGR {
&self.egr
}
#[inline(always)]
pub const fn ccmr1_input(&self) -> &CCMR1_INPUT {
unsafe { &*core::ptr::from_ref(self).cast::<u8>().add(24).cast() }
}
#[inline(always)]
pub const fn ccmr1_output(&self) -> &CCMR1_OUTPUT {
unsafe { &*core::ptr::from_ref(self).cast::<u8>().add(24).cast() }
}
#[inline(always)]
pub const fn ccer(&self) -> &CCER {
&self.ccer
}
#[inline(always)]
pub const fn cnt(&self) -> &CNT {
&self.cnt
}
#[inline(always)]
pub const fn psc(&self) -> &PSC {
&self.psc
}
#[inline(always)]
pub const fn arr(&self) -> &ARR {
&self.arr
}
#[inline(always)]
pub const fn ccr(&self, n: usize) -> &CCR {
&self.ccr[n]
}
#[inline(always)]
pub fn ccr_iter(&self) -> impl Iterator<Item = &CCR> {
self.ccr.iter()
}
#[inline(always)]
pub const fn ccr1(&self) -> &CCR {
self.ccr(0)
}
#[inline(always)]
pub const fn ccr2(&self) -> &CCR {
self.ccr(1)
}
#[inline(always)]
pub const fn or(&self) -> &OR {
&self.or
}
}
pub use crate::stm32l0x1::tim21::cr1;
pub use crate::stm32l0x1::tim21::cr2;
pub use crate::stm32l0x1::tim21::CR1;
pub use crate::stm32l0x1::tim21::CR2;
pub type SMCR = crate::Reg<smcr::SMCRrs>;
pub mod smcr;
pub use crate::stm32l0x1::tim21::arr;
pub use crate::stm32l0x1::tim21::ccer;
pub use crate::stm32l0x1::tim21::ccmr1_input;
pub use crate::stm32l0x1::tim21::ccmr1_output;
pub use crate::stm32l0x1::tim21::ccr;
pub use crate::stm32l0x1::tim21::cnt;
pub use crate::stm32l0x1::tim21::dier;
pub use crate::stm32l0x1::tim21::egr;
pub use crate::stm32l0x1::tim21::psc;
pub use crate::stm32l0x1::tim21::sr;
pub use crate::stm32l0x1::tim21::ARR;
pub use crate::stm32l0x1::tim21::CCER;
pub use crate::stm32l0x1::tim21::CCMR1_INPUT;
pub use crate::stm32l0x1::tim21::CCMR1_OUTPUT;
pub use crate::stm32l0x1::tim21::CCR;
pub use crate::stm32l0x1::tim21::CNT;
pub use crate::stm32l0x1::tim21::DIER;
pub use crate::stm32l0x1::tim21::EGR;
pub use crate::stm32l0x1::tim21::PSC;
pub use crate::stm32l0x1::tim21::SR;
pub type OR = crate::Reg<or::ORrs>;
pub mod or;