#[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,
rcr: RCR,
ccr: [CCR; 4],
bdtr: BDTR,
dcr: DCR,
dmar: DMAR,
_reserved17: [u8; 0x04],
ccmr3_output: CCMR3_OUTPUT,
ccr5: CCR5,
ccr6: CCR6,
af1: AF1,
af2: AF2,
tisel: TISEL,
}
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 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 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 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 ccmr3_output(&self) -> &CCMR3_OUTPUT {
&self.ccmr3_output
}
#[inline(always)]
pub const fn ccr5(&self) -> &CCR5 {
&self.ccr5
}
#[inline(always)]
pub const fn ccr6(&self) -> &CCR6 {
&self.ccr6
}
#[inline(always)]
pub const fn af1(&self) -> &AF1 {
&self.af1
}
#[inline(always)]
pub const fn af2(&self) -> &AF2 {
&self.af2
}
#[inline(always)]
pub const fn tisel(&self) -> &TISEL {
&self.tisel
}
}
pub use crate::stm32h7a3::tim1::cr1;
pub use crate::stm32h7a3::tim1::cr2;
pub use crate::stm32h7a3::tim1::CR1;
pub use crate::stm32h7a3::tim1::CR2;
pub type SMCR = crate::Reg<smcr::SMCRrs>;
pub mod smcr;
pub use crate::stm32h7a3::tim1::arr;
pub use crate::stm32h7a3::tim1::bdtr;
pub use crate::stm32h7a3::tim1::ccer;
pub use crate::stm32h7a3::tim1::ccmr1_input;
pub use crate::stm32h7a3::tim1::ccmr1_output;
pub use crate::stm32h7a3::tim1::ccmr2_input;
pub use crate::stm32h7a3::tim1::ccmr2_output;
pub use crate::stm32h7a3::tim1::ccmr3_output;
pub use crate::stm32h7a3::tim1::ccr;
pub use crate::stm32h7a3::tim1::ccr5;
pub use crate::stm32h7a3::tim1::ccr6;
pub use crate::stm32h7a3::tim1::cnt;
pub use crate::stm32h7a3::tim1::dcr;
pub use crate::stm32h7a3::tim1::dier;
pub use crate::stm32h7a3::tim1::dmar;
pub use crate::stm32h7a3::tim1::egr;
pub use crate::stm32h7a3::tim1::psc;
pub use crate::stm32h7a3::tim1::rcr;
pub use crate::stm32h7a3::tim1::sr;
pub use crate::stm32h7a3::tim1::ARR;
pub use crate::stm32h7a3::tim1::BDTR;
pub use crate::stm32h7a3::tim1::CCER;
pub use crate::stm32h7a3::tim1::CCMR1_INPUT;
pub use crate::stm32h7a3::tim1::CCMR1_OUTPUT;
pub use crate::stm32h7a3::tim1::CCMR2_INPUT;
pub use crate::stm32h7a3::tim1::CCMR2_OUTPUT;
pub use crate::stm32h7a3::tim1::CCMR3_OUTPUT;
pub use crate::stm32h7a3::tim1::CCR;
pub use crate::stm32h7a3::tim1::CCR5;
pub use crate::stm32h7a3::tim1::CCR6;
pub use crate::stm32h7a3::tim1::CNT;
pub use crate::stm32h7a3::tim1::DCR;
pub use crate::stm32h7a3::tim1::DIER;
pub use crate::stm32h7a3::tim1::DMAR;
pub use crate::stm32h7a3::tim1::EGR;
pub use crate::stm32h7a3::tim1::PSC;
pub use crate::stm32h7a3::tim1::RCR;
pub use crate::stm32h7a3::tim1::SR;
pub type AF1 = crate::Reg<af1::AF1rs>;
pub mod af1;
pub type AF2 = crate::Reg<af2::AF2rs>;
pub mod af2;
pub type TISEL = crate::Reg<tisel::TISELrs>;
pub mod tisel;