xmc4500/
ccu40_cc40.rs

1#[repr(C)]
2#[doc = "Register block"]
3pub struct RegisterBlock {
4    ins: INS,
5    cmc: CMC,
6    tcst: TCST,
7    tcset: TCSET,
8    tcclr: TCCLR,
9    tc: TC,
10    psl: PSL,
11    dit: DIT,
12    dits: DITS,
13    psc: PSC,
14    fpc: FPC,
15    fpcs: FPCS,
16    pr: PR,
17    prs: PRS,
18    cr: CR,
19    crs: CRS,
20    _reserved16: [u8; 0x30],
21    timer: TIMER,
22    c0v: C0V,
23    c1v: C1V,
24    c2v: C2V,
25    c3v: C3V,
26    _reserved21: [u8; 0x1c],
27    ints: INTS,
28    inte: INTE,
29    srs: SRS,
30    sws: SWS,
31    swr: SWR,
32}
33impl RegisterBlock {
34    #[doc = "0x00 - Input Selector Configuration"]
35    #[inline(always)]
36    pub const fn ins(&self) -> &INS {
37        &self.ins
38    }
39    #[doc = "0x04 - Connection Matrix Control"]
40    #[inline(always)]
41    pub const fn cmc(&self) -> &CMC {
42        &self.cmc
43    }
44    #[doc = "0x08 - Slice Timer Status"]
45    #[inline(always)]
46    pub const fn tcst(&self) -> &TCST {
47        &self.tcst
48    }
49    #[doc = "0x0c - Slice Timer Run Set"]
50    #[inline(always)]
51    pub const fn tcset(&self) -> &TCSET {
52        &self.tcset
53    }
54    #[doc = "0x10 - Slice Timer Clear"]
55    #[inline(always)]
56    pub const fn tcclr(&self) -> &TCCLR {
57        &self.tcclr
58    }
59    #[doc = "0x14 - Slice Timer Control"]
60    #[inline(always)]
61    pub const fn tc(&self) -> &TC {
62        &self.tc
63    }
64    #[doc = "0x18 - Passive Level Config"]
65    #[inline(always)]
66    pub const fn psl(&self) -> &PSL {
67        &self.psl
68    }
69    #[doc = "0x1c - Dither Config"]
70    #[inline(always)]
71    pub const fn dit(&self) -> &DIT {
72        &self.dit
73    }
74    #[doc = "0x20 - Dither Shadow Register"]
75    #[inline(always)]
76    pub const fn dits(&self) -> &DITS {
77        &self.dits
78    }
79    #[doc = "0x24 - Prescaler Control"]
80    #[inline(always)]
81    pub const fn psc(&self) -> &PSC {
82        &self.psc
83    }
84    #[doc = "0x28 - Floating Prescaler Control"]
85    #[inline(always)]
86    pub const fn fpc(&self) -> &FPC {
87        &self.fpc
88    }
89    #[doc = "0x2c - Floating Prescaler Shadow"]
90    #[inline(always)]
91    pub const fn fpcs(&self) -> &FPCS {
92        &self.fpcs
93    }
94    #[doc = "0x30 - Timer Period Value"]
95    #[inline(always)]
96    pub const fn pr(&self) -> &PR {
97        &self.pr
98    }
99    #[doc = "0x34 - Timer Shadow Period Value"]
100    #[inline(always)]
101    pub const fn prs(&self) -> &PRS {
102        &self.prs
103    }
104    #[doc = "0x38 - Timer Compare Value"]
105    #[inline(always)]
106    pub const fn cr(&self) -> &CR {
107        &self.cr
108    }
109    #[doc = "0x3c - Timer Shadow Compare Value"]
110    #[inline(always)]
111    pub const fn crs(&self) -> &CRS {
112        &self.crs
113    }
114    #[doc = "0x70 - Timer Value"]
115    #[inline(always)]
116    pub const fn timer(&self) -> &TIMER {
117        &self.timer
118    }
119    #[doc = "0x74 - Capture Register 0"]
120    #[inline(always)]
121    pub const fn c0v(&self) -> &C0V {
122        &self.c0v
123    }
124    #[doc = "0x78 - Capture Register 1"]
125    #[inline(always)]
126    pub const fn c1v(&self) -> &C1V {
127        &self.c1v
128    }
129    #[doc = "0x7c - Capture Register 2"]
130    #[inline(always)]
131    pub const fn c2v(&self) -> &C2V {
132        &self.c2v
133    }
134    #[doc = "0x80 - Capture Register 3"]
135    #[inline(always)]
136    pub const fn c3v(&self) -> &C3V {
137        &self.c3v
138    }
139    #[doc = "0xa0 - Interrupt Status"]
140    #[inline(always)]
141    pub const fn ints(&self) -> &INTS {
142        &self.ints
143    }
144    #[doc = "0xa4 - Interrupt Enable Control"]
145    #[inline(always)]
146    pub const fn inte(&self) -> &INTE {
147        &self.inte
148    }
149    #[doc = "0xa8 - Service Request Selector"]
150    #[inline(always)]
151    pub const fn srs(&self) -> &SRS {
152        &self.srs
153    }
154    #[doc = "0xac - Interrupt Status Set"]
155    #[inline(always)]
156    pub const fn sws(&self) -> &SWS {
157        &self.sws
158    }
159    #[doc = "0xb0 - Interrupt Status Clear"]
160    #[inline(always)]
161    pub const fn swr(&self) -> &SWR {
162        &self.swr
163    }
164}
165#[doc = "INS (rw) register accessor: Input Selector Configuration\n\nYou can [`read`](crate::Reg::read) this register and get [`ins::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ins::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ins`]
166module"]
167pub type INS = crate::Reg<ins::INS_SPEC>;
168#[doc = "Input Selector Configuration"]
169pub mod ins;
170#[doc = "CMC (rw) register accessor: Connection Matrix Control\n\nYou can [`read`](crate::Reg::read) this register and get [`cmc::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cmc::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cmc`]
171module"]
172pub type CMC = crate::Reg<cmc::CMC_SPEC>;
173#[doc = "Connection Matrix Control"]
174pub mod cmc;
175#[doc = "TCST (r) register accessor: Slice Timer Status\n\nYou can [`read`](crate::Reg::read) this register and get [`tcst::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tcst`]
176module"]
177pub type TCST = crate::Reg<tcst::TCST_SPEC>;
178#[doc = "Slice Timer Status"]
179pub mod tcst;
180#[doc = "TCSET (w) register accessor: Slice Timer Run Set\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tcset::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tcset`]
181module"]
182pub type TCSET = crate::Reg<tcset::TCSET_SPEC>;
183#[doc = "Slice Timer Run Set"]
184pub mod tcset;
185#[doc = "TCCLR (w) register accessor: Slice Timer Clear\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tcclr::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tcclr`]
186module"]
187pub type TCCLR = crate::Reg<tcclr::TCCLR_SPEC>;
188#[doc = "Slice Timer Clear"]
189pub mod tcclr;
190#[doc = "TC (rw) register accessor: Slice Timer Control\n\nYou can [`read`](crate::Reg::read) this register and get [`tc::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tc::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tc`]
191module"]
192pub type TC = crate::Reg<tc::TC_SPEC>;
193#[doc = "Slice Timer Control"]
194pub mod tc;
195#[doc = "PSL (rw) register accessor: Passive Level Config\n\nYou can [`read`](crate::Reg::read) this register and get [`psl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`psl::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@psl`]
196module"]
197pub type PSL = crate::Reg<psl::PSL_SPEC>;
198#[doc = "Passive Level Config"]
199pub mod psl;
200#[doc = "DIT (r) register accessor: Dither Config\n\nYou can [`read`](crate::Reg::read) this register and get [`dit::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dit`]
201module"]
202pub type DIT = crate::Reg<dit::DIT_SPEC>;
203#[doc = "Dither Config"]
204pub mod dit;
205#[doc = "DITS (rw) register accessor: Dither Shadow Register\n\nYou can [`read`](crate::Reg::read) this register and get [`dits::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dits::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dits`]
206module"]
207pub type DITS = crate::Reg<dits::DITS_SPEC>;
208#[doc = "Dither Shadow Register"]
209pub mod dits;
210#[doc = "PSC (rw) register accessor: Prescaler Control\n\nYou can [`read`](crate::Reg::read) this register and get [`psc::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`psc::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@psc`]
211module"]
212pub type PSC = crate::Reg<psc::PSC_SPEC>;
213#[doc = "Prescaler Control"]
214pub mod psc;
215#[doc = "FPC (rw) register accessor: Floating Prescaler Control\n\nYou can [`read`](crate::Reg::read) this register and get [`fpc::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`fpc::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@fpc`]
216module"]
217pub type FPC = crate::Reg<fpc::FPC_SPEC>;
218#[doc = "Floating Prescaler Control"]
219pub mod fpc;
220#[doc = "FPCS (rw) register accessor: Floating Prescaler Shadow\n\nYou can [`read`](crate::Reg::read) this register and get [`fpcs::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`fpcs::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@fpcs`]
221module"]
222pub type FPCS = crate::Reg<fpcs::FPCS_SPEC>;
223#[doc = "Floating Prescaler Shadow"]
224pub mod fpcs;
225#[doc = "PR (r) register accessor: Timer Period Value\n\nYou can [`read`](crate::Reg::read) this register and get [`pr::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@pr`]
226module"]
227pub type PR = crate::Reg<pr::PR_SPEC>;
228#[doc = "Timer Period Value"]
229pub mod pr;
230#[doc = "PRS (rw) register accessor: Timer Shadow Period Value\n\nYou can [`read`](crate::Reg::read) this register and get [`prs::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`prs::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@prs`]
231module"]
232pub type PRS = crate::Reg<prs::PRS_SPEC>;
233#[doc = "Timer Shadow Period Value"]
234pub mod prs;
235#[doc = "CR (r) register accessor: Timer Compare Value\n\nYou can [`read`](crate::Reg::read) this register and get [`cr::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cr`]
236module"]
237pub type CR = crate::Reg<cr::CR_SPEC>;
238#[doc = "Timer Compare Value"]
239pub mod cr;
240#[doc = "CRS (rw) register accessor: Timer Shadow Compare Value\n\nYou can [`read`](crate::Reg::read) this register and get [`crs::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`crs::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@crs`]
241module"]
242pub type CRS = crate::Reg<crs::CRS_SPEC>;
243#[doc = "Timer Shadow Compare Value"]
244pub mod crs;
245#[doc = "TIMER (rw) register accessor: Timer Value\n\nYou can [`read`](crate::Reg::read) this register and get [`timer::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`timer::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@timer`]
246module"]
247pub type TIMER = crate::Reg<timer::TIMER_SPEC>;
248#[doc = "Timer Value"]
249pub mod timer;
250#[doc = "C0V (r) register accessor: Capture Register 0\n\nYou can [`read`](crate::Reg::read) this register and get [`c0v::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\n<div class=\"warning\">One or more dependent resources other than the current register are immediately affected by a read operation.</div>\n\nFor information about available fields see [`mod@c0v`]
251module"]
252pub type C0V = crate::Reg<c0v::C0V_SPEC>;
253#[doc = "Capture Register 0"]
254pub mod c0v;
255#[doc = "C1V (r) register accessor: Capture Register 1\n\nYou can [`read`](crate::Reg::read) this register and get [`c1v::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\n<div class=\"warning\">One or more dependent resources other than the current register are immediately affected by a read operation.</div>\n\nFor information about available fields see [`mod@c1v`]
256module"]
257pub type C1V = crate::Reg<c1v::C1V_SPEC>;
258#[doc = "Capture Register 1"]
259pub mod c1v;
260#[doc = "C2V (r) register accessor: Capture Register 2\n\nYou can [`read`](crate::Reg::read) this register and get [`c2v::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\n<div class=\"warning\">One or more dependent resources other than the current register are immediately affected by a read operation.</div>\n\nFor information about available fields see [`mod@c2v`]
261module"]
262pub type C2V = crate::Reg<c2v::C2V_SPEC>;
263#[doc = "Capture Register 2"]
264pub mod c2v;
265#[doc = "C3V (r) register accessor: Capture Register 3\n\nYou can [`read`](crate::Reg::read) this register and get [`c3v::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\n<div class=\"warning\">One or more dependent resources other than the current register are immediately affected by a read operation.</div>\n\nFor information about available fields see [`mod@c3v`]
266module"]
267pub type C3V = crate::Reg<c3v::C3V_SPEC>;
268#[doc = "Capture Register 3"]
269pub mod c3v;
270#[doc = "INTS (r) register accessor: Interrupt Status\n\nYou can [`read`](crate::Reg::read) this register and get [`ints::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ints`]
271module"]
272pub type INTS = crate::Reg<ints::INTS_SPEC>;
273#[doc = "Interrupt Status"]
274pub mod ints;
275#[doc = "INTE (rw) register accessor: Interrupt Enable Control\n\nYou can [`read`](crate::Reg::read) this register and get [`inte::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`inte::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@inte`]
276module"]
277pub type INTE = crate::Reg<inte::INTE_SPEC>;
278#[doc = "Interrupt Enable Control"]
279pub mod inte;
280#[doc = "SRS (rw) register accessor: Service Request Selector\n\nYou can [`read`](crate::Reg::read) this register and get [`srs::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`srs::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@srs`]
281module"]
282pub type SRS = crate::Reg<srs::SRS_SPEC>;
283#[doc = "Service Request Selector"]
284pub mod srs;
285#[doc = "SWS (w) register accessor: Interrupt Status Set\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`sws::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@sws`]
286module"]
287pub type SWS = crate::Reg<sws::SWS_SPEC>;
288#[doc = "Interrupt Status Set"]
289pub mod sws;
290#[doc = "SWR (w) register accessor: Interrupt Status Clear\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`swr::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@swr`]
291module"]
292pub type SWR = crate::Reg<swr::SWR_SPEC>;
293#[doc = "Interrupt Status Clear"]
294pub mod swr;