da14681_pac/
timer1.rs

1/*
2DISCLAIMER
3This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products.
4No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all
5applicable laws, including copyright laws.
6THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED
7OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
8NON-INFRINGEMENT.  ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY
9LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT,
10INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR
11ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
12Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability
13of this software. By using this software, you agree to the additional terms and conditions found by accessing the
14following link:
15http://www.renesas.com/disclaimer
16
17*/
18// Generated from SVD 1.2, with svd2pac 0.6.0 on Thu, 24 Jul 2025 04:45:04 +0000
19
20#![allow(clippy::identity_op)]
21#![allow(clippy::module_inception)]
22#![allow(clippy::derivable_impls)]
23#[allow(unused_imports)]
24use crate::common::sealed;
25#[allow(unused_imports)]
26use crate::common::*;
27#[doc = r"TIMER1 registers"]
28unsafe impl ::core::marker::Send for super::Timer1 {}
29unsafe impl ::core::marker::Sync for super::Timer1 {}
30impl super::Timer1 {
31    #[allow(unused)]
32    #[inline(always)]
33    pub(crate) const fn _svd2pac_as_ptr(&self) -> *mut u8 {
34        self.ptr
35    }
36
37    #[doc = "Capture Timer value for event on GPIO1"]
38    #[inline(always)]
39    pub const fn captim_capture_gpio1_reg(
40        &self,
41    ) -> &'static crate::common::Reg<self::CaptimCaptureGpio1Reg_SPEC, crate::common::RW> {
42        unsafe {
43            crate::common::Reg::<self::CaptimCaptureGpio1Reg_SPEC, crate::common::RW>::from_ptr(
44                self._svd2pac_as_ptr().add(16usize),
45            )
46        }
47    }
48
49    #[doc = "Capture Timer value for event on GPIO2"]
50    #[inline(always)]
51    pub const fn captim_capture_gpio2_reg(
52        &self,
53    ) -> &'static crate::common::Reg<self::CaptimCaptureGpio2Reg_SPEC, crate::common::RW> {
54        unsafe {
55            crate::common::Reg::<self::CaptimCaptureGpio2Reg_SPEC, crate::common::RW>::from_ptr(
56                self._svd2pac_as_ptr().add(18usize),
57            )
58        }
59    }
60
61    #[doc = "Capture Timer control register"]
62    #[inline(always)]
63    pub const fn captim_ctrl_reg(
64        &self,
65    ) -> &'static crate::common::Reg<self::CaptimCtrlReg_SPEC, crate::common::RW> {
66        unsafe {
67            crate::common::Reg::<self::CaptimCtrlReg_SPEC, crate::common::RW>::from_ptr(
68                self._svd2pac_as_ptr().add(0usize),
69            )
70        }
71    }
72
73    #[doc = "Capture Timer gpio1 selection"]
74    #[inline(always)]
75    pub const fn captim_gpio1_conf_reg(
76        &self,
77    ) -> &'static crate::common::Reg<self::CaptimGpio1ConfReg_SPEC, crate::common::RW> {
78        unsafe {
79            crate::common::Reg::<self::CaptimGpio1ConfReg_SPEC, crate::common::RW>::from_ptr(
80                self._svd2pac_as_ptr().add(6usize),
81            )
82        }
83    }
84
85    #[doc = "Capture Timer gpio2 selection"]
86    #[inline(always)]
87    pub const fn captim_gpio2_conf_reg(
88        &self,
89    ) -> &'static crate::common::Reg<self::CaptimGpio2ConfReg_SPEC, crate::common::RW> {
90        unsafe {
91            crate::common::Reg::<self::CaptimGpio2ConfReg_SPEC, crate::common::RW>::from_ptr(
92                self._svd2pac_as_ptr().add(8usize),
93            )
94        }
95    }
96
97    #[doc = "Capture Timer prescaler value"]
98    #[inline(always)]
99    pub const fn captim_prescaler_reg(
100        &self,
101    ) -> &'static crate::common::Reg<self::CaptimPrescalerReg_SPEC, crate::common::RW> {
102        unsafe {
103            crate::common::Reg::<self::CaptimPrescalerReg_SPEC, crate::common::RW>::from_ptr(
104                self._svd2pac_as_ptr().add(14usize),
105            )
106        }
107    }
108
109    #[doc = "Capture Timer interrupt status register"]
110    #[inline(always)]
111    pub const fn captim_prescaler_val_reg(
112        &self,
113    ) -> &'static crate::common::Reg<self::CaptimPrescalerValReg_SPEC, crate::common::RW> {
114        unsafe {
115            crate::common::Reg::<self::CaptimPrescalerValReg_SPEC, crate::common::RW>::from_ptr(
116                self._svd2pac_as_ptr().add(20usize),
117            )
118        }
119    }
120
121    #[doc = "Capture Timer pwm dc register"]
122    #[inline(always)]
123    pub const fn captim_pwm_dc_reg(
124        &self,
125    ) -> &'static crate::common::Reg<self::CaptimPwmDcReg_SPEC, crate::common::RW> {
126        unsafe {
127            crate::common::Reg::<self::CaptimPwmDcReg_SPEC, crate::common::RW>::from_ptr(
128                self._svd2pac_as_ptr().add(24usize),
129            )
130        }
131    }
132
133    #[doc = "Capture Timer pwm frequency register. PWM5 period is defined by the reference clock frequency multiplied by this value."]
134    #[inline(always)]
135    pub const fn captim_pwm_freq_reg(
136        &self,
137    ) -> &'static crate::common::Reg<self::CaptimPwmFreqReg_SPEC, crate::common::RW> {
138        unsafe {
139            crate::common::Reg::<self::CaptimPwmFreqReg_SPEC, crate::common::RW>::from_ptr(
140                self._svd2pac_as_ptr().add(22usize),
141            )
142        }
143    }
144
145    #[doc = "Capture Timer reload value and Delay in shot mode"]
146    #[inline(always)]
147    pub const fn captim_reload_reg(
148        &self,
149    ) -> &'static crate::common::Reg<self::CaptimReloadReg_SPEC, crate::common::RW> {
150        unsafe {
151            crate::common::Reg::<self::CaptimReloadReg_SPEC, crate::common::RW>::from_ptr(
152                self._svd2pac_as_ptr().add(10usize),
153            )
154        }
155    }
156
157    #[doc = "Capture Timer Shot duration in shot mode"]
158    #[inline(always)]
159    pub const fn captim_shotwidth_reg(
160        &self,
161    ) -> &'static crate::common::Reg<self::CaptimShotwidthReg_SPEC, crate::common::RW> {
162        unsafe {
163            crate::common::Reg::<self::CaptimShotwidthReg_SPEC, crate::common::RW>::from_ptr(
164                self._svd2pac_as_ptr().add(12usize),
165            )
166        }
167    }
168
169    #[doc = "Capture Timer status register"]
170    #[inline(always)]
171    pub const fn captim_status_reg(
172        &self,
173    ) -> &'static crate::common::Reg<self::CaptimStatusReg_SPEC, crate::common::RW> {
174        unsafe {
175            crate::common::Reg::<self::CaptimStatusReg_SPEC, crate::common::RW>::from_ptr(
176                self._svd2pac_as_ptr().add(4usize),
177            )
178        }
179    }
180
181    #[doc = "Capture Timer counter value"]
182    #[inline(always)]
183    pub const fn captim_timer_val_reg(
184        &self,
185    ) -> &'static crate::common::Reg<self::CaptimTimerValReg_SPEC, crate::common::RW> {
186        unsafe {
187            crate::common::Reg::<self::CaptimTimerValReg_SPEC, crate::common::RW>::from_ptr(
188                self._svd2pac_as_ptr().add(2usize),
189            )
190        }
191    }
192}
193#[doc(hidden)]
194#[derive(Copy, Clone, Eq, PartialEq)]
195pub struct CaptimCaptureGpio1Reg_SPEC;
196impl crate::sealed::RegSpec for CaptimCaptureGpio1Reg_SPEC {
197    type DataType = u16;
198}
199
200#[doc = "Capture Timer value for event on GPIO1"]
201pub type CaptimCaptureGpio1Reg = crate::RegValueT<CaptimCaptureGpio1Reg_SPEC>;
202
203impl CaptimCaptureGpio1Reg {
204    #[doc = "Gives the Capture time for event on GPIO1"]
205    #[inline(always)]
206    pub fn captim_capture_gpio1(
207        self,
208    ) -> crate::common::RegisterField<
209        0,
210        0xffff,
211        1,
212        0,
213        u16,
214        u16,
215        CaptimCaptureGpio1Reg_SPEC,
216        crate::common::R,
217    > {
218        crate::common::RegisterField::<
219            0,
220            0xffff,
221            1,
222            0,
223            u16,
224            u16,
225            CaptimCaptureGpio1Reg_SPEC,
226            crate::common::R,
227        >::from_register(self, 0)
228    }
229}
230impl ::core::default::Default for CaptimCaptureGpio1Reg {
231    #[inline(always)]
232    fn default() -> CaptimCaptureGpio1Reg {
233        <crate::RegValueT<CaptimCaptureGpio1Reg_SPEC> as RegisterValue<_>>::new(0)
234    }
235}
236
237#[doc(hidden)]
238#[derive(Copy, Clone, Eq, PartialEq)]
239pub struct CaptimCaptureGpio2Reg_SPEC;
240impl crate::sealed::RegSpec for CaptimCaptureGpio2Reg_SPEC {
241    type DataType = u16;
242}
243
244#[doc = "Capture Timer value for event on GPIO2"]
245pub type CaptimCaptureGpio2Reg = crate::RegValueT<CaptimCaptureGpio2Reg_SPEC>;
246
247impl CaptimCaptureGpio2Reg {
248    #[doc = "Gives the Capture time for event on GPIO2"]
249    #[inline(always)]
250    pub fn captim_capture_gpio2(
251        self,
252    ) -> crate::common::RegisterField<
253        0,
254        0xffff,
255        1,
256        0,
257        u16,
258        u16,
259        CaptimCaptureGpio2Reg_SPEC,
260        crate::common::R,
261    > {
262        crate::common::RegisterField::<
263            0,
264            0xffff,
265            1,
266            0,
267            u16,
268            u16,
269            CaptimCaptureGpio2Reg_SPEC,
270            crate::common::R,
271        >::from_register(self, 0)
272    }
273}
274impl ::core::default::Default for CaptimCaptureGpio2Reg {
275    #[inline(always)]
276    fn default() -> CaptimCaptureGpio2Reg {
277        <crate::RegValueT<CaptimCaptureGpio2Reg_SPEC> as RegisterValue<_>>::new(0)
278    }
279}
280
281#[doc(hidden)]
282#[derive(Copy, Clone, Eq, PartialEq)]
283pub struct CaptimCtrlReg_SPEC;
284impl crate::sealed::RegSpec for CaptimCtrlReg_SPEC {
285    type DataType = u16;
286}
287
288#[doc = "Capture Timer control register"]
289pub type CaptimCtrlReg = crate::RegValueT<CaptimCtrlReg_SPEC>;
290
291impl CaptimCtrlReg {
292    #[doc = "\'1\' When Capture Timer use the system clock else use the clock 32KHz"]
293    #[inline(always)]
294    pub fn captim_sys_clk_en(
295        self,
296    ) -> crate::common::RegisterFieldBool<7, 1, 0, CaptimCtrlReg_SPEC, crate::common::RW> {
297        crate::common::RegisterFieldBool::<7,1,0,CaptimCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
298    }
299
300    #[doc = "Only when timer counts up, if it is \'1\' timer does not zero when reaches to reload value. it is zero only when it has the max value."]
301    #[inline(always)]
302    pub fn captim_free_run_mode_en(
303        self,
304    ) -> crate::common::RegisterFieldBool<6, 1, 0, CaptimCtrlReg_SPEC, crate::common::RW> {
305        crate::common::RegisterFieldBool::<6,1,0,CaptimCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
306    }
307
308    #[doc = "\'1\' When Capture timer IRQ unmask, \'0\' masked"]
309    #[inline(always)]
310    pub fn captim_irq_en(
311        self,
312    ) -> crate::common::RegisterFieldBool<5, 1, 0, CaptimCtrlReg_SPEC, crate::common::RW> {
313        crate::common::RegisterFieldBool::<5,1,0,CaptimCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
314    }
315
316    #[doc = "\'1\' When Input1 event type is falling edge, \'0\' rising edge"]
317    #[inline(always)]
318    pub fn captim_in2_event_fall_en(
319        self,
320    ) -> crate::common::RegisterFieldBool<4, 1, 0, CaptimCtrlReg_SPEC, crate::common::RW> {
321        crate::common::RegisterFieldBool::<4,1,0,CaptimCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
322    }
323
324    #[doc = "\'1\' When Input2 event type is falling edge, \'0\' rising edge"]
325    #[inline(always)]
326    pub fn captim_in1_event_fall_en(
327        self,
328    ) -> crate::common::RegisterFieldBool<3, 1, 0, CaptimCtrlReg_SPEC, crate::common::RW> {
329        crate::common::RegisterFieldBool::<3,1,0,CaptimCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
330    }
331
332    #[doc = "\'1\' when timer counts down, \'0\' count up"]
333    #[inline(always)]
334    pub fn captim_count_down_en(
335        self,
336    ) -> crate::common::RegisterFieldBool<2, 1, 0, CaptimCtrlReg_SPEC, crate::common::RW> {
337        crate::common::RegisterFieldBool::<2,1,0,CaptimCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
338    }
339
340    #[doc = "\'1\' Capture Timer in OneShot mode, \'0\' Capture/Timer mode"]
341    #[inline(always)]
342    pub fn captim_oneshot_mode_en(
343        self,
344    ) -> crate::common::RegisterFieldBool<1, 1, 0, CaptimCtrlReg_SPEC, crate::common::RW> {
345        crate::common::RegisterFieldBool::<1,1,0,CaptimCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
346    }
347
348    #[doc = "\'1\' Capture Timer enabled, else disabled"]
349    #[inline(always)]
350    pub fn captim_en(
351        self,
352    ) -> crate::common::RegisterFieldBool<0, 1, 0, CaptimCtrlReg_SPEC, crate::common::RW> {
353        crate::common::RegisterFieldBool::<0,1,0,CaptimCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
354    }
355}
356impl ::core::default::Default for CaptimCtrlReg {
357    #[inline(always)]
358    fn default() -> CaptimCtrlReg {
359        <crate::RegValueT<CaptimCtrlReg_SPEC> as RegisterValue<_>>::new(0)
360    }
361}
362
363#[doc(hidden)]
364#[derive(Copy, Clone, Eq, PartialEq)]
365pub struct CaptimGpio1ConfReg_SPEC;
366impl crate::sealed::RegSpec for CaptimGpio1ConfReg_SPEC {
367    type DataType = u16;
368}
369
370#[doc = "Capture Timer gpio1 selection"]
371pub type CaptimGpio1ConfReg = crate::RegValueT<CaptimGpio1ConfReg_SPEC>;
372
373impl CaptimGpio1ConfReg {
374    #[doc = "Select one of the 37 GPIOs as IN1, Valid value 0-37. 1 for P00 .. 37 for P47. When 0 Disable input"]
375    #[inline(always)]
376    pub fn captim_gpio1_conf(
377        self,
378    ) -> crate::common::RegisterField<
379        0,
380        0x3f,
381        1,
382        0,
383        u8,
384        u8,
385        CaptimGpio1ConfReg_SPEC,
386        crate::common::RW,
387    > {
388        crate::common::RegisterField::<
389            0,
390            0x3f,
391            1,
392            0,
393            u8,
394            u8,
395            CaptimGpio1ConfReg_SPEC,
396            crate::common::RW,
397        >::from_register(self, 0)
398    }
399}
400impl ::core::default::Default for CaptimGpio1ConfReg {
401    #[inline(always)]
402    fn default() -> CaptimGpio1ConfReg {
403        <crate::RegValueT<CaptimGpio1ConfReg_SPEC> as RegisterValue<_>>::new(0)
404    }
405}
406
407#[doc(hidden)]
408#[derive(Copy, Clone, Eq, PartialEq)]
409pub struct CaptimGpio2ConfReg_SPEC;
410impl crate::sealed::RegSpec for CaptimGpio2ConfReg_SPEC {
411    type DataType = u16;
412}
413
414#[doc = "Capture Timer gpio2 selection"]
415pub type CaptimGpio2ConfReg = crate::RegValueT<CaptimGpio2ConfReg_SPEC>;
416
417impl CaptimGpio2ConfReg {
418    #[doc = "Select one of the 37 GPIOs as IN2, Valid value 0-37. 1 for P00 .. 37 for P47. When 0 Disable input"]
419    #[inline(always)]
420    pub fn captim_gpio2_conf(
421        self,
422    ) -> crate::common::RegisterField<
423        0,
424        0x3f,
425        1,
426        0,
427        u8,
428        u8,
429        CaptimGpio2ConfReg_SPEC,
430        crate::common::RW,
431    > {
432        crate::common::RegisterField::<
433            0,
434            0x3f,
435            1,
436            0,
437            u8,
438            u8,
439            CaptimGpio2ConfReg_SPEC,
440            crate::common::RW,
441        >::from_register(self, 0)
442    }
443}
444impl ::core::default::Default for CaptimGpio2ConfReg {
445    #[inline(always)]
446    fn default() -> CaptimGpio2ConfReg {
447        <crate::RegValueT<CaptimGpio2ConfReg_SPEC> as RegisterValue<_>>::new(0)
448    }
449}
450
451#[doc(hidden)]
452#[derive(Copy, Clone, Eq, PartialEq)]
453pub struct CaptimPrescalerReg_SPEC;
454impl crate::sealed::RegSpec for CaptimPrescalerReg_SPEC {
455    type DataType = u16;
456}
457
458#[doc = "Capture Timer prescaler value"]
459pub type CaptimPrescalerReg = crate::RegValueT<CaptimPrescalerReg_SPEC>;
460
461impl CaptimPrescalerReg {
462    #[doc = "Define the timer count frequncy. Freq = Freq_clock / (value+1)"]
463    #[inline(always)]
464    pub fn captim_prescaler(
465        self,
466    ) -> crate::common::RegisterField<
467        0,
468        0xffff,
469        1,
470        0,
471        u16,
472        u16,
473        CaptimPrescalerReg_SPEC,
474        crate::common::RW,
475    > {
476        crate::common::RegisterField::<
477            0,
478            0xffff,
479            1,
480            0,
481            u16,
482            u16,
483            CaptimPrescalerReg_SPEC,
484            crate::common::RW,
485        >::from_register(self, 0)
486    }
487}
488impl ::core::default::Default for CaptimPrescalerReg {
489    #[inline(always)]
490    fn default() -> CaptimPrescalerReg {
491        <crate::RegValueT<CaptimPrescalerReg_SPEC> as RegisterValue<_>>::new(0)
492    }
493}
494
495#[doc(hidden)]
496#[derive(Copy, Clone, Eq, PartialEq)]
497pub struct CaptimPrescalerValReg_SPEC;
498impl crate::sealed::RegSpec for CaptimPrescalerValReg_SPEC {
499    type DataType = u16;
500}
501
502#[doc = "Capture Timer interrupt status register"]
503pub type CaptimPrescalerValReg = crate::RegValueT<CaptimPrescalerValReg_SPEC>;
504
505impl CaptimPrescalerValReg {
506    #[doc = "Gives the current prescaler value"]
507    #[inline(always)]
508    pub fn captim_prescaler_val(
509        self,
510    ) -> crate::common::RegisterField<
511        0,
512        0xffff,
513        1,
514        0,
515        u16,
516        u16,
517        CaptimPrescalerValReg_SPEC,
518        crate::common::R,
519    > {
520        crate::common::RegisterField::<
521            0,
522            0xffff,
523            1,
524            0,
525            u16,
526            u16,
527            CaptimPrescalerValReg_SPEC,
528            crate::common::R,
529        >::from_register(self, 0)
530    }
531}
532impl ::core::default::Default for CaptimPrescalerValReg {
533    #[inline(always)]
534    fn default() -> CaptimPrescalerValReg {
535        <crate::RegValueT<CaptimPrescalerValReg_SPEC> as RegisterValue<_>>::new(0)
536    }
537}
538
539#[doc(hidden)]
540#[derive(Copy, Clone, Eq, PartialEq)]
541pub struct CaptimPwmDcReg_SPEC;
542impl crate::sealed::RegSpec for CaptimPwmDcReg_SPEC {
543    type DataType = u16;
544}
545
546#[doc = "Capture Timer pwm dc register"]
547pub type CaptimPwmDcReg = crate::RegValueT<CaptimPwmDcReg_SPEC>;
548
549impl CaptimPwmDcReg {
550    #[doc = "Define the PWM duty cyucle = pwm_dc / ( pwm_freq+1)"]
551    #[inline(always)]
552    pub fn captim_pwm_dc(
553        self,
554    ) -> crate::common::RegisterField<
555        0,
556        0xffff,
557        1,
558        0,
559        u16,
560        u16,
561        CaptimPwmDcReg_SPEC,
562        crate::common::RW,
563    > {
564        crate::common::RegisterField::<
565            0,
566            0xffff,
567            1,
568            0,
569            u16,
570            u16,
571            CaptimPwmDcReg_SPEC,
572            crate::common::RW,
573        >::from_register(self, 0)
574    }
575}
576impl ::core::default::Default for CaptimPwmDcReg {
577    #[inline(always)]
578    fn default() -> CaptimPwmDcReg {
579        <crate::RegValueT<CaptimPwmDcReg_SPEC> as RegisterValue<_>>::new(0)
580    }
581}
582
583#[doc(hidden)]
584#[derive(Copy, Clone, Eq, PartialEq)]
585pub struct CaptimPwmFreqReg_SPEC;
586impl crate::sealed::RegSpec for CaptimPwmFreqReg_SPEC {
587    type DataType = u16;
588}
589
590#[doc = "Capture Timer pwm frequency register. PWM5 period is defined by the reference clock frequency multiplied by this value."]
591pub type CaptimPwmFreqReg = crate::RegValueT<CaptimPwmFreqReg_SPEC>;
592
593impl CaptimPwmFreqReg {
594    #[doc = "Define the PWM frequency. = prescaler frequency / (value+1)"]
595    #[inline(always)]
596    pub fn captim_pwm_freq(
597        self,
598    ) -> crate::common::RegisterField<
599        0,
600        0xffff,
601        1,
602        0,
603        u16,
604        u16,
605        CaptimPwmFreqReg_SPEC,
606        crate::common::RW,
607    > {
608        crate::common::RegisterField::<
609            0,
610            0xffff,
611            1,
612            0,
613            u16,
614            u16,
615            CaptimPwmFreqReg_SPEC,
616            crate::common::RW,
617        >::from_register(self, 0)
618    }
619}
620impl ::core::default::Default for CaptimPwmFreqReg {
621    #[inline(always)]
622    fn default() -> CaptimPwmFreqReg {
623        <crate::RegValueT<CaptimPwmFreqReg_SPEC> as RegisterValue<_>>::new(0)
624    }
625}
626
627#[doc(hidden)]
628#[derive(Copy, Clone, Eq, PartialEq)]
629pub struct CaptimReloadReg_SPEC;
630impl crate::sealed::RegSpec for CaptimReloadReg_SPEC {
631    type DataType = u16;
632}
633
634#[doc = "Capture Timer reload value and Delay in shot mode"]
635pub type CaptimReloadReg = crate::RegValueT<CaptimReloadReg_SPEC>;
636
637impl CaptimReloadReg {
638    #[doc = "Reload or max value in timer mode, Delay phase duration in oneshot mode. Actual delay is the register value plus synchronization time (3 clock cycles)"]
639    #[inline(always)]
640    pub fn captim_reload(
641        self,
642    ) -> crate::common::RegisterField<
643        0,
644        0xffff,
645        1,
646        0,
647        u16,
648        u16,
649        CaptimReloadReg_SPEC,
650        crate::common::RW,
651    > {
652        crate::common::RegisterField::<
653            0,
654            0xffff,
655            1,
656            0,
657            u16,
658            u16,
659            CaptimReloadReg_SPEC,
660            crate::common::RW,
661        >::from_register(self, 0)
662    }
663}
664impl ::core::default::Default for CaptimReloadReg {
665    #[inline(always)]
666    fn default() -> CaptimReloadReg {
667        <crate::RegValueT<CaptimReloadReg_SPEC> as RegisterValue<_>>::new(0)
668    }
669}
670
671#[doc(hidden)]
672#[derive(Copy, Clone, Eq, PartialEq)]
673pub struct CaptimShotwidthReg_SPEC;
674impl crate::sealed::RegSpec for CaptimShotwidthReg_SPEC {
675    type DataType = u16;
676}
677
678#[doc = "Capture Timer Shot duration in shot mode"]
679pub type CaptimShotwidthReg = crate::RegValueT<CaptimShotwidthReg_SPEC>;
680
681impl CaptimShotwidthReg {
682    #[doc = "Shot phase duration in oneshot mode"]
683    #[inline(always)]
684    pub fn captim_shotwidth(
685        self,
686    ) -> crate::common::RegisterField<
687        0,
688        0xffff,
689        1,
690        0,
691        u16,
692        u16,
693        CaptimShotwidthReg_SPEC,
694        crate::common::RW,
695    > {
696        crate::common::RegisterField::<
697            0,
698            0xffff,
699            1,
700            0,
701            u16,
702            u16,
703            CaptimShotwidthReg_SPEC,
704            crate::common::RW,
705        >::from_register(self, 0)
706    }
707}
708impl ::core::default::Default for CaptimShotwidthReg {
709    #[inline(always)]
710    fn default() -> CaptimShotwidthReg {
711        <crate::RegValueT<CaptimShotwidthReg_SPEC> as RegisterValue<_>>::new(0)
712    }
713}
714
715#[doc(hidden)]
716#[derive(Copy, Clone, Eq, PartialEq)]
717pub struct CaptimStatusReg_SPEC;
718impl crate::sealed::RegSpec for CaptimStatusReg_SPEC {
719    type DataType = u16;
720}
721
722#[doc = "Capture Timer status register"]
723pub type CaptimStatusReg = crate::RegValueT<CaptimStatusReg_SPEC>;
724
725impl CaptimStatusReg {
726    #[doc = "0 : Wait for event, 1 : Delay phase, 2 : Start Shot, 3 : Shot phase"]
727    #[inline(always)]
728    pub fn captim_oneshot_phase(
729        self,
730    ) -> crate::common::RegisterField<2, 0x3, 1, 0, u8, u8, CaptimStatusReg_SPEC, crate::common::R>
731    {
732        crate::common::RegisterField::<2,0x3,1,0,u8,u8,CaptimStatusReg_SPEC,crate::common::R>::from_register(self,0)
733    }
734
735    #[doc = "Gives the logic level of the IN1"]
736    #[inline(always)]
737    pub fn captim_in2_state(
738        self,
739    ) -> crate::common::RegisterFieldBool<1, 1, 0, CaptimStatusReg_SPEC, crate::common::R> {
740        crate::common::RegisterFieldBool::<1,1,0,CaptimStatusReg_SPEC,crate::common::R>::from_register(self,0)
741    }
742
743    #[doc = "Gives the logic level of the IN2"]
744    #[inline(always)]
745    pub fn captim_in1_state(
746        self,
747    ) -> crate::common::RegisterFieldBool<0, 1, 0, CaptimStatusReg_SPEC, crate::common::R> {
748        crate::common::RegisterFieldBool::<0,1,0,CaptimStatusReg_SPEC,crate::common::R>::from_register(self,0)
749    }
750}
751impl ::core::default::Default for CaptimStatusReg {
752    #[inline(always)]
753    fn default() -> CaptimStatusReg {
754        <crate::RegValueT<CaptimStatusReg_SPEC> as RegisterValue<_>>::new(0)
755    }
756}
757
758#[doc(hidden)]
759#[derive(Copy, Clone, Eq, PartialEq)]
760pub struct CaptimTimerValReg_SPEC;
761impl crate::sealed::RegSpec for CaptimTimerValReg_SPEC {
762    type DataType = u16;
763}
764
765#[doc = "Capture Timer counter value"]
766pub type CaptimTimerValReg = crate::RegValueT<CaptimTimerValReg_SPEC>;
767
768impl CaptimTimerValReg {
769    #[doc = "Gives the current timer value"]
770    #[inline(always)]
771    pub fn captim_timer_value(
772        self,
773    ) -> crate::common::RegisterField<
774        0,
775        0xffff,
776        1,
777        0,
778        u16,
779        u16,
780        CaptimTimerValReg_SPEC,
781        crate::common::R,
782    > {
783        crate::common::RegisterField::<
784            0,
785            0xffff,
786            1,
787            0,
788            u16,
789            u16,
790            CaptimTimerValReg_SPEC,
791            crate::common::R,
792        >::from_register(self, 0)
793    }
794}
795impl ::core::default::Default for CaptimTimerValReg {
796    #[inline(always)]
797    fn default() -> CaptimTimerValReg {
798        <crate::RegValueT<CaptimTimerValReg_SPEC> as RegisterValue<_>>::new(0)
799    }
800}