#[repr(C)]
#[derive(Debug)]
pub struct RegisterBlock {
cr1: CR1,
cr2: CR2,
_reserved2: [u8; 0x04],
dier: DIER,
sr: SR,
egr: EGR,
_reserved_5_ccmr1: [u8; 0x04],
_reserved6: [u8; 0x04],
ccer: CCER,
cnt: CNT,
psc: PSC,
arr: ARR,
rcr: RCR,
ccr: [CCR; 1],
_reserved12: [u8; 0x0c],
bdtr: BDTR,
dcr: DCR,
dmar: DMAR,
or1: OR1,
_reserved16: [u8; 0x0c],
or2: OR2,
}
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 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 rcr(&self) -> &RCR {
&self.rcr
}
#[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 bdtr(&self) -> &BDTR {
&self.bdtr
}
#[inline(always)]
pub const fn dcr(&self) -> &DCR {
&self.dcr
}
#[inline(always)]
pub const fn dmar(&self) -> &DMAR {
&self.dmar
}
#[inline(always)]
pub const fn or1(&self) -> &OR1 {
&self.or1
}
#[inline(always)]
pub const fn or2(&self) -> &OR2 {
&self.or2
}
}
pub use crate::stm32l552::tim16::arr;
pub use crate::stm32l552::tim16::bdtr;
pub use crate::stm32l552::tim16::ccer;
pub use crate::stm32l552::tim16::ccmr1_input;
pub use crate::stm32l552::tim16::ccmr1_output;
pub use crate::stm32l552::tim16::ccr;
pub use crate::stm32l552::tim16::cnt;
pub use crate::stm32l552::tim16::cr1;
pub use crate::stm32l552::tim16::cr2;
pub use crate::stm32l552::tim16::dcr;
pub use crate::stm32l552::tim16::dier;
pub use crate::stm32l552::tim16::dmar;
pub use crate::stm32l552::tim16::egr;
pub use crate::stm32l552::tim16::psc;
pub use crate::stm32l552::tim16::rcr;
pub use crate::stm32l552::tim16::sr;
pub use crate::stm32l552::tim16::ARR;
pub use crate::stm32l552::tim16::BDTR;
pub use crate::stm32l552::tim16::CCER;
pub use crate::stm32l552::tim16::CCMR1_INPUT;
pub use crate::stm32l552::tim16::CCMR1_OUTPUT;
pub use crate::stm32l552::tim16::CCR;
pub use crate::stm32l552::tim16::CNT;
pub use crate::stm32l552::tim16::CR1;
pub use crate::stm32l552::tim16::CR2;
pub use crate::stm32l552::tim16::DCR;
pub use crate::stm32l552::tim16::DIER;
pub use crate::stm32l552::tim16::DMAR;
pub use crate::stm32l552::tim16::EGR;
pub use crate::stm32l552::tim16::PSC;
pub use crate::stm32l552::tim16::RCR;
pub use crate::stm32l552::tim16::SR;
pub type OR1 = crate::Reg<or1::OR1rs>;
pub mod or1;
pub type OR2 = crate::Reg<or2::OR2rs>;
pub mod or2;