xmc4200/eru0/
exicon.rs

1#[doc = "Register `EXICON[%s]` reader"]
2pub type R = crate::R<EXICON_SPEC>;
3#[doc = "Register `EXICON[%s]` writer"]
4pub type W = crate::W<EXICON_SPEC>;
5#[doc = "Output Trigger Pulse Enable for ETLx\n\nValue on reset: 0"]
6#[derive(Clone, Copy, Debug, PartialEq, Eq)]
7pub enum PE_A {
8    #[doc = "0: The trigger pulse generation is disabled"]
9    VALUE1 = 0,
10    #[doc = "1: The trigger pulse generation is enabled"]
11    VALUE2 = 1,
12}
13impl From<PE_A> for bool {
14    #[inline(always)]
15    fn from(variant: PE_A) -> Self {
16        variant as u8 != 0
17    }
18}
19#[doc = "Field `PE` reader - Output Trigger Pulse Enable for ETLx"]
20pub type PE_R = crate::BitReader<PE_A>;
21impl PE_R {
22    #[doc = "Get enumerated values variant"]
23    #[inline(always)]
24    pub const fn variant(&self) -> PE_A {
25        match self.bits {
26            false => PE_A::VALUE1,
27            true => PE_A::VALUE2,
28        }
29    }
30    #[doc = "The trigger pulse generation is disabled"]
31    #[inline(always)]
32    pub fn is_value1(&self) -> bool {
33        *self == PE_A::VALUE1
34    }
35    #[doc = "The trigger pulse generation is enabled"]
36    #[inline(always)]
37    pub fn is_value2(&self) -> bool {
38        *self == PE_A::VALUE2
39    }
40}
41#[doc = "Field `PE` writer - Output Trigger Pulse Enable for ETLx"]
42pub type PE_W<'a, REG> = crate::BitWriter<'a, REG, PE_A>;
43impl<'a, REG> PE_W<'a, REG>
44where
45    REG: crate::Writable + crate::RegisterSpec,
46{
47    #[doc = "The trigger pulse generation is disabled"]
48    #[inline(always)]
49    pub fn value1(self) -> &'a mut crate::W<REG> {
50        self.variant(PE_A::VALUE1)
51    }
52    #[doc = "The trigger pulse generation is enabled"]
53    #[inline(always)]
54    pub fn value2(self) -> &'a mut crate::W<REG> {
55        self.variant(PE_A::VALUE2)
56    }
57}
58#[doc = "Rebuild Level Detection for Status Flag for ETLx\n\nValue on reset: 0"]
59#[derive(Clone, Copy, Debug, PartialEq, Eq)]
60pub enum LD_A {
61    #[doc = "0: The status flag FL is not cleared by hardware and is used as \"sticky\" bit. Once set, it is not influenced by any edge until it becomes cleared by software."]
62    VALUE1 = 0,
63    #[doc = "1: The status flag FL rebuilds a level detection of the desired event. It becomes automatically set with a rising edge if RE = 1 or with a falling edge if FE = 1. It becomes automatically cleared with a rising edge if RE = 0 or with a falling edge if FE = 0."]
64    VALUE2 = 1,
65}
66impl From<LD_A> for bool {
67    #[inline(always)]
68    fn from(variant: LD_A) -> Self {
69        variant as u8 != 0
70    }
71}
72#[doc = "Field `LD` reader - Rebuild Level Detection for Status Flag for ETLx"]
73pub type LD_R = crate::BitReader<LD_A>;
74impl LD_R {
75    #[doc = "Get enumerated values variant"]
76    #[inline(always)]
77    pub const fn variant(&self) -> LD_A {
78        match self.bits {
79            false => LD_A::VALUE1,
80            true => LD_A::VALUE2,
81        }
82    }
83    #[doc = "The status flag FL is not cleared by hardware and is used as \"sticky\" bit. Once set, it is not influenced by any edge until it becomes cleared by software."]
84    #[inline(always)]
85    pub fn is_value1(&self) -> bool {
86        *self == LD_A::VALUE1
87    }
88    #[doc = "The status flag FL rebuilds a level detection of the desired event. It becomes automatically set with a rising edge if RE = 1 or with a falling edge if FE = 1. It becomes automatically cleared with a rising edge if RE = 0 or with a falling edge if FE = 0."]
89    #[inline(always)]
90    pub fn is_value2(&self) -> bool {
91        *self == LD_A::VALUE2
92    }
93}
94#[doc = "Field `LD` writer - Rebuild Level Detection for Status Flag for ETLx"]
95pub type LD_W<'a, REG> = crate::BitWriter<'a, REG, LD_A>;
96impl<'a, REG> LD_W<'a, REG>
97where
98    REG: crate::Writable + crate::RegisterSpec,
99{
100    #[doc = "The status flag FL is not cleared by hardware and is used as \"sticky\" bit. Once set, it is not influenced by any edge until it becomes cleared by software."]
101    #[inline(always)]
102    pub fn value1(self) -> &'a mut crate::W<REG> {
103        self.variant(LD_A::VALUE1)
104    }
105    #[doc = "The status flag FL rebuilds a level detection of the desired event. It becomes automatically set with a rising edge if RE = 1 or with a falling edge if FE = 1. It becomes automatically cleared with a rising edge if RE = 0 or with a falling edge if FE = 0."]
106    #[inline(always)]
107    pub fn value2(self) -> &'a mut crate::W<REG> {
108        self.variant(LD_A::VALUE2)
109    }
110}
111#[doc = "Rising Edge Detection Enable ETLx\n\nValue on reset: 0"]
112#[derive(Clone, Copy, Debug, PartialEq, Eq)]
113pub enum RE_A {
114    #[doc = "0: A rising edge is not considered as edge event"]
115    VALUE1 = 0,
116    #[doc = "1: A rising edge is considered as edge event"]
117    VALUE2 = 1,
118}
119impl From<RE_A> for bool {
120    #[inline(always)]
121    fn from(variant: RE_A) -> Self {
122        variant as u8 != 0
123    }
124}
125#[doc = "Field `RE` reader - Rising Edge Detection Enable ETLx"]
126pub type RE_R = crate::BitReader<RE_A>;
127impl RE_R {
128    #[doc = "Get enumerated values variant"]
129    #[inline(always)]
130    pub const fn variant(&self) -> RE_A {
131        match self.bits {
132            false => RE_A::VALUE1,
133            true => RE_A::VALUE2,
134        }
135    }
136    #[doc = "A rising edge is not considered as edge event"]
137    #[inline(always)]
138    pub fn is_value1(&self) -> bool {
139        *self == RE_A::VALUE1
140    }
141    #[doc = "A rising edge is considered as edge event"]
142    #[inline(always)]
143    pub fn is_value2(&self) -> bool {
144        *self == RE_A::VALUE2
145    }
146}
147#[doc = "Field `RE` writer - Rising Edge Detection Enable ETLx"]
148pub type RE_W<'a, REG> = crate::BitWriter<'a, REG, RE_A>;
149impl<'a, REG> RE_W<'a, REG>
150where
151    REG: crate::Writable + crate::RegisterSpec,
152{
153    #[doc = "A rising edge is not considered as edge event"]
154    #[inline(always)]
155    pub fn value1(self) -> &'a mut crate::W<REG> {
156        self.variant(RE_A::VALUE1)
157    }
158    #[doc = "A rising edge is considered as edge event"]
159    #[inline(always)]
160    pub fn value2(self) -> &'a mut crate::W<REG> {
161        self.variant(RE_A::VALUE2)
162    }
163}
164#[doc = "Falling Edge Detection Enable ETLx\n\nValue on reset: 0"]
165#[derive(Clone, Copy, Debug, PartialEq, Eq)]
166pub enum FE_A {
167    #[doc = "0: A falling edge is not considered as edge event"]
168    VALUE1 = 0,
169    #[doc = "1: A falling edge is considered as edge event"]
170    VALUE2 = 1,
171}
172impl From<FE_A> for bool {
173    #[inline(always)]
174    fn from(variant: FE_A) -> Self {
175        variant as u8 != 0
176    }
177}
178#[doc = "Field `FE` reader - Falling Edge Detection Enable ETLx"]
179pub type FE_R = crate::BitReader<FE_A>;
180impl FE_R {
181    #[doc = "Get enumerated values variant"]
182    #[inline(always)]
183    pub const fn variant(&self) -> FE_A {
184        match self.bits {
185            false => FE_A::VALUE1,
186            true => FE_A::VALUE2,
187        }
188    }
189    #[doc = "A falling edge is not considered as edge event"]
190    #[inline(always)]
191    pub fn is_value1(&self) -> bool {
192        *self == FE_A::VALUE1
193    }
194    #[doc = "A falling edge is considered as edge event"]
195    #[inline(always)]
196    pub fn is_value2(&self) -> bool {
197        *self == FE_A::VALUE2
198    }
199}
200#[doc = "Field `FE` writer - Falling Edge Detection Enable ETLx"]
201pub type FE_W<'a, REG> = crate::BitWriter<'a, REG, FE_A>;
202impl<'a, REG> FE_W<'a, REG>
203where
204    REG: crate::Writable + crate::RegisterSpec,
205{
206    #[doc = "A falling edge is not considered as edge event"]
207    #[inline(always)]
208    pub fn value1(self) -> &'a mut crate::W<REG> {
209        self.variant(FE_A::VALUE1)
210    }
211    #[doc = "A falling edge is considered as edge event"]
212    #[inline(always)]
213    pub fn value2(self) -> &'a mut crate::W<REG> {
214        self.variant(FE_A::VALUE2)
215    }
216}
217#[doc = "Output Channel Select for ETLx Output Trigger Pulse\n\nValue on reset: 0"]
218#[derive(Clone, Copy, Debug, PartialEq, Eq)]
219#[repr(u8)]
220pub enum OCS_A {
221    #[doc = "0: Trigger pulses are sent to OGU0"]
222    VALUE1 = 0,
223    #[doc = "1: Trigger pulses are sent to OGU1"]
224    VALUE2 = 1,
225    #[doc = "2: Trigger pulses are sent to OGU2"]
226    VALUE3 = 2,
227    #[doc = "3: Trigger pulses are sent to OGU3"]
228    VALUE4 = 3,
229}
230impl From<OCS_A> for u8 {
231    #[inline(always)]
232    fn from(variant: OCS_A) -> Self {
233        variant as _
234    }
235}
236impl crate::FieldSpec for OCS_A {
237    type Ux = u8;
238}
239impl crate::IsEnum for OCS_A {}
240#[doc = "Field `OCS` reader - Output Channel Select for ETLx Output Trigger Pulse"]
241pub type OCS_R = crate::FieldReader<OCS_A>;
242impl OCS_R {
243    #[doc = "Get enumerated values variant"]
244    #[inline(always)]
245    pub const fn variant(&self) -> Option<OCS_A> {
246        match self.bits {
247            0 => Some(OCS_A::VALUE1),
248            1 => Some(OCS_A::VALUE2),
249            2 => Some(OCS_A::VALUE3),
250            3 => Some(OCS_A::VALUE4),
251            _ => None,
252        }
253    }
254    #[doc = "Trigger pulses are sent to OGU0"]
255    #[inline(always)]
256    pub fn is_value1(&self) -> bool {
257        *self == OCS_A::VALUE1
258    }
259    #[doc = "Trigger pulses are sent to OGU1"]
260    #[inline(always)]
261    pub fn is_value2(&self) -> bool {
262        *self == OCS_A::VALUE2
263    }
264    #[doc = "Trigger pulses are sent to OGU2"]
265    #[inline(always)]
266    pub fn is_value3(&self) -> bool {
267        *self == OCS_A::VALUE3
268    }
269    #[doc = "Trigger pulses are sent to OGU3"]
270    #[inline(always)]
271    pub fn is_value4(&self) -> bool {
272        *self == OCS_A::VALUE4
273    }
274}
275#[doc = "Field `OCS` writer - Output Channel Select for ETLx Output Trigger Pulse"]
276pub type OCS_W<'a, REG> = crate::FieldWriter<'a, REG, 3, OCS_A>;
277impl<'a, REG> OCS_W<'a, REG>
278where
279    REG: crate::Writable + crate::RegisterSpec,
280    REG::Ux: From<u8>,
281{
282    #[doc = "Trigger pulses are sent to OGU0"]
283    #[inline(always)]
284    pub fn value1(self) -> &'a mut crate::W<REG> {
285        self.variant(OCS_A::VALUE1)
286    }
287    #[doc = "Trigger pulses are sent to OGU1"]
288    #[inline(always)]
289    pub fn value2(self) -> &'a mut crate::W<REG> {
290        self.variant(OCS_A::VALUE2)
291    }
292    #[doc = "Trigger pulses are sent to OGU2"]
293    #[inline(always)]
294    pub fn value3(self) -> &'a mut crate::W<REG> {
295        self.variant(OCS_A::VALUE3)
296    }
297    #[doc = "Trigger pulses are sent to OGU3"]
298    #[inline(always)]
299    pub fn value4(self) -> &'a mut crate::W<REG> {
300        self.variant(OCS_A::VALUE4)
301    }
302}
303#[doc = "Status Flag for ETLx\n\nValue on reset: 0"]
304#[derive(Clone, Copy, Debug, PartialEq, Eq)]
305pub enum FL_A {
306    #[doc = "0: The enabled edge event has not been detected"]
307    VALUE1 = 0,
308    #[doc = "1: The enabled edge event has been detected"]
309    VALUE2 = 1,
310}
311impl From<FL_A> for bool {
312    #[inline(always)]
313    fn from(variant: FL_A) -> Self {
314        variant as u8 != 0
315    }
316}
317#[doc = "Field `FL` reader - Status Flag for ETLx"]
318pub type FL_R = crate::BitReader<FL_A>;
319impl FL_R {
320    #[doc = "Get enumerated values variant"]
321    #[inline(always)]
322    pub const fn variant(&self) -> FL_A {
323        match self.bits {
324            false => FL_A::VALUE1,
325            true => FL_A::VALUE2,
326        }
327    }
328    #[doc = "The enabled edge event has not been detected"]
329    #[inline(always)]
330    pub fn is_value1(&self) -> bool {
331        *self == FL_A::VALUE1
332    }
333    #[doc = "The enabled edge event has been detected"]
334    #[inline(always)]
335    pub fn is_value2(&self) -> bool {
336        *self == FL_A::VALUE2
337    }
338}
339#[doc = "Field `FL` writer - Status Flag for ETLx"]
340pub type FL_W<'a, REG> = crate::BitWriter<'a, REG, FL_A>;
341impl<'a, REG> FL_W<'a, REG>
342where
343    REG: crate::Writable + crate::RegisterSpec,
344{
345    #[doc = "The enabled edge event has not been detected"]
346    #[inline(always)]
347    pub fn value1(self) -> &'a mut crate::W<REG> {
348        self.variant(FL_A::VALUE1)
349    }
350    #[doc = "The enabled edge event has been detected"]
351    #[inline(always)]
352    pub fn value2(self) -> &'a mut crate::W<REG> {
353        self.variant(FL_A::VALUE2)
354    }
355}
356#[doc = "Input Source Select for ERSx\n\nValue on reset: 0"]
357#[derive(Clone, Copy, Debug, PartialEq, Eq)]
358#[repr(u8)]
359pub enum SS_A {
360    #[doc = "0: Input A without additional combination"]
361    VALUE1 = 0,
362    #[doc = "1: Input B without additional combination"]
363    VALUE2 = 1,
364    #[doc = "2: Input A OR input B"]
365    VALUE3 = 2,
366    #[doc = "3: Input A AND input B"]
367    VALUE4 = 3,
368}
369impl From<SS_A> for u8 {
370    #[inline(always)]
371    fn from(variant: SS_A) -> Self {
372        variant as _
373    }
374}
375impl crate::FieldSpec for SS_A {
376    type Ux = u8;
377}
378impl crate::IsEnum for SS_A {}
379#[doc = "Field `SS` reader - Input Source Select for ERSx"]
380pub type SS_R = crate::FieldReader<SS_A>;
381impl SS_R {
382    #[doc = "Get enumerated values variant"]
383    #[inline(always)]
384    pub const fn variant(&self) -> SS_A {
385        match self.bits {
386            0 => SS_A::VALUE1,
387            1 => SS_A::VALUE2,
388            2 => SS_A::VALUE3,
389            3 => SS_A::VALUE4,
390            _ => unreachable!(),
391        }
392    }
393    #[doc = "Input A without additional combination"]
394    #[inline(always)]
395    pub fn is_value1(&self) -> bool {
396        *self == SS_A::VALUE1
397    }
398    #[doc = "Input B without additional combination"]
399    #[inline(always)]
400    pub fn is_value2(&self) -> bool {
401        *self == SS_A::VALUE2
402    }
403    #[doc = "Input A OR input B"]
404    #[inline(always)]
405    pub fn is_value3(&self) -> bool {
406        *self == SS_A::VALUE3
407    }
408    #[doc = "Input A AND input B"]
409    #[inline(always)]
410    pub fn is_value4(&self) -> bool {
411        *self == SS_A::VALUE4
412    }
413}
414#[doc = "Field `SS` writer - Input Source Select for ERSx"]
415pub type SS_W<'a, REG> = crate::FieldWriter<'a, REG, 2, SS_A, crate::Safe>;
416impl<'a, REG> SS_W<'a, REG>
417where
418    REG: crate::Writable + crate::RegisterSpec,
419    REG::Ux: From<u8>,
420{
421    #[doc = "Input A without additional combination"]
422    #[inline(always)]
423    pub fn value1(self) -> &'a mut crate::W<REG> {
424        self.variant(SS_A::VALUE1)
425    }
426    #[doc = "Input B without additional combination"]
427    #[inline(always)]
428    pub fn value2(self) -> &'a mut crate::W<REG> {
429        self.variant(SS_A::VALUE2)
430    }
431    #[doc = "Input A OR input B"]
432    #[inline(always)]
433    pub fn value3(self) -> &'a mut crate::W<REG> {
434        self.variant(SS_A::VALUE3)
435    }
436    #[doc = "Input A AND input B"]
437    #[inline(always)]
438    pub fn value4(self) -> &'a mut crate::W<REG> {
439        self.variant(SS_A::VALUE4)
440    }
441}
442#[doc = "Input A Negation Select for ERSx\n\nValue on reset: 0"]
443#[derive(Clone, Copy, Debug, PartialEq, Eq)]
444pub enum NA_A {
445    #[doc = "0: Input A is used directly"]
446    VALUE1 = 0,
447    #[doc = "1: Input A is inverted"]
448    VALUE2 = 1,
449}
450impl From<NA_A> for bool {
451    #[inline(always)]
452    fn from(variant: NA_A) -> Self {
453        variant as u8 != 0
454    }
455}
456#[doc = "Field `NA` reader - Input A Negation Select for ERSx"]
457pub type NA_R = crate::BitReader<NA_A>;
458impl NA_R {
459    #[doc = "Get enumerated values variant"]
460    #[inline(always)]
461    pub const fn variant(&self) -> NA_A {
462        match self.bits {
463            false => NA_A::VALUE1,
464            true => NA_A::VALUE2,
465        }
466    }
467    #[doc = "Input A is used directly"]
468    #[inline(always)]
469    pub fn is_value1(&self) -> bool {
470        *self == NA_A::VALUE1
471    }
472    #[doc = "Input A is inverted"]
473    #[inline(always)]
474    pub fn is_value2(&self) -> bool {
475        *self == NA_A::VALUE2
476    }
477}
478#[doc = "Field `NA` writer - Input A Negation Select for ERSx"]
479pub type NA_W<'a, REG> = crate::BitWriter<'a, REG, NA_A>;
480impl<'a, REG> NA_W<'a, REG>
481where
482    REG: crate::Writable + crate::RegisterSpec,
483{
484    #[doc = "Input A is used directly"]
485    #[inline(always)]
486    pub fn value1(self) -> &'a mut crate::W<REG> {
487        self.variant(NA_A::VALUE1)
488    }
489    #[doc = "Input A is inverted"]
490    #[inline(always)]
491    pub fn value2(self) -> &'a mut crate::W<REG> {
492        self.variant(NA_A::VALUE2)
493    }
494}
495#[doc = "Input B Negation Select for ERSx\n\nValue on reset: 0"]
496#[derive(Clone, Copy, Debug, PartialEq, Eq)]
497pub enum NB_A {
498    #[doc = "0: Input B is used directly"]
499    VALUE1 = 0,
500    #[doc = "1: Input B is inverted"]
501    VALUE2 = 1,
502}
503impl From<NB_A> for bool {
504    #[inline(always)]
505    fn from(variant: NB_A) -> Self {
506        variant as u8 != 0
507    }
508}
509#[doc = "Field `NB` reader - Input B Negation Select for ERSx"]
510pub type NB_R = crate::BitReader<NB_A>;
511impl NB_R {
512    #[doc = "Get enumerated values variant"]
513    #[inline(always)]
514    pub const fn variant(&self) -> NB_A {
515        match self.bits {
516            false => NB_A::VALUE1,
517            true => NB_A::VALUE2,
518        }
519    }
520    #[doc = "Input B is used directly"]
521    #[inline(always)]
522    pub fn is_value1(&self) -> bool {
523        *self == NB_A::VALUE1
524    }
525    #[doc = "Input B is inverted"]
526    #[inline(always)]
527    pub fn is_value2(&self) -> bool {
528        *self == NB_A::VALUE2
529    }
530}
531#[doc = "Field `NB` writer - Input B Negation Select for ERSx"]
532pub type NB_W<'a, REG> = crate::BitWriter<'a, REG, NB_A>;
533impl<'a, REG> NB_W<'a, REG>
534where
535    REG: crate::Writable + crate::RegisterSpec,
536{
537    #[doc = "Input B is used directly"]
538    #[inline(always)]
539    pub fn value1(self) -> &'a mut crate::W<REG> {
540        self.variant(NB_A::VALUE1)
541    }
542    #[doc = "Input B is inverted"]
543    #[inline(always)]
544    pub fn value2(self) -> &'a mut crate::W<REG> {
545        self.variant(NB_A::VALUE2)
546    }
547}
548impl R {
549    #[doc = "Bit 0 - Output Trigger Pulse Enable for ETLx"]
550    #[inline(always)]
551    pub fn pe(&self) -> PE_R {
552        PE_R::new((self.bits & 1) != 0)
553    }
554    #[doc = "Bit 1 - Rebuild Level Detection for Status Flag for ETLx"]
555    #[inline(always)]
556    pub fn ld(&self) -> LD_R {
557        LD_R::new(((self.bits >> 1) & 1) != 0)
558    }
559    #[doc = "Bit 2 - Rising Edge Detection Enable ETLx"]
560    #[inline(always)]
561    pub fn re(&self) -> RE_R {
562        RE_R::new(((self.bits >> 2) & 1) != 0)
563    }
564    #[doc = "Bit 3 - Falling Edge Detection Enable ETLx"]
565    #[inline(always)]
566    pub fn fe(&self) -> FE_R {
567        FE_R::new(((self.bits >> 3) & 1) != 0)
568    }
569    #[doc = "Bits 4:6 - Output Channel Select for ETLx Output Trigger Pulse"]
570    #[inline(always)]
571    pub fn ocs(&self) -> OCS_R {
572        OCS_R::new(((self.bits >> 4) & 7) as u8)
573    }
574    #[doc = "Bit 7 - Status Flag for ETLx"]
575    #[inline(always)]
576    pub fn fl(&self) -> FL_R {
577        FL_R::new(((self.bits >> 7) & 1) != 0)
578    }
579    #[doc = "Bits 8:9 - Input Source Select for ERSx"]
580    #[inline(always)]
581    pub fn ss(&self) -> SS_R {
582        SS_R::new(((self.bits >> 8) & 3) as u8)
583    }
584    #[doc = "Bit 10 - Input A Negation Select for ERSx"]
585    #[inline(always)]
586    pub fn na(&self) -> NA_R {
587        NA_R::new(((self.bits >> 10) & 1) != 0)
588    }
589    #[doc = "Bit 11 - Input B Negation Select for ERSx"]
590    #[inline(always)]
591    pub fn nb(&self) -> NB_R {
592        NB_R::new(((self.bits >> 11) & 1) != 0)
593    }
594}
595impl W {
596    #[doc = "Bit 0 - Output Trigger Pulse Enable for ETLx"]
597    #[inline(always)]
598    pub fn pe(&mut self) -> PE_W<EXICON_SPEC> {
599        PE_W::new(self, 0)
600    }
601    #[doc = "Bit 1 - Rebuild Level Detection for Status Flag for ETLx"]
602    #[inline(always)]
603    pub fn ld(&mut self) -> LD_W<EXICON_SPEC> {
604        LD_W::new(self, 1)
605    }
606    #[doc = "Bit 2 - Rising Edge Detection Enable ETLx"]
607    #[inline(always)]
608    pub fn re(&mut self) -> RE_W<EXICON_SPEC> {
609        RE_W::new(self, 2)
610    }
611    #[doc = "Bit 3 - Falling Edge Detection Enable ETLx"]
612    #[inline(always)]
613    pub fn fe(&mut self) -> FE_W<EXICON_SPEC> {
614        FE_W::new(self, 3)
615    }
616    #[doc = "Bits 4:6 - Output Channel Select for ETLx Output Trigger Pulse"]
617    #[inline(always)]
618    pub fn ocs(&mut self) -> OCS_W<EXICON_SPEC> {
619        OCS_W::new(self, 4)
620    }
621    #[doc = "Bit 7 - Status Flag for ETLx"]
622    #[inline(always)]
623    pub fn fl(&mut self) -> FL_W<EXICON_SPEC> {
624        FL_W::new(self, 7)
625    }
626    #[doc = "Bits 8:9 - Input Source Select for ERSx"]
627    #[inline(always)]
628    pub fn ss(&mut self) -> SS_W<EXICON_SPEC> {
629        SS_W::new(self, 8)
630    }
631    #[doc = "Bit 10 - Input A Negation Select for ERSx"]
632    #[inline(always)]
633    pub fn na(&mut self) -> NA_W<EXICON_SPEC> {
634        NA_W::new(self, 10)
635    }
636    #[doc = "Bit 11 - Input B Negation Select for ERSx"]
637    #[inline(always)]
638    pub fn nb(&mut self) -> NB_W<EXICON_SPEC> {
639        NB_W::new(self, 11)
640    }
641}
642#[doc = "Event Input Control\n\nYou can [`read`](crate::Reg::read) this register and get [`exicon::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`exicon::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
643pub struct EXICON_SPEC;
644impl crate::RegisterSpec for EXICON_SPEC {
645    type Ux = u32;
646}
647#[doc = "`read()` method returns [`exicon::R`](R) reader structure"]
648impl crate::Readable for EXICON_SPEC {}
649#[doc = "`write(|w| ..)` method takes [`exicon::W`](W) writer structure"]
650impl crate::Writable for EXICON_SPEC {
651    type Safety = crate::Unsafe;
652    const ZERO_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
653    const ONE_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
654}
655#[doc = "`reset()` method sets EXICON[%s]
656to value 0"]
657impl crate::Resettable for EXICON_SPEC {
658    const RESET_VALUE: u32 = 0;
659}