stm32f4/stm32f401/
tim1.rs1#[doc = r"Register block"]
2#[repr(C)]
3pub struct RegisterBlock {
4 #[doc = "0x00 - control register 1"]
5 pub cr1: crate::Reg<cr1::CR1_SPEC>,
6 #[doc = "0x04 - control register 2"]
7 pub cr2: crate::Reg<cr2::CR2_SPEC>,
8 #[doc = "0x08 - slave mode control register"]
9 pub smcr: crate::Reg<smcr::SMCR_SPEC>,
10 #[doc = "0x0c - DMA/Interrupt enable register"]
11 pub dier: crate::Reg<dier::DIER_SPEC>,
12 #[doc = "0x10 - status register"]
13 pub sr: crate::Reg<sr::SR_SPEC>,
14 #[doc = "0x14 - event generation register"]
15 pub egr: crate::Reg<egr::EGR_SPEC>,
16 _reserved_6_ccmr1: [u8; 0x04],
17 _reserved_7_ccmr2: [u8; 0x04],
18 #[doc = "0x20 - capture/compare enable register"]
19 pub ccer: crate::Reg<ccer::CCER_SPEC>,
20 #[doc = "0x24 - counter"]
21 pub cnt: crate::Reg<cnt::CNT_SPEC>,
22 #[doc = "0x28 - prescaler"]
23 pub psc: crate::Reg<psc::PSC_SPEC>,
24 #[doc = "0x2c - auto-reload register"]
25 pub arr: crate::Reg<arr::ARR_SPEC>,
26 #[doc = "0x30 - repetition counter register"]
27 pub rcr: crate::Reg<rcr::RCR_SPEC>,
28 #[doc = "0x34..0x44 - capture/compare register"]
29 pub ccr: [crate::Reg<ccr::CCR_SPEC>; 4],
30 #[doc = "0x44 - break and dead-time register"]
31 pub bdtr: crate::Reg<bdtr::BDTR_SPEC>,
32 #[doc = "0x48 - DMA control register"]
33 pub dcr: crate::Reg<dcr::DCR_SPEC>,
34 #[doc = "0x4c - DMA address for full transfer"]
35 pub dmar: crate::Reg<dmar::DMAR_SPEC>,
36}
37impl RegisterBlock {
38 #[doc = "0x34 - capture/compare register"]
39 #[inline(always)]
40 pub fn ccr1(&self) -> &crate::Reg<ccr::CCR_SPEC> {
41 &self.ccr[0]
42 }
43 #[doc = "0x38 - capture/compare register"]
44 #[inline(always)]
45 pub fn ccr2(&self) -> &crate::Reg<ccr::CCR_SPEC> {
46 &self.ccr[1]
47 }
48 #[doc = "0x3c - capture/compare register"]
49 #[inline(always)]
50 pub fn ccr3(&self) -> &crate::Reg<ccr::CCR_SPEC> {
51 &self.ccr[2]
52 }
53 #[doc = "0x40 - capture/compare register"]
54 #[inline(always)]
55 pub fn ccr4(&self) -> &crate::Reg<ccr::CCR_SPEC> {
56 &self.ccr[3]
57 }
58 #[doc = "0x18 - capture/compare mode register 1 (input mode)"]
59 #[inline(always)]
60 pub fn ccmr1_input(&self) -> &crate::Reg<ccmr1_input::CCMR1_INPUT_SPEC> {
61 unsafe {
62 &*(((self as *const Self) as *const u8).add(24usize)
63 as *const crate::Reg<ccmr1_input::CCMR1_INPUT_SPEC>)
64 }
65 }
66 #[doc = "0x18 - capture/compare mode register 1 (output mode)"]
67 #[inline(always)]
68 pub fn ccmr1_output(&self) -> &crate::Reg<ccmr1_output::CCMR1_OUTPUT_SPEC> {
69 unsafe {
70 &*(((self as *const Self) as *const u8).add(24usize)
71 as *const crate::Reg<ccmr1_output::CCMR1_OUTPUT_SPEC>)
72 }
73 }
74 #[doc = "0x1c - capture/compare mode register 2 (input mode)"]
75 #[inline(always)]
76 pub fn ccmr2_input(&self) -> &crate::Reg<ccmr2_input::CCMR2_INPUT_SPEC> {
77 unsafe {
78 &*(((self as *const Self) as *const u8).add(28usize)
79 as *const crate::Reg<ccmr2_input::CCMR2_INPUT_SPEC>)
80 }
81 }
82 #[doc = "0x1c - capture/compare mode register 2 (output mode)"]
83 #[inline(always)]
84 pub fn ccmr2_output(&self) -> &crate::Reg<ccmr2_output::CCMR2_OUTPUT_SPEC> {
85 unsafe {
86 &*(((self as *const Self) as *const u8).add(28usize)
87 as *const crate::Reg<ccmr2_output::CCMR2_OUTPUT_SPEC>)
88 }
89 }
90}
91#[doc = "CR1 register accessor: an alias for `Reg<CR1_SPEC>`"]
92pub type CR1 = crate::Reg<cr1::CR1_SPEC>;
93#[doc = "control register 1"]
94pub mod cr1;
95#[doc = "CR2 register accessor: an alias for `Reg<CR2_SPEC>`"]
96pub type CR2 = crate::Reg<cr2::CR2_SPEC>;
97#[doc = "control register 2"]
98pub mod cr2;
99#[doc = "SMCR register accessor: an alias for `Reg<SMCR_SPEC>`"]
100pub type SMCR = crate::Reg<smcr::SMCR_SPEC>;
101#[doc = "slave mode control register"]
102pub mod smcr;
103#[doc = "DIER register accessor: an alias for `Reg<DIER_SPEC>`"]
104pub type DIER = crate::Reg<dier::DIER_SPEC>;
105#[doc = "DMA/Interrupt enable register"]
106pub mod dier;
107#[doc = "SR register accessor: an alias for `Reg<SR_SPEC>`"]
108pub type SR = crate::Reg<sr::SR_SPEC>;
109#[doc = "status register"]
110pub mod sr;
111#[doc = "EGR register accessor: an alias for `Reg<EGR_SPEC>`"]
112pub type EGR = crate::Reg<egr::EGR_SPEC>;
113#[doc = "event generation register"]
114pub mod egr;
115#[doc = "CCMR1_Output register accessor: an alias for `Reg<CCMR1_OUTPUT_SPEC>`"]
116pub type CCMR1_OUTPUT = crate::Reg<ccmr1_output::CCMR1_OUTPUT_SPEC>;
117#[doc = "capture/compare mode register 1 (output mode)"]
118pub mod ccmr1_output;
119#[doc = "CCMR1_Input register accessor: an alias for `Reg<CCMR1_INPUT_SPEC>`"]
120pub type CCMR1_INPUT = crate::Reg<ccmr1_input::CCMR1_INPUT_SPEC>;
121#[doc = "capture/compare mode register 1 (input mode)"]
122pub mod ccmr1_input;
123#[doc = "CCMR2_Output register accessor: an alias for `Reg<CCMR2_OUTPUT_SPEC>`"]
124pub type CCMR2_OUTPUT = crate::Reg<ccmr2_output::CCMR2_OUTPUT_SPEC>;
125#[doc = "capture/compare mode register 2 (output mode)"]
126pub mod ccmr2_output;
127#[doc = "CCMR2_Input register accessor: an alias for `Reg<CCMR2_INPUT_SPEC>`"]
128pub type CCMR2_INPUT = crate::Reg<ccmr2_input::CCMR2_INPUT_SPEC>;
129#[doc = "capture/compare mode register 2 (input mode)"]
130pub mod ccmr2_input;
131#[doc = "CCER register accessor: an alias for `Reg<CCER_SPEC>`"]
132pub type CCER = crate::Reg<ccer::CCER_SPEC>;
133#[doc = "capture/compare enable register"]
134pub mod ccer;
135#[doc = "CNT register accessor: an alias for `Reg<CNT_SPEC>`"]
136pub type CNT = crate::Reg<cnt::CNT_SPEC>;
137#[doc = "counter"]
138pub mod cnt;
139#[doc = "PSC register accessor: an alias for `Reg<PSC_SPEC>`"]
140pub type PSC = crate::Reg<psc::PSC_SPEC>;
141#[doc = "prescaler"]
142pub mod psc;
143#[doc = "ARR register accessor: an alias for `Reg<ARR_SPEC>`"]
144pub type ARR = crate::Reg<arr::ARR_SPEC>;
145#[doc = "auto-reload register"]
146pub mod arr;
147#[doc = "CCR register accessor: an alias for `Reg<CCR_SPEC>`"]
148pub type CCR = crate::Reg<ccr::CCR_SPEC>;
149#[doc = "capture/compare register"]
150pub mod ccr;
151#[doc = "DCR register accessor: an alias for `Reg<DCR_SPEC>`"]
152pub type DCR = crate::Reg<dcr::DCR_SPEC>;
153#[doc = "DMA control register"]
154pub mod dcr;
155#[doc = "DMAR register accessor: an alias for `Reg<DMAR_SPEC>`"]
156pub type DMAR = crate::Reg<dmar::DMAR_SPEC>;
157#[doc = "DMA address for full transfer"]
158pub mod dmar;
159#[doc = "RCR register accessor: an alias for `Reg<RCR_SPEC>`"]
160pub type RCR = crate::Reg<rcr::RCR_SPEC>;
161#[doc = "repetition counter register"]
162pub mod rcr;
163#[doc = "BDTR register accessor: an alias for `Reg<BDTR_SPEC>`"]
164pub type BDTR = crate::Reg<bdtr::BDTR_SPEC>;
165#[doc = "break and dead-time register"]
166pub mod bdtr;