ra4e1/
rtc.rs

1#[doc = r"Register block"]
2#[repr(C)]
3pub struct RegisterBlock {
4    #[doc = "0x00 - 64-Hz Counter"]
5    pub r64cnt: R64CNT,
6    _reserved1: [u8; 0x01],
7    _reserved_1_bcnt0: [u8; 0x01],
8    _reserved2: [u8; 0x01],
9    _reserved_2_bcnt1: [u8; 0x01],
10    _reserved3: [u8; 0x01],
11    _reserved_3_bcnt2: [u8; 0x01],
12    _reserved4: [u8; 0x01],
13    _reserved_4_bcnt3: [u8; 0x01],
14    _reserved5: [u8; 0x01],
15    #[doc = "0x0a - Day Counter"]
16    pub rdaycnt: RDAYCNT,
17    _reserved6: [u8; 0x01],
18    #[doc = "0x0c - Month Counter"]
19    pub rmoncnt: RMONCNT,
20    _reserved7: [u8; 0x01],
21    #[doc = "0x0e - Year Counter"]
22    pub ryrcnt: RYRCNT,
23    _reserved_8_rsecar: [u8; 0x01],
24    _reserved9: [u8; 0x01],
25    _reserved_9_rminar: [u8; 0x01],
26    _reserved10: [u8; 0x01],
27    _reserved_10_rhrar: [u8; 0x01],
28    _reserved11: [u8; 0x01],
29    _reserved_11_rwkar: [u8; 0x01],
30    _reserved12: [u8; 0x01],
31    _reserved_12_rdayar: [u8; 0x01],
32    _reserved13: [u8; 0x01],
33    _reserved_13_rmonar: [u8; 0x01],
34    _reserved14: [u8; 0x01],
35    _reserved_14_ryrar: [u8; 0x02],
36    _reserved_15_ryraren: [u8; 0x01],
37    _reserved16: [u8; 0x03],
38    #[doc = "0x22 - RTC Control Register 1"]
39    pub rcr1: RCR1,
40    _reserved17: [u8; 0x01],
41    _reserved_17_rcr: [u8; 0x01],
42    _reserved18: [u8; 0x03],
43    #[doc = "0x28 - RTC Control Register 4"]
44    pub rcr4: RCR4,
45    _reserved19: [u8; 0x01],
46    #[doc = "0x2a - Frequency Register H"]
47    pub rfrh: RFRH,
48    #[doc = "0x2c - Frequency Register L"]
49    pub rfrl: RFRL,
50    #[doc = "0x2e - Time Error Adjustment Register"]
51    pub radj: RADJ,
52    _reserved22: [u8; 0x11],
53    #[doc = "0x40 - Time Capture Control Register 0"]
54    pub rtccr0: RTCCR0,
55    _reserved23: [u8; 0x11],
56    _reserved_23_rseccp0: [u8; 0x01],
57    _reserved24: [u8; 0x01],
58    _reserved_24_rmincp0: [u8; 0x01],
59    _reserved25: [u8; 0x01],
60    _reserved_25_rhrcp0: [u8; 0x01],
61    _reserved26: [u8; 0x03],
62    _reserved_26_rdaycp0: [u8; 0x01],
63    _reserved27: [u8; 0x01],
64    #[doc = "0x5c - Month Capture Register 0"]
65    pub rmoncp0: RMONCP0,
66}
67impl RegisterBlock {
68    #[doc = "0x02 - Second Counter (in Calendar Count Mode)"]
69    #[inline(always)]
70    pub const fn rseccnt(&self) -> &RSECCNT {
71        unsafe { &*(self as *const Self).cast::<u8>().add(2usize).cast() }
72    }
73    #[doc = "0x02 - Binary Counter %s"]
74    #[inline(always)]
75    pub const fn bcnt0(&self) -> &BCNT {
76        unsafe { &*(self as *const Self).cast::<u8>().add(2usize).cast() }
77    }
78    #[doc = "0x04 - Minute Counter (in Calendar Count Mode)"]
79    #[inline(always)]
80    pub const fn rmincnt(&self) -> &RMINCNT {
81        unsafe { &*(self as *const Self).cast::<u8>().add(4usize).cast() }
82    }
83    #[doc = "0x04 - Binary Counter %s"]
84    #[inline(always)]
85    pub const fn bcnt1(&self) -> &BCNT {
86        unsafe { &*(self as *const Self).cast::<u8>().add(4usize).cast() }
87    }
88    #[doc = "0x06 - Hour Counter (in Calendar Count Mode)"]
89    #[inline(always)]
90    pub const fn rhrcnt(&self) -> &RHRCNT {
91        unsafe { &*(self as *const Self).cast::<u8>().add(6usize).cast() }
92    }
93    #[doc = "0x06 - Binary Counter %s"]
94    #[inline(always)]
95    pub const fn bcnt2(&self) -> &BCNT {
96        unsafe { &*(self as *const Self).cast::<u8>().add(6usize).cast() }
97    }
98    #[doc = "0x08 - Day-of-Week Counter (in Calendar Count Mode)"]
99    #[inline(always)]
100    pub const fn rwkcnt(&self) -> &RWKCNT {
101        unsafe { &*(self as *const Self).cast::<u8>().add(8usize).cast() }
102    }
103    #[doc = "0x08 - Binary Counter %s"]
104    #[inline(always)]
105    pub const fn bcnt3(&self) -> &BCNT {
106        unsafe { &*(self as *const Self).cast::<u8>().add(8usize).cast() }
107    }
108    #[doc = "0x10 - Second Alarm Register (in Calendar Count Mode)"]
109    #[inline(always)]
110    pub const fn rsecar(&self) -> &RSECAR {
111        unsafe { &*(self as *const Self).cast::<u8>().add(16usize).cast() }
112    }
113    #[doc = "0x10 - Binary Counter %s Alarm Register"]
114    #[inline(always)]
115    pub const fn bcnt0ar(&self) -> &BCNTAR {
116        unsafe { &*(self as *const Self).cast::<u8>().add(16usize).cast() }
117    }
118    #[doc = "0x12 - Minute Alarm Register (in Calendar Count Mode)"]
119    #[inline(always)]
120    pub const fn rminar(&self) -> &RMINAR {
121        unsafe { &*(self as *const Self).cast::<u8>().add(18usize).cast() }
122    }
123    #[doc = "0x12 - Binary Counter %s Alarm Register"]
124    #[inline(always)]
125    pub const fn bcnt1ar(&self) -> &BCNTAR {
126        unsafe { &*(self as *const Self).cast::<u8>().add(18usize).cast() }
127    }
128    #[doc = "0x14 - Hour Alarm Register (in Calendar Count Mode)"]
129    #[inline(always)]
130    pub const fn rhrar(&self) -> &RHRAR {
131        unsafe { &*(self as *const Self).cast::<u8>().add(20usize).cast() }
132    }
133    #[doc = "0x14 - Binary Counter %s Alarm Register"]
134    #[inline(always)]
135    pub const fn bcnt2ar(&self) -> &BCNTAR {
136        unsafe { &*(self as *const Self).cast::<u8>().add(20usize).cast() }
137    }
138    #[doc = "0x16 - Day-of-Week Alarm Register (in Calendar Count Mode)"]
139    #[inline(always)]
140    pub const fn rwkar(&self) -> &RWKAR {
141        unsafe { &*(self as *const Self).cast::<u8>().add(22usize).cast() }
142    }
143    #[doc = "0x16 - Binary Counter %s Alarm Register"]
144    #[inline(always)]
145    pub const fn bcnt3ar(&self) -> &BCNTAR {
146        unsafe { &*(self as *const Self).cast::<u8>().add(22usize).cast() }
147    }
148    #[doc = "0x18 - Date Alarm Register (in Calendar Count Mode)"]
149    #[inline(always)]
150    pub const fn rdayar(&self) -> &RDAYAR {
151        unsafe { &*(self as *const Self).cast::<u8>().add(24usize).cast() }
152    }
153    #[doc = "0x18 - Binary Counter %s Alarm Enable Register"]
154    #[inline(always)]
155    pub const fn bcnt0aer(&self) -> &BCNTAER {
156        unsafe { &*(self as *const Self).cast::<u8>().add(24usize).cast() }
157    }
158    #[doc = "0x1a - Month Alarm Register (in Calendar Count Mode)"]
159    #[inline(always)]
160    pub const fn rmonar(&self) -> &RMONAR {
161        unsafe { &*(self as *const Self).cast::<u8>().add(26usize).cast() }
162    }
163    #[doc = "0x1a - Binary Counter %s Alarm Enable Register"]
164    #[inline(always)]
165    pub const fn bcnt1aer(&self) -> &BCNTAER {
166        unsafe { &*(self as *const Self).cast::<u8>().add(26usize).cast() }
167    }
168    #[doc = "0x1c - Year Alarm Register (in Calendar Count Mode)"]
169    #[inline(always)]
170    pub const fn ryrar(&self) -> &RYRAR {
171        unsafe { &*(self as *const Self).cast::<u8>().add(28usize).cast() }
172    }
173    #[doc = "0x1c - Binary Counter 2 Alarm Enable Register"]
174    #[inline(always)]
175    pub const fn bcnt2aer(&self) -> &BCNT2AER {
176        unsafe { &*(self as *const Self).cast::<u8>().add(28usize).cast() }
177    }
178    #[doc = "0x1e - Year Alarm Enable Register (in Calendar Count Mode)"]
179    #[inline(always)]
180    pub const fn ryraren(&self) -> &RYRAREN {
181        unsafe { &*(self as *const Self).cast::<u8>().add(30usize).cast() }
182    }
183    #[doc = "0x1e - Binary Counter 3 Alarm Enable Register"]
184    #[inline(always)]
185    pub const fn bcnt3aer(&self) -> &BCNT3AER {
186        unsafe { &*(self as *const Self).cast::<u8>().add(30usize).cast() }
187    }
188    #[doc = "0x24 - RTC Control Register 2 (in Binary Count Mode)"]
189    #[inline(always)]
190    pub const fn rcr2_bcnt(&self) -> &RCR2_BCNT {
191        unsafe { &*(self as *const Self).cast::<u8>().add(36usize).cast() }
192    }
193    #[doc = "0x24 - RTC Control Register 2 (in Calendar Count Mode)"]
194    #[inline(always)]
195    pub const fn rcr2(&self) -> &RCR2 {
196        unsafe { &*(self as *const Self).cast::<u8>().add(36usize).cast() }
197    }
198    #[doc = "0x52 - Second Capture Register 0"]
199    #[inline(always)]
200    pub const fn rseccp0(&self) -> &RSECCP0 {
201        unsafe { &*(self as *const Self).cast::<u8>().add(82usize).cast() }
202    }
203    #[doc = "0x52 - BCNT0 Capture Register 0"]
204    #[inline(always)]
205    pub const fn bcnt0cp0(&self) -> &BCNT0CP0 {
206        unsafe { &*(self as *const Self).cast::<u8>().add(82usize).cast() }
207    }
208    #[doc = "0x54 - Minute Capture Register 0"]
209    #[inline(always)]
210    pub const fn rmincp0(&self) -> &RMINCP0 {
211        unsafe { &*(self as *const Self).cast::<u8>().add(84usize).cast() }
212    }
213    #[doc = "0x54 - BCNT1 Capture Register 0"]
214    #[inline(always)]
215    pub const fn bcnt1cp0(&self) -> &BCNT1CP0 {
216        unsafe { &*(self as *const Self).cast::<u8>().add(84usize).cast() }
217    }
218    #[doc = "0x56 - Hour Capture Register 0"]
219    #[inline(always)]
220    pub const fn rhrcp0(&self) -> &RHRCP0 {
221        unsafe { &*(self as *const Self).cast::<u8>().add(86usize).cast() }
222    }
223    #[doc = "0x56 - BCNT2 Capture Register 0"]
224    #[inline(always)]
225    pub const fn bcnt2cp0(&self) -> &BCNT2CP0 {
226        unsafe { &*(self as *const Self).cast::<u8>().add(86usize).cast() }
227    }
228    #[doc = "0x5a - Date Capture Register 0"]
229    #[inline(always)]
230    pub const fn rdaycp0(&self) -> &RDAYCP0 {
231        unsafe { &*(self as *const Self).cast::<u8>().add(90usize).cast() }
232    }
233    #[doc = "0x5a - BCNT3 Capture Register 0"]
234    #[inline(always)]
235    pub const fn bcnt3cp0(&self) -> &BCNT3CP0 {
236        unsafe { &*(self as *const Self).cast::<u8>().add(90usize).cast() }
237    }
238}
239#[doc = "R64CNT (r) register accessor: an alias for `Reg<R64CNT_SPEC>`"]
240pub type R64CNT = crate::Reg<r64cnt::R64CNT_SPEC>;
241#[doc = "64-Hz Counter"]
242pub mod r64cnt;
243#[doc = "BCNT (rw) register accessor: an alias for `Reg<BCNT_SPEC>`"]
244pub type BCNT = crate::Reg<bcnt::BCNT_SPEC>;
245#[doc = "Binary Counter %s"]
246pub mod bcnt;
247#[doc = "RSECCNT (rw) register accessor: an alias for `Reg<RSECCNT_SPEC>`"]
248pub type RSECCNT = crate::Reg<rseccnt::RSECCNT_SPEC>;
249#[doc = "Second Counter (in Calendar Count Mode)"]
250pub mod rseccnt;
251#[doc = "RMINCNT (rw) register accessor: an alias for `Reg<RMINCNT_SPEC>`"]
252pub type RMINCNT = crate::Reg<rmincnt::RMINCNT_SPEC>;
253#[doc = "Minute Counter (in Calendar Count Mode)"]
254pub mod rmincnt;
255#[doc = "RHRCNT (rw) register accessor: an alias for `Reg<RHRCNT_SPEC>`"]
256pub type RHRCNT = crate::Reg<rhrcnt::RHRCNT_SPEC>;
257#[doc = "Hour Counter (in Calendar Count Mode)"]
258pub mod rhrcnt;
259#[doc = "RWKCNT (rw) register accessor: an alias for `Reg<RWKCNT_SPEC>`"]
260pub type RWKCNT = crate::Reg<rwkcnt::RWKCNT_SPEC>;
261#[doc = "Day-of-Week Counter (in Calendar Count Mode)"]
262pub mod rwkcnt;
263#[doc = "RDAYCNT (rw) register accessor: an alias for `Reg<RDAYCNT_SPEC>`"]
264pub type RDAYCNT = crate::Reg<rdaycnt::RDAYCNT_SPEC>;
265#[doc = "Day Counter"]
266pub mod rdaycnt;
267#[doc = "RMONCNT (rw) register accessor: an alias for `Reg<RMONCNT_SPEC>`"]
268pub type RMONCNT = crate::Reg<rmoncnt::RMONCNT_SPEC>;
269#[doc = "Month Counter"]
270pub mod rmoncnt;
271#[doc = "RYRCNT (rw) register accessor: an alias for `Reg<RYRCNT_SPEC>`"]
272pub type RYRCNT = crate::Reg<ryrcnt::RYRCNT_SPEC>;
273#[doc = "Year Counter"]
274pub mod ryrcnt;
275#[doc = "BCNTAR (rw) register accessor: an alias for `Reg<BCNTAR_SPEC>`"]
276pub type BCNTAR = crate::Reg<bcntar::BCNTAR_SPEC>;
277#[doc = "Binary Counter %s Alarm Register"]
278pub mod bcntar;
279#[doc = "RSECAR (rw) register accessor: an alias for `Reg<RSECAR_SPEC>`"]
280pub type RSECAR = crate::Reg<rsecar::RSECAR_SPEC>;
281#[doc = "Second Alarm Register (in Calendar Count Mode)"]
282pub mod rsecar;
283#[doc = "RMINAR (rw) register accessor: an alias for `Reg<RMINAR_SPEC>`"]
284pub type RMINAR = crate::Reg<rminar::RMINAR_SPEC>;
285#[doc = "Minute Alarm Register (in Calendar Count Mode)"]
286pub mod rminar;
287#[doc = "RHRAR (rw) register accessor: an alias for `Reg<RHRAR_SPEC>`"]
288pub type RHRAR = crate::Reg<rhrar::RHRAR_SPEC>;
289#[doc = "Hour Alarm Register (in Calendar Count Mode)"]
290pub mod rhrar;
291#[doc = "RWKAR (rw) register accessor: an alias for `Reg<RWKAR_SPEC>`"]
292pub type RWKAR = crate::Reg<rwkar::RWKAR_SPEC>;
293#[doc = "Day-of-Week Alarm Register (in Calendar Count Mode)"]
294pub mod rwkar;
295#[doc = "BCNTAER (rw) register accessor: an alias for `Reg<BCNTAER_SPEC>`"]
296pub type BCNTAER = crate::Reg<bcntaer::BCNTAER_SPEC>;
297#[doc = "Binary Counter %s Alarm Enable Register"]
298pub mod bcntaer;
299#[doc = "RDAYAR (rw) register accessor: an alias for `Reg<RDAYAR_SPEC>`"]
300pub type RDAYAR = crate::Reg<rdayar::RDAYAR_SPEC>;
301#[doc = "Date Alarm Register (in Calendar Count Mode)"]
302pub mod rdayar;
303#[doc = "RMONAR (rw) register accessor: an alias for `Reg<RMONAR_SPEC>`"]
304pub type RMONAR = crate::Reg<rmonar::RMONAR_SPEC>;
305#[doc = "Month Alarm Register (in Calendar Count Mode)"]
306pub mod rmonar;
307#[doc = "BCNT2AER (rw) register accessor: an alias for `Reg<BCNT2AER_SPEC>`"]
308pub type BCNT2AER = crate::Reg<bcnt2aer::BCNT2AER_SPEC>;
309#[doc = "Binary Counter 2 Alarm Enable Register"]
310pub mod bcnt2aer;
311#[doc = "RYRAR (rw) register accessor: an alias for `Reg<RYRAR_SPEC>`"]
312pub type RYRAR = crate::Reg<ryrar::RYRAR_SPEC>;
313#[doc = "Year Alarm Register (in Calendar Count Mode)"]
314pub mod ryrar;
315pub use bcntaer as bcnt3aer;
316pub use BCNTAER as BCNT3AER;
317#[doc = "RYRAREN (rw) register accessor: an alias for `Reg<RYRAREN_SPEC>`"]
318pub type RYRAREN = crate::Reg<ryraren::RYRAREN_SPEC>;
319#[doc = "Year Alarm Enable Register (in Calendar Count Mode)"]
320pub mod ryraren;
321#[doc = "RCR1 (rw) register accessor: an alias for `Reg<RCR1_SPEC>`"]
322pub type RCR1 = crate::Reg<rcr1::RCR1_SPEC>;
323#[doc = "RTC Control Register 1"]
324pub mod rcr1;
325#[doc = "RCR2 (rw) register accessor: an alias for `Reg<RCR2_SPEC>`"]
326pub type RCR2 = crate::Reg<rcr2::RCR2_SPEC>;
327#[doc = "RTC Control Register 2 (in Calendar Count Mode)"]
328pub mod rcr2;
329#[doc = "RCR2_BCNT (rw) register accessor: an alias for `Reg<RCR2_BCNT_SPEC>`"]
330pub type RCR2_BCNT = crate::Reg<rcr2_bcnt::RCR2_BCNT_SPEC>;
331#[doc = "RTC Control Register 2 (in Binary Count Mode)"]
332pub mod rcr2_bcnt;
333#[doc = "RCR4 (rw) register accessor: an alias for `Reg<RCR4_SPEC>`"]
334pub type RCR4 = crate::Reg<rcr4::RCR4_SPEC>;
335#[doc = "RTC Control Register 4"]
336pub mod rcr4;
337#[doc = "RFRH (rw) register accessor: an alias for `Reg<RFRH_SPEC>`"]
338pub type RFRH = crate::Reg<rfrh::RFRH_SPEC>;
339#[doc = "Frequency Register H"]
340pub mod rfrh;
341#[doc = "RFRL (rw) register accessor: an alias for `Reg<RFRL_SPEC>`"]
342pub type RFRL = crate::Reg<rfrl::RFRL_SPEC>;
343#[doc = "Frequency Register L"]
344pub mod rfrl;
345#[doc = "RADJ (rw) register accessor: an alias for `Reg<RADJ_SPEC>`"]
346pub type RADJ = crate::Reg<radj::RADJ_SPEC>;
347#[doc = "Time Error Adjustment Register"]
348pub mod radj;
349#[doc = "RTCCR0 (rw) register accessor: an alias for `Reg<RTCCR0_SPEC>`"]
350pub type RTCCR0 = crate::Reg<rtccr0::RTCCR0_SPEC>;
351#[doc = "Time Capture Control Register 0"]
352pub mod rtccr0;
353#[doc = "BCNT0CP0 (r) register accessor: an alias for `Reg<BCNT0CP0_SPEC>`"]
354pub type BCNT0CP0 = crate::Reg<bcnt0cp0::BCNT0CP0_SPEC>;
355#[doc = "BCNT0 Capture Register 0"]
356pub mod bcnt0cp0;
357#[doc = "RSECCP0 (r) register accessor: an alias for `Reg<RSECCP0_SPEC>`"]
358pub type RSECCP0 = crate::Reg<rseccp0::RSECCP0_SPEC>;
359#[doc = "Second Capture Register 0"]
360pub mod rseccp0;
361#[doc = "BCNT1CP0 (r) register accessor: an alias for `Reg<BCNT1CP0_SPEC>`"]
362pub type BCNT1CP0 = crate::Reg<bcnt1cp0::BCNT1CP0_SPEC>;
363#[doc = "BCNT1 Capture Register 0"]
364pub mod bcnt1cp0;
365#[doc = "RMINCP0 (r) register accessor: an alias for `Reg<RMINCP0_SPEC>`"]
366pub type RMINCP0 = crate::Reg<rmincp0::RMINCP0_SPEC>;
367#[doc = "Minute Capture Register 0"]
368pub mod rmincp0;
369#[doc = "BCNT2CP0 (r) register accessor: an alias for `Reg<BCNT2CP0_SPEC>`"]
370pub type BCNT2CP0 = crate::Reg<bcnt2cp0::BCNT2CP0_SPEC>;
371#[doc = "BCNT2 Capture Register 0"]
372pub mod bcnt2cp0;
373#[doc = "RHRCP0 (r) register accessor: an alias for `Reg<RHRCP0_SPEC>`"]
374pub type RHRCP0 = crate::Reg<rhrcp0::RHRCP0_SPEC>;
375#[doc = "Hour Capture Register 0"]
376pub mod rhrcp0;
377#[doc = "BCNT3CP0 (r) register accessor: an alias for `Reg<BCNT3CP0_SPEC>`"]
378pub type BCNT3CP0 = crate::Reg<bcnt3cp0::BCNT3CP0_SPEC>;
379#[doc = "BCNT3 Capture Register 0"]
380pub mod bcnt3cp0;
381#[doc = "RDAYCP0 (r) register accessor: an alias for `Reg<RDAYCP0_SPEC>`"]
382pub type RDAYCP0 = crate::Reg<rdaycp0::RDAYCP0_SPEC>;
383#[doc = "Date Capture Register 0"]
384pub mod rdaycp0;
385#[doc = "RMONCP0 (r) register accessor: an alias for `Reg<RMONCP0_SPEC>`"]
386pub type RMONCP0 = crate::Reg<rmoncp0::RMONCP0_SPEC>;
387#[doc = "Month Capture Register 0"]
388pub mod rmoncp0;