da14682_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:10 +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 high value for event on GPIO01"]
62    #[inline(always)]
63    pub const fn captim_capture_high_gpio1_reg(
64        &self,
65    ) -> &'static crate::common::Reg<self::CaptimCaptureHighGpio1Reg_SPEC, crate::common::RW> {
66        unsafe {
67            crate::common::Reg::<self::CaptimCaptureHighGpio1Reg_SPEC, crate::common::RW>::from_ptr(
68                self._svd2pac_as_ptr().add(30usize),
69            )
70        }
71    }
72
73    #[doc = "Capture Timer high value for event on GPIO02"]
74    #[inline(always)]
75    pub const fn captim_capture_high_gpio2_reg(
76        &self,
77    ) -> &'static crate::common::Reg<self::CaptimCaptureHighGpio2Reg_SPEC, crate::common::RW> {
78        unsafe {
79            crate::common::Reg::<self::CaptimCaptureHighGpio2Reg_SPEC, crate::common::RW>::from_ptr(
80                self._svd2pac_as_ptr().add(32usize),
81            )
82        }
83    }
84
85    #[doc = "Capture Timer control register"]
86    #[inline(always)]
87    pub const fn captim_ctrl_reg(
88        &self,
89    ) -> &'static crate::common::Reg<self::CaptimCtrlReg_SPEC, crate::common::RW> {
90        unsafe {
91            crate::common::Reg::<self::CaptimCtrlReg_SPEC, crate::common::RW>::from_ptr(
92                self._svd2pac_as_ptr().add(0usize),
93            )
94        }
95    }
96
97    #[doc = "Capture Timer gpio1 selection"]
98    #[inline(always)]
99    pub const fn captim_gpio1_conf_reg(
100        &self,
101    ) -> &'static crate::common::Reg<self::CaptimGpio1ConfReg_SPEC, crate::common::RW> {
102        unsafe {
103            crate::common::Reg::<self::CaptimGpio1ConfReg_SPEC, crate::common::RW>::from_ptr(
104                self._svd2pac_as_ptr().add(6usize),
105            )
106        }
107    }
108
109    #[doc = "Capture Timer gpio2 selection"]
110    #[inline(always)]
111    pub const fn captim_gpio2_conf_reg(
112        &self,
113    ) -> &'static crate::common::Reg<self::CaptimGpio2ConfReg_SPEC, crate::common::RW> {
114        unsafe {
115            crate::common::Reg::<self::CaptimGpio2ConfReg_SPEC, crate::common::RW>::from_ptr(
116                self._svd2pac_as_ptr().add(8usize),
117            )
118        }
119    }
120
121    #[doc = "Capture Timer prescaler value"]
122    #[inline(always)]
123    pub const fn captim_prescaler_reg(
124        &self,
125    ) -> &'static crate::common::Reg<self::CaptimPrescalerReg_SPEC, crate::common::RW> {
126        unsafe {
127            crate::common::Reg::<self::CaptimPrescalerReg_SPEC, crate::common::RW>::from_ptr(
128                self._svd2pac_as_ptr().add(14usize),
129            )
130        }
131    }
132
133    #[doc = "Capture Timer interrupt status register"]
134    #[inline(always)]
135    pub const fn captim_prescaler_val_reg(
136        &self,
137    ) -> &'static crate::common::Reg<self::CaptimPrescalerValReg_SPEC, crate::common::RW> {
138        unsafe {
139            crate::common::Reg::<self::CaptimPrescalerValReg_SPEC, crate::common::RW>::from_ptr(
140                self._svd2pac_as_ptr().add(20usize),
141            )
142        }
143    }
144
145    #[doc = "Capture Timer pwm dc register"]
146    #[inline(always)]
147    pub const fn captim_pwm_dc_reg(
148        &self,
149    ) -> &'static crate::common::Reg<self::CaptimPwmDcReg_SPEC, crate::common::RW> {
150        unsafe {
151            crate::common::Reg::<self::CaptimPwmDcReg_SPEC, crate::common::RW>::from_ptr(
152                self._svd2pac_as_ptr().add(24usize),
153            )
154        }
155    }
156
157    #[doc = "Capture Timer pwm frequency register"]
158    #[inline(always)]
159    pub const fn captim_pwm_freq_reg(
160        &self,
161    ) -> &'static crate::common::Reg<self::CaptimPwmFreqReg_SPEC, crate::common::RW> {
162        unsafe {
163            crate::common::Reg::<self::CaptimPwmFreqReg_SPEC, crate::common::RW>::from_ptr(
164                self._svd2pac_as_ptr().add(22usize),
165            )
166        }
167    }
168
169    #[doc = "Capture Timer reload high value and Delay in shot mode"]
170    #[inline(always)]
171    pub const fn captim_reload_high_reg(
172        &self,
173    ) -> &'static crate::common::Reg<self::CaptimReloadHighReg_SPEC, crate::common::RW> {
174        unsafe {
175            crate::common::Reg::<self::CaptimReloadHighReg_SPEC, crate::common::RW>::from_ptr(
176                self._svd2pac_as_ptr().add(28usize),
177            )
178        }
179    }
180
181    #[doc = "Capture Timer reload value and Delay in shot mode"]
182    #[inline(always)]
183    pub const fn captim_reload_reg(
184        &self,
185    ) -> &'static crate::common::Reg<self::CaptimReloadReg_SPEC, crate::common::RW> {
186        unsafe {
187            crate::common::Reg::<self::CaptimReloadReg_SPEC, crate::common::RW>::from_ptr(
188                self._svd2pac_as_ptr().add(10usize),
189            )
190        }
191    }
192
193    #[doc = "Capture Timer Shot high duration in shot mode"]
194    #[inline(always)]
195    pub const fn captim_shotwidth_high_reg(
196        &self,
197    ) -> &'static crate::common::Reg<self::CaptimShotwidthHighReg_SPEC, crate::common::RW> {
198        unsafe {
199            crate::common::Reg::<self::CaptimShotwidthHighReg_SPEC, crate::common::RW>::from_ptr(
200                self._svd2pac_as_ptr().add(34usize),
201            )
202        }
203    }
204
205    #[doc = "Capture Timer Shot duration in shot mode"]
206    #[inline(always)]
207    pub const fn captim_shotwidth_reg(
208        &self,
209    ) -> &'static crate::common::Reg<self::CaptimShotwidthReg_SPEC, crate::common::RW> {
210        unsafe {
211            crate::common::Reg::<self::CaptimShotwidthReg_SPEC, crate::common::RW>::from_ptr(
212                self._svd2pac_as_ptr().add(12usize),
213            )
214        }
215    }
216
217    #[doc = "Capture Timer status register"]
218    #[inline(always)]
219    pub const fn captim_status_reg(
220        &self,
221    ) -> &'static crate::common::Reg<self::CaptimStatusReg_SPEC, crate::common::RW> {
222        unsafe {
223            crate::common::Reg::<self::CaptimStatusReg_SPEC, crate::common::RW>::from_ptr(
224                self._svd2pac_as_ptr().add(4usize),
225            )
226        }
227    }
228
229    #[doc = "Capture Timer counter high value"]
230    #[inline(always)]
231    pub const fn captim_timer_hval_reg(
232        &self,
233    ) -> &'static crate::common::Reg<self::CaptimTimerHvalReg_SPEC, crate::common::RW> {
234        unsafe {
235            crate::common::Reg::<self::CaptimTimerHvalReg_SPEC, crate::common::RW>::from_ptr(
236                self._svd2pac_as_ptr().add(26usize),
237            )
238        }
239    }
240
241    #[doc = "Capture Timer counter value"]
242    #[inline(always)]
243    pub const fn captim_timer_val_reg(
244        &self,
245    ) -> &'static crate::common::Reg<self::CaptimTimerValReg_SPEC, crate::common::RW> {
246        unsafe {
247            crate::common::Reg::<self::CaptimTimerValReg_SPEC, crate::common::RW>::from_ptr(
248                self._svd2pac_as_ptr().add(2usize),
249            )
250        }
251    }
252}
253#[doc(hidden)]
254#[derive(Copy, Clone, Eq, PartialEq)]
255pub struct CaptimCaptureGpio1Reg_SPEC;
256impl crate::sealed::RegSpec for CaptimCaptureGpio1Reg_SPEC {
257    type DataType = u16;
258}
259
260#[doc = "Capture Timer value for event on GPIO1"]
261pub type CaptimCaptureGpio1Reg = crate::RegValueT<CaptimCaptureGpio1Reg_SPEC>;
262
263impl CaptimCaptureGpio1Reg {
264    #[doc = "Gives the Capture time for event on GPIO1"]
265    #[inline(always)]
266    pub fn captim_capture_gpio1(
267        self,
268    ) -> crate::common::RegisterField<
269        0,
270        0xffff,
271        1,
272        0,
273        u16,
274        u16,
275        CaptimCaptureGpio1Reg_SPEC,
276        crate::common::R,
277    > {
278        crate::common::RegisterField::<
279            0,
280            0xffff,
281            1,
282            0,
283            u16,
284            u16,
285            CaptimCaptureGpio1Reg_SPEC,
286            crate::common::R,
287        >::from_register(self, 0)
288    }
289}
290impl ::core::default::Default for CaptimCaptureGpio1Reg {
291    #[inline(always)]
292    fn default() -> CaptimCaptureGpio1Reg {
293        <crate::RegValueT<CaptimCaptureGpio1Reg_SPEC> as RegisterValue<_>>::new(0)
294    }
295}
296
297#[doc(hidden)]
298#[derive(Copy, Clone, Eq, PartialEq)]
299pub struct CaptimCaptureGpio2Reg_SPEC;
300impl crate::sealed::RegSpec for CaptimCaptureGpio2Reg_SPEC {
301    type DataType = u16;
302}
303
304#[doc = "Capture Timer value for event on GPIO2"]
305pub type CaptimCaptureGpio2Reg = crate::RegValueT<CaptimCaptureGpio2Reg_SPEC>;
306
307impl CaptimCaptureGpio2Reg {
308    #[doc = "Gives the Capture time for event on GPIO2"]
309    #[inline(always)]
310    pub fn captim_capture_gpio2(
311        self,
312    ) -> crate::common::RegisterField<
313        0,
314        0xffff,
315        1,
316        0,
317        u16,
318        u16,
319        CaptimCaptureGpio2Reg_SPEC,
320        crate::common::R,
321    > {
322        crate::common::RegisterField::<
323            0,
324            0xffff,
325            1,
326            0,
327            u16,
328            u16,
329            CaptimCaptureGpio2Reg_SPEC,
330            crate::common::R,
331        >::from_register(self, 0)
332    }
333}
334impl ::core::default::Default for CaptimCaptureGpio2Reg {
335    #[inline(always)]
336    fn default() -> CaptimCaptureGpio2Reg {
337        <crate::RegValueT<CaptimCaptureGpio2Reg_SPEC> as RegisterValue<_>>::new(0)
338    }
339}
340
341#[doc(hidden)]
342#[derive(Copy, Clone, Eq, PartialEq)]
343pub struct CaptimCaptureHighGpio1Reg_SPEC;
344impl crate::sealed::RegSpec for CaptimCaptureHighGpio1Reg_SPEC {
345    type DataType = u16;
346}
347
348#[doc = "Capture Timer high value for event on GPIO01"]
349pub type CaptimCaptureHighGpio1Reg = crate::RegValueT<CaptimCaptureHighGpio1Reg_SPEC>;
350
351impl CaptimCaptureHighGpio1Reg {
352    #[doc = "Gives the Capture high time for event on GPIO1"]
353    #[inline(always)]
354    pub fn captim_capture_high_gpio1(
355        self,
356    ) -> crate::common::RegisterField<
357        0,
358        0xffff,
359        1,
360        0,
361        u16,
362        u16,
363        CaptimCaptureHighGpio1Reg_SPEC,
364        crate::common::R,
365    > {
366        crate::common::RegisterField::<
367            0,
368            0xffff,
369            1,
370            0,
371            u16,
372            u16,
373            CaptimCaptureHighGpio1Reg_SPEC,
374            crate::common::R,
375        >::from_register(self, 0)
376    }
377}
378impl ::core::default::Default for CaptimCaptureHighGpio1Reg {
379    #[inline(always)]
380    fn default() -> CaptimCaptureHighGpio1Reg {
381        <crate::RegValueT<CaptimCaptureHighGpio1Reg_SPEC> as RegisterValue<_>>::new(0)
382    }
383}
384
385#[doc(hidden)]
386#[derive(Copy, Clone, Eq, PartialEq)]
387pub struct CaptimCaptureHighGpio2Reg_SPEC;
388impl crate::sealed::RegSpec for CaptimCaptureHighGpio2Reg_SPEC {
389    type DataType = u16;
390}
391
392#[doc = "Capture Timer high value for event on GPIO02"]
393pub type CaptimCaptureHighGpio2Reg = crate::RegValueT<CaptimCaptureHighGpio2Reg_SPEC>;
394
395impl CaptimCaptureHighGpio2Reg {
396    #[doc = "Gives the Capture high time for event on GPIO2"]
397    #[inline(always)]
398    pub fn captim_capture_high_gpio2(
399        self,
400    ) -> crate::common::RegisterField<
401        0,
402        0xffff,
403        1,
404        0,
405        u16,
406        u16,
407        CaptimCaptureHighGpio2Reg_SPEC,
408        crate::common::R,
409    > {
410        crate::common::RegisterField::<
411            0,
412            0xffff,
413            1,
414            0,
415            u16,
416            u16,
417            CaptimCaptureHighGpio2Reg_SPEC,
418            crate::common::R,
419        >::from_register(self, 0)
420    }
421}
422impl ::core::default::Default for CaptimCaptureHighGpio2Reg {
423    #[inline(always)]
424    fn default() -> CaptimCaptureHighGpio2Reg {
425        <crate::RegValueT<CaptimCaptureHighGpio2Reg_SPEC> as RegisterValue<_>>::new(0)
426    }
427}
428
429#[doc(hidden)]
430#[derive(Copy, Clone, Eq, PartialEq)]
431pub struct CaptimCtrlReg_SPEC;
432impl crate::sealed::RegSpec for CaptimCtrlReg_SPEC {
433    type DataType = u16;
434}
435
436#[doc = "Capture Timer control register"]
437pub type CaptimCtrlReg = crate::RegValueT<CaptimCtrlReg_SPEC>;
438
439impl CaptimCtrlReg {
440    #[doc = "\'1\' Capture Timer uses the system clock\n\'0\' Capture Timer uses the 32KHz clock"]
441    #[inline(always)]
442    pub fn captim_sys_clk_en(
443        self,
444    ) -> crate::common::RegisterFieldBool<7, 1, 0, CaptimCtrlReg_SPEC, crate::common::RW> {
445        crate::common::RegisterFieldBool::<7,1,0,CaptimCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
446    }
447
448    #[doc = "Valid when timer counts up, if it is \'1\' timer does not zero when reaches to reload value. it becomes zero only when it reaches the max value."]
449    #[inline(always)]
450    pub fn captim_free_run_mode_en(
451        self,
452    ) -> crate::common::RegisterFieldBool<6, 1, 0, CaptimCtrlReg_SPEC, crate::common::RW> {
453        crate::common::RegisterFieldBool::<6,1,0,CaptimCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
454    }
455
456    #[doc = "\'1\' Capture timer IRQ is unmasked, \'0\' masked"]
457    #[inline(always)]
458    pub fn captim_irq_en(
459        self,
460    ) -> crate::common::RegisterFieldBool<5, 1, 0, CaptimCtrlReg_SPEC, crate::common::RW> {
461        crate::common::RegisterFieldBool::<5,1,0,CaptimCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
462    }
463
464    #[doc = "\'1\' input1 event type is falling edge, \'0\' rising edge"]
465    #[inline(always)]
466    pub fn captim_in2_event_fall_en(
467        self,
468    ) -> crate::common::RegisterFieldBool<4, 1, 0, CaptimCtrlReg_SPEC, crate::common::RW> {
469        crate::common::RegisterFieldBool::<4,1,0,CaptimCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
470    }
471
472    #[doc = "\'1\' input2 event type is falling edge, \'0\' rising edge"]
473    #[inline(always)]
474    pub fn captim_in1_event_fall_en(
475        self,
476    ) -> crate::common::RegisterFieldBool<3, 1, 0, CaptimCtrlReg_SPEC, crate::common::RW> {
477        crate::common::RegisterFieldBool::<3,1,0,CaptimCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
478    }
479
480    #[doc = "\'1\' timer counts down, \'0\' count up"]
481    #[inline(always)]
482    pub fn captim_count_down_en(
483        self,
484    ) -> crate::common::RegisterFieldBool<2, 1, 0, CaptimCtrlReg_SPEC, crate::common::RW> {
485        crate::common::RegisterFieldBool::<2,1,0,CaptimCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
486    }
487
488    #[doc = "\'1\' OneShot mode enabled, \'0\' Capture/Timer mode enabled"]
489    #[inline(always)]
490    pub fn captim_oneshot_mode_en(
491        self,
492    ) -> crate::common::RegisterFieldBool<1, 1, 0, CaptimCtrlReg_SPEC, crate::common::RW> {
493        crate::common::RegisterFieldBool::<1,1,0,CaptimCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
494    }
495
496    #[doc = "\'1\' Capture Timer enabled, else disabled"]
497    #[inline(always)]
498    pub fn captim_en(
499        self,
500    ) -> crate::common::RegisterFieldBool<0, 1, 0, CaptimCtrlReg_SPEC, crate::common::RW> {
501        crate::common::RegisterFieldBool::<0,1,0,CaptimCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
502    }
503}
504impl ::core::default::Default for CaptimCtrlReg {
505    #[inline(always)]
506    fn default() -> CaptimCtrlReg {
507        <crate::RegValueT<CaptimCtrlReg_SPEC> as RegisterValue<_>>::new(0)
508    }
509}
510
511#[doc(hidden)]
512#[derive(Copy, Clone, Eq, PartialEq)]
513pub struct CaptimGpio1ConfReg_SPEC;
514impl crate::sealed::RegSpec for CaptimGpio1ConfReg_SPEC {
515    type DataType = u16;
516}
517
518#[doc = "Capture Timer gpio1 selection"]
519pub type CaptimGpio1ConfReg = crate::RegValueT<CaptimGpio1ConfReg_SPEC>;
520
521impl CaptimGpio1ConfReg {
522    #[doc = "Select one of the 37 GPIOs as IN1, Valid value 0-37. 1 for P00 .. 37 for P47. 0 Disable input"]
523    #[inline(always)]
524    pub fn captim_gpio1_conf(
525        self,
526    ) -> crate::common::RegisterField<
527        0,
528        0x3f,
529        1,
530        0,
531        u8,
532        u8,
533        CaptimGpio1ConfReg_SPEC,
534        crate::common::RW,
535    > {
536        crate::common::RegisterField::<
537            0,
538            0x3f,
539            1,
540            0,
541            u8,
542            u8,
543            CaptimGpio1ConfReg_SPEC,
544            crate::common::RW,
545        >::from_register(self, 0)
546    }
547}
548impl ::core::default::Default for CaptimGpio1ConfReg {
549    #[inline(always)]
550    fn default() -> CaptimGpio1ConfReg {
551        <crate::RegValueT<CaptimGpio1ConfReg_SPEC> as RegisterValue<_>>::new(0)
552    }
553}
554
555#[doc(hidden)]
556#[derive(Copy, Clone, Eq, PartialEq)]
557pub struct CaptimGpio2ConfReg_SPEC;
558impl crate::sealed::RegSpec for CaptimGpio2ConfReg_SPEC {
559    type DataType = u16;
560}
561
562#[doc = "Capture Timer gpio2 selection"]
563pub type CaptimGpio2ConfReg = crate::RegValueT<CaptimGpio2ConfReg_SPEC>;
564
565impl CaptimGpio2ConfReg {
566    #[doc = "Select one of the 37 GPIOs as IN2, Valid value 0-37. 1 for P00 .. 37 for P47. 0 Disable input"]
567    #[inline(always)]
568    pub fn captim_gpio2_conf(
569        self,
570    ) -> crate::common::RegisterField<
571        0,
572        0x3f,
573        1,
574        0,
575        u8,
576        u8,
577        CaptimGpio2ConfReg_SPEC,
578        crate::common::RW,
579    > {
580        crate::common::RegisterField::<
581            0,
582            0x3f,
583            1,
584            0,
585            u8,
586            u8,
587            CaptimGpio2ConfReg_SPEC,
588            crate::common::RW,
589        >::from_register(self, 0)
590    }
591}
592impl ::core::default::Default for CaptimGpio2ConfReg {
593    #[inline(always)]
594    fn default() -> CaptimGpio2ConfReg {
595        <crate::RegValueT<CaptimGpio2ConfReg_SPEC> as RegisterValue<_>>::new(0)
596    }
597}
598
599#[doc(hidden)]
600#[derive(Copy, Clone, Eq, PartialEq)]
601pub struct CaptimPrescalerReg_SPEC;
602impl crate::sealed::RegSpec for CaptimPrescalerReg_SPEC {
603    type DataType = u16;
604}
605
606#[doc = "Capture Timer prescaler value"]
607pub type CaptimPrescalerReg = crate::RegValueT<CaptimPrescalerReg_SPEC>;
608
609impl CaptimPrescalerReg {
610    #[doc = "Defines the timer count frequncy. CLOCK frequency / (CAPTIM_PRESCARLER+1)"]
611    #[inline(always)]
612    pub fn captim_prescaler(
613        self,
614    ) -> crate::common::RegisterField<
615        0,
616        0xffff,
617        1,
618        0,
619        u16,
620        u16,
621        CaptimPrescalerReg_SPEC,
622        crate::common::RW,
623    > {
624        crate::common::RegisterField::<
625            0,
626            0xffff,
627            1,
628            0,
629            u16,
630            u16,
631            CaptimPrescalerReg_SPEC,
632            crate::common::RW,
633        >::from_register(self, 0)
634    }
635}
636impl ::core::default::Default for CaptimPrescalerReg {
637    #[inline(always)]
638    fn default() -> CaptimPrescalerReg {
639        <crate::RegValueT<CaptimPrescalerReg_SPEC> as RegisterValue<_>>::new(0)
640    }
641}
642
643#[doc(hidden)]
644#[derive(Copy, Clone, Eq, PartialEq)]
645pub struct CaptimPrescalerValReg_SPEC;
646impl crate::sealed::RegSpec for CaptimPrescalerValReg_SPEC {
647    type DataType = u16;
648}
649
650#[doc = "Capture Timer interrupt status register"]
651pub type CaptimPrescalerValReg = crate::RegValueT<CaptimPrescalerValReg_SPEC>;
652
653impl CaptimPrescalerValReg {
654    #[doc = "Gives the current prescaler value"]
655    #[inline(always)]
656    pub fn captim_prescaler_val(
657        self,
658    ) -> crate::common::RegisterField<
659        0,
660        0xffff,
661        1,
662        0,
663        u16,
664        u16,
665        CaptimPrescalerValReg_SPEC,
666        crate::common::R,
667    > {
668        crate::common::RegisterField::<
669            0,
670            0xffff,
671            1,
672            0,
673            u16,
674            u16,
675            CaptimPrescalerValReg_SPEC,
676            crate::common::R,
677        >::from_register(self, 0)
678    }
679}
680impl ::core::default::Default for CaptimPrescalerValReg {
681    #[inline(always)]
682    fn default() -> CaptimPrescalerValReg {
683        <crate::RegValueT<CaptimPrescalerValReg_SPEC> as RegisterValue<_>>::new(0)
684    }
685}
686
687#[doc(hidden)]
688#[derive(Copy, Clone, Eq, PartialEq)]
689pub struct CaptimPwmDcReg_SPEC;
690impl crate::sealed::RegSpec for CaptimPwmDcReg_SPEC {
691    type DataType = u16;
692}
693
694#[doc = "Capture Timer pwm dc register"]
695pub type CaptimPwmDcReg = crate::RegValueT<CaptimPwmDcReg_SPEC>;
696
697impl CaptimPwmDcReg {
698    #[doc = "Defines the PWM duty cycle. CAPTIM_PWM_DC / ( CAPTIM_PWM_FREQ+1)"]
699    #[inline(always)]
700    pub fn captim_pwm_dc(
701        self,
702    ) -> crate::common::RegisterField<
703        0,
704        0xffff,
705        1,
706        0,
707        u16,
708        u16,
709        CaptimPwmDcReg_SPEC,
710        crate::common::RW,
711    > {
712        crate::common::RegisterField::<
713            0,
714            0xffff,
715            1,
716            0,
717            u16,
718            u16,
719            CaptimPwmDcReg_SPEC,
720            crate::common::RW,
721        >::from_register(self, 0)
722    }
723}
724impl ::core::default::Default for CaptimPwmDcReg {
725    #[inline(always)]
726    fn default() -> CaptimPwmDcReg {
727        <crate::RegValueT<CaptimPwmDcReg_SPEC> as RegisterValue<_>>::new(0)
728    }
729}
730
731#[doc(hidden)]
732#[derive(Copy, Clone, Eq, PartialEq)]
733pub struct CaptimPwmFreqReg_SPEC;
734impl crate::sealed::RegSpec for CaptimPwmFreqReg_SPEC {
735    type DataType = u16;
736}
737
738#[doc = "Capture Timer pwm frequency register"]
739pub type CaptimPwmFreqReg = crate::RegValueT<CaptimPwmFreqReg_SPEC>;
740
741impl CaptimPwmFreqReg {
742    #[doc = "Defines the PWM frequency. Timer clock frequency / (CAPTIM_PWM_FREQ+1)"]
743    #[inline(always)]
744    pub fn captim_pwm_freq(
745        self,
746    ) -> crate::common::RegisterField<
747        0,
748        0xffff,
749        1,
750        0,
751        u16,
752        u16,
753        CaptimPwmFreqReg_SPEC,
754        crate::common::RW,
755    > {
756        crate::common::RegisterField::<
757            0,
758            0xffff,
759            1,
760            0,
761            u16,
762            u16,
763            CaptimPwmFreqReg_SPEC,
764            crate::common::RW,
765        >::from_register(self, 0)
766    }
767}
768impl ::core::default::Default for CaptimPwmFreqReg {
769    #[inline(always)]
770    fn default() -> CaptimPwmFreqReg {
771        <crate::RegValueT<CaptimPwmFreqReg_SPEC> as RegisterValue<_>>::new(0)
772    }
773}
774
775#[doc(hidden)]
776#[derive(Copy, Clone, Eq, PartialEq)]
777pub struct CaptimReloadHighReg_SPEC;
778impl crate::sealed::RegSpec for CaptimReloadHighReg_SPEC {
779    type DataType = u16;
780}
781
782#[doc = "Capture Timer reload high value and Delay in shot mode"]
783pub type CaptimReloadHighReg = crate::RegValueT<CaptimReloadHighReg_SPEC>;
784
785impl CaptimReloadHighReg {
786    #[doc = "Reload high value or max high value in timer mode, Delay phase duration in oneshot mode. Actual delay is the register value plus synchronization time (3 clock cycles)"]
787    #[inline(always)]
788    pub fn captim_reload_high(
789        self,
790    ) -> crate::common::RegisterField<
791        0,
792        0xffff,
793        1,
794        0,
795        u16,
796        u16,
797        CaptimReloadHighReg_SPEC,
798        crate::common::RW,
799    > {
800        crate::common::RegisterField::<
801            0,
802            0xffff,
803            1,
804            0,
805            u16,
806            u16,
807            CaptimReloadHighReg_SPEC,
808            crate::common::RW,
809        >::from_register(self, 0)
810    }
811}
812impl ::core::default::Default for CaptimReloadHighReg {
813    #[inline(always)]
814    fn default() -> CaptimReloadHighReg {
815        <crate::RegValueT<CaptimReloadHighReg_SPEC> as RegisterValue<_>>::new(0)
816    }
817}
818
819#[doc(hidden)]
820#[derive(Copy, Clone, Eq, PartialEq)]
821pub struct CaptimReloadReg_SPEC;
822impl crate::sealed::RegSpec for CaptimReloadReg_SPEC {
823    type DataType = u16;
824}
825
826#[doc = "Capture Timer reload value and Delay in shot mode"]
827pub type CaptimReloadReg = crate::RegValueT<CaptimReloadReg_SPEC>;
828
829impl CaptimReloadReg {
830    #[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)"]
831    #[inline(always)]
832    pub fn captim_reload(
833        self,
834    ) -> crate::common::RegisterField<
835        0,
836        0xffff,
837        1,
838        0,
839        u16,
840        u16,
841        CaptimReloadReg_SPEC,
842        crate::common::RW,
843    > {
844        crate::common::RegisterField::<
845            0,
846            0xffff,
847            1,
848            0,
849            u16,
850            u16,
851            CaptimReloadReg_SPEC,
852            crate::common::RW,
853        >::from_register(self, 0)
854    }
855}
856impl ::core::default::Default for CaptimReloadReg {
857    #[inline(always)]
858    fn default() -> CaptimReloadReg {
859        <crate::RegValueT<CaptimReloadReg_SPEC> as RegisterValue<_>>::new(0)
860    }
861}
862
863#[doc(hidden)]
864#[derive(Copy, Clone, Eq, PartialEq)]
865pub struct CaptimShotwidthHighReg_SPEC;
866impl crate::sealed::RegSpec for CaptimShotwidthHighReg_SPEC {
867    type DataType = u16;
868}
869
870#[doc = "Capture Timer Shot high duration in shot mode"]
871pub type CaptimShotwidthHighReg = crate::RegValueT<CaptimShotwidthHighReg_SPEC>;
872
873impl CaptimShotwidthHighReg {
874    #[doc = "Shot phase high duration in oneshot mode"]
875    #[inline(always)]
876    pub fn captim_shotwidth_high(
877        self,
878    ) -> crate::common::RegisterField<
879        0,
880        0xffff,
881        1,
882        0,
883        u16,
884        u16,
885        CaptimShotwidthHighReg_SPEC,
886        crate::common::RW,
887    > {
888        crate::common::RegisterField::<
889            0,
890            0xffff,
891            1,
892            0,
893            u16,
894            u16,
895            CaptimShotwidthHighReg_SPEC,
896            crate::common::RW,
897        >::from_register(self, 0)
898    }
899}
900impl ::core::default::Default for CaptimShotwidthHighReg {
901    #[inline(always)]
902    fn default() -> CaptimShotwidthHighReg {
903        <crate::RegValueT<CaptimShotwidthHighReg_SPEC> as RegisterValue<_>>::new(0)
904    }
905}
906
907#[doc(hidden)]
908#[derive(Copy, Clone, Eq, PartialEq)]
909pub struct CaptimShotwidthReg_SPEC;
910impl crate::sealed::RegSpec for CaptimShotwidthReg_SPEC {
911    type DataType = u16;
912}
913
914#[doc = "Capture Timer Shot duration in shot mode"]
915pub type CaptimShotwidthReg = crate::RegValueT<CaptimShotwidthReg_SPEC>;
916
917impl CaptimShotwidthReg {
918    #[doc = "Shot phase duration in oneshot mode"]
919    #[inline(always)]
920    pub fn captim_shotwidth(
921        self,
922    ) -> crate::common::RegisterField<
923        0,
924        0xffff,
925        1,
926        0,
927        u16,
928        u16,
929        CaptimShotwidthReg_SPEC,
930        crate::common::RW,
931    > {
932        crate::common::RegisterField::<
933            0,
934            0xffff,
935            1,
936            0,
937            u16,
938            u16,
939            CaptimShotwidthReg_SPEC,
940            crate::common::RW,
941        >::from_register(self, 0)
942    }
943}
944impl ::core::default::Default for CaptimShotwidthReg {
945    #[inline(always)]
946    fn default() -> CaptimShotwidthReg {
947        <crate::RegValueT<CaptimShotwidthReg_SPEC> as RegisterValue<_>>::new(0)
948    }
949}
950
951#[doc(hidden)]
952#[derive(Copy, Clone, Eq, PartialEq)]
953pub struct CaptimStatusReg_SPEC;
954impl crate::sealed::RegSpec for CaptimStatusReg_SPEC {
955    type DataType = u16;
956}
957
958#[doc = "Capture Timer status register"]
959pub type CaptimStatusReg = crate::RegValueT<CaptimStatusReg_SPEC>;
960
961impl CaptimStatusReg {
962    #[doc = "0 : Wait for event, 1 : Delay phase, 2 : Start Shot, 3 : Shot phase"]
963    #[inline(always)]
964    pub fn captim_oneshot_phase(
965        self,
966    ) -> crate::common::RegisterField<2, 0x3, 1, 0, u8, u8, CaptimStatusReg_SPEC, crate::common::R>
967    {
968        crate::common::RegisterField::<2,0x3,1,0,u8,u8,CaptimStatusReg_SPEC,crate::common::R>::from_register(self,0)
969    }
970
971    #[doc = "Gives the logic level of the IN1"]
972    #[inline(always)]
973    pub fn captim_in2_state(
974        self,
975    ) -> crate::common::RegisterFieldBool<1, 1, 0, CaptimStatusReg_SPEC, crate::common::R> {
976        crate::common::RegisterFieldBool::<1,1,0,CaptimStatusReg_SPEC,crate::common::R>::from_register(self,0)
977    }
978
979    #[doc = "Gives the logic level of the IN2"]
980    #[inline(always)]
981    pub fn captim_in1_state(
982        self,
983    ) -> crate::common::RegisterFieldBool<0, 1, 0, CaptimStatusReg_SPEC, crate::common::R> {
984        crate::common::RegisterFieldBool::<0,1,0,CaptimStatusReg_SPEC,crate::common::R>::from_register(self,0)
985    }
986}
987impl ::core::default::Default for CaptimStatusReg {
988    #[inline(always)]
989    fn default() -> CaptimStatusReg {
990        <crate::RegValueT<CaptimStatusReg_SPEC> as RegisterValue<_>>::new(0)
991    }
992}
993
994#[doc(hidden)]
995#[derive(Copy, Clone, Eq, PartialEq)]
996pub struct CaptimTimerHvalReg_SPEC;
997impl crate::sealed::RegSpec for CaptimTimerHvalReg_SPEC {
998    type DataType = u16;
999}
1000
1001#[doc = "Capture Timer counter high value"]
1002pub type CaptimTimerHvalReg = crate::RegValueT<CaptimTimerHvalReg_SPEC>;
1003
1004impl CaptimTimerHvalReg {
1005    #[doc = "Gives the current timer high value"]
1006    #[inline(always)]
1007    pub fn captim_timer_hvalue(
1008        self,
1009    ) -> crate::common::RegisterField<
1010        0,
1011        0xffff,
1012        1,
1013        0,
1014        u16,
1015        u16,
1016        CaptimTimerHvalReg_SPEC,
1017        crate::common::R,
1018    > {
1019        crate::common::RegisterField::<
1020            0,
1021            0xffff,
1022            1,
1023            0,
1024            u16,
1025            u16,
1026            CaptimTimerHvalReg_SPEC,
1027            crate::common::R,
1028        >::from_register(self, 0)
1029    }
1030}
1031impl ::core::default::Default for CaptimTimerHvalReg {
1032    #[inline(always)]
1033    fn default() -> CaptimTimerHvalReg {
1034        <crate::RegValueT<CaptimTimerHvalReg_SPEC> as RegisterValue<_>>::new(0)
1035    }
1036}
1037
1038#[doc(hidden)]
1039#[derive(Copy, Clone, Eq, PartialEq)]
1040pub struct CaptimTimerValReg_SPEC;
1041impl crate::sealed::RegSpec for CaptimTimerValReg_SPEC {
1042    type DataType = u16;
1043}
1044
1045#[doc = "Capture Timer counter value"]
1046pub type CaptimTimerValReg = crate::RegValueT<CaptimTimerValReg_SPEC>;
1047
1048impl CaptimTimerValReg {
1049    #[doc = "Gives the current timer value"]
1050    #[inline(always)]
1051    pub fn captim_timer_value(
1052        self,
1053    ) -> crate::common::RegisterField<
1054        0,
1055        0xffff,
1056        1,
1057        0,
1058        u16,
1059        u16,
1060        CaptimTimerValReg_SPEC,
1061        crate::common::R,
1062    > {
1063        crate::common::RegisterField::<
1064            0,
1065            0xffff,
1066            1,
1067            0,
1068            u16,
1069            u16,
1070            CaptimTimerValReg_SPEC,
1071            crate::common::R,
1072        >::from_register(self, 0)
1073    }
1074}
1075impl ::core::default::Default for CaptimTimerValReg {
1076    #[inline(always)]
1077    fn default() -> CaptimTimerValReg {
1078        <crate::RegValueT<CaptimTimerValReg_SPEC> as RegisterValue<_>>::new(0)
1079    }
1080}