#[repr(C)]
#[derive(Debug)]
pub struct RegisterBlock {
cr1: CR1,
cr2: CR2,
smcr: SMCR,
dier: DIER,
sr: SR,
egr: EGR,
_reserved_6_ccmr1: [u8; 0x04],
_reserved_7_ccmr2: [u8; 0x04],
ccer: CCER,
cnt: CNT,
psc: PSC,
arr: ARR,
_reserved12: [u8; 0x04],
ccr: [CCR; 4],
_reserved13: [u8; 0x04],
dcr: DCR,
dmar: DMAR,
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 ccmr2_input(&self) -> &CCMR2_INPUT {
unsafe { &*core::ptr::from_ref(self).cast::<u8>().add(28).cast() }
}
#[inline(always)]
pub const fn ccmr2_output(&self) -> &CCMR2_OUTPUT {
unsafe { &*core::ptr::from_ref(self).cast::<u8>().add(28).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 ccr3(&self) -> &CCR {
self.ccr(2)
}
#[inline(always)]
pub const fn ccr4(&self) -> &CCR {
self.ccr(3)
}
#[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 or(&self) -> &OR {
&self.or
}
}
pub use crate::stm32f429::tim2::cr1;
pub use crate::stm32f429::tim2::cr2;
pub use crate::stm32f429::tim2::CR1;
pub use crate::stm32f429::tim2::CR2;
pub type SMCR = crate::Reg<smcr::SMCRrs>;
pub mod smcr;
pub use crate::stm32f429::tim2::arr;
pub use crate::stm32f429::tim2::ccer;
pub use crate::stm32f429::tim2::ccmr1_input;
pub use crate::stm32f429::tim2::ccmr1_output;
pub use crate::stm32f429::tim2::ccmr2_input;
pub use crate::stm32f429::tim2::ccmr2_output;
pub use crate::stm32f429::tim2::ccr;
pub use crate::stm32f429::tim2::cnt;
pub use crate::stm32f429::tim2::dcr;
pub use crate::stm32f429::tim2::dier;
pub use crate::stm32f429::tim2::dmar;
pub use crate::stm32f429::tim2::egr;
pub use crate::stm32f429::tim2::psc;
pub use crate::stm32f429::tim2::sr;
pub use crate::stm32f429::tim2::ARR;
pub use crate::stm32f429::tim2::CCER;
pub use crate::stm32f429::tim2::CCMR1_INPUT;
pub use crate::stm32f429::tim2::CCMR1_OUTPUT;
pub use crate::stm32f429::tim2::CCMR2_INPUT;
pub use crate::stm32f429::tim2::CCMR2_OUTPUT;
pub use crate::stm32f429::tim2::CCR;
pub use crate::stm32f429::tim2::CNT;
pub use crate::stm32f429::tim2::DCR;
pub use crate::stm32f429::tim2::DIER;
pub use crate::stm32f429::tim2::DMAR;
pub use crate::stm32f429::tim2::EGR;
pub use crate::stm32f429::tim2::PSC;
pub use crate::stm32f429::tim2::SR;
pub type OR = crate::Reg<or::ORrs>;
pub mod or;