stm32f3/stm32f303/syscfg/
exticr1.rs

1#[doc = "Register `EXTICR1` reader"]
2pub struct R(crate::R<EXTICR1_SPEC>);
3impl core::ops::Deref for R {
4    type Target = crate::R<EXTICR1_SPEC>;
5    #[inline(always)]
6    fn deref(&self) -> &Self::Target {
7        &self.0
8    }
9}
10impl From<crate::R<EXTICR1_SPEC>> for R {
11    #[inline(always)]
12    fn from(reader: crate::R<EXTICR1_SPEC>) -> Self {
13        R(reader)
14    }
15}
16#[doc = "Register `EXTICR1` writer"]
17pub struct W(crate::W<EXTICR1_SPEC>);
18impl core::ops::Deref for W {
19    type Target = crate::W<EXTICR1_SPEC>;
20    #[inline(always)]
21    fn deref(&self) -> &Self::Target {
22        &self.0
23    }
24}
25impl core::ops::DerefMut for W {
26    #[inline(always)]
27    fn deref_mut(&mut self) -> &mut Self::Target {
28        &mut self.0
29    }
30}
31impl From<crate::W<EXTICR1_SPEC>> for W {
32    #[inline(always)]
33    fn from(writer: crate::W<EXTICR1_SPEC>) -> Self {
34        W(writer)
35    }
36}
37#[doc = "EXTI 3 configuration bits\n\nValue on reset: 0"]
38#[derive(Clone, Copy, Debug, PartialEq)]
39#[repr(u8)]
40pub enum EXTI3_A {
41    #[doc = "0: Select PA3 as the source input for the EXTI3 external interrupt"]
42    Pa3 = 0,
43    #[doc = "1: Select PB3 as the source input for the EXTI3 external interrupt"]
44    Pb3 = 1,
45    #[doc = "2: Select PC3 as the source input for the EXTI3 external interrupt"]
46    Pc3 = 2,
47    #[doc = "3: Select PD3 as the source input for the EXTI3 external interrupt"]
48    Pd3 = 3,
49    #[doc = "4: Select PE3 as the source input for the EXTI3 external interrupt"]
50    Pe3 = 4,
51    #[doc = "5: Select PF3 as the source input for the EXTI3 external interrupt"]
52    Pf3 = 5,
53    #[doc = "6: Select PG3 as the source input for the EXTI3 external interrupt"]
54    Pg3 = 6,
55}
56impl From<EXTI3_A> for u8 {
57    #[inline(always)]
58    fn from(variant: EXTI3_A) -> Self {
59        variant as _
60    }
61}
62#[doc = "Field `EXTI3` reader - EXTI 3 configuration bits"]
63pub type EXTI3_R = crate::FieldReader<u8, EXTI3_A>;
64impl EXTI3_R {
65    #[doc = "Get enumerated values variant"]
66    #[inline(always)]
67    pub fn variant(&self) -> Option<EXTI3_A> {
68        match self.bits {
69            0 => Some(EXTI3_A::Pa3),
70            1 => Some(EXTI3_A::Pb3),
71            2 => Some(EXTI3_A::Pc3),
72            3 => Some(EXTI3_A::Pd3),
73            4 => Some(EXTI3_A::Pe3),
74            5 => Some(EXTI3_A::Pf3),
75            6 => Some(EXTI3_A::Pg3),
76            _ => None,
77        }
78    }
79    #[doc = "Checks if the value of the field is `Pa3`"]
80    #[inline(always)]
81    pub fn is_pa3(&self) -> bool {
82        *self == EXTI3_A::Pa3
83    }
84    #[doc = "Checks if the value of the field is `Pb3`"]
85    #[inline(always)]
86    pub fn is_pb3(&self) -> bool {
87        *self == EXTI3_A::Pb3
88    }
89    #[doc = "Checks if the value of the field is `Pc3`"]
90    #[inline(always)]
91    pub fn is_pc3(&self) -> bool {
92        *self == EXTI3_A::Pc3
93    }
94    #[doc = "Checks if the value of the field is `Pd3`"]
95    #[inline(always)]
96    pub fn is_pd3(&self) -> bool {
97        *self == EXTI3_A::Pd3
98    }
99    #[doc = "Checks if the value of the field is `Pe3`"]
100    #[inline(always)]
101    pub fn is_pe3(&self) -> bool {
102        *self == EXTI3_A::Pe3
103    }
104    #[doc = "Checks if the value of the field is `Pf3`"]
105    #[inline(always)]
106    pub fn is_pf3(&self) -> bool {
107        *self == EXTI3_A::Pf3
108    }
109    #[doc = "Checks if the value of the field is `Pg3`"]
110    #[inline(always)]
111    pub fn is_pg3(&self) -> bool {
112        *self == EXTI3_A::Pg3
113    }
114}
115#[doc = "Field `EXTI3` writer - EXTI 3 configuration bits"]
116pub type EXTI3_W<'a, const O: u8> = crate::FieldWriter<'a, u32, EXTICR1_SPEC, u8, EXTI3_A, 4, O>;
117impl<'a, const O: u8> EXTI3_W<'a, O> {
118    #[doc = "Select PA3 as the source input for the EXTI3 external interrupt"]
119    #[inline(always)]
120    pub fn pa3(self) -> &'a mut W {
121        self.variant(EXTI3_A::Pa3)
122    }
123    #[doc = "Select PB3 as the source input for the EXTI3 external interrupt"]
124    #[inline(always)]
125    pub fn pb3(self) -> &'a mut W {
126        self.variant(EXTI3_A::Pb3)
127    }
128    #[doc = "Select PC3 as the source input for the EXTI3 external interrupt"]
129    #[inline(always)]
130    pub fn pc3(self) -> &'a mut W {
131        self.variant(EXTI3_A::Pc3)
132    }
133    #[doc = "Select PD3 as the source input for the EXTI3 external interrupt"]
134    #[inline(always)]
135    pub fn pd3(self) -> &'a mut W {
136        self.variant(EXTI3_A::Pd3)
137    }
138    #[doc = "Select PE3 as the source input for the EXTI3 external interrupt"]
139    #[inline(always)]
140    pub fn pe3(self) -> &'a mut W {
141        self.variant(EXTI3_A::Pe3)
142    }
143    #[doc = "Select PF3 as the source input for the EXTI3 external interrupt"]
144    #[inline(always)]
145    pub fn pf3(self) -> &'a mut W {
146        self.variant(EXTI3_A::Pf3)
147    }
148    #[doc = "Select PG3 as the source input for the EXTI3 external interrupt"]
149    #[inline(always)]
150    pub fn pg3(self) -> &'a mut W {
151        self.variant(EXTI3_A::Pg3)
152    }
153}
154#[doc = "EXTI 2 configuration bits\n\nValue on reset: 0"]
155#[derive(Clone, Copy, Debug, PartialEq)]
156#[repr(u8)]
157pub enum EXTI2_A {
158    #[doc = "0: Select PA2 as the source input for the EXTI2 external interrupt"]
159    Pa2 = 0,
160    #[doc = "1: Select PB2 as the source input for the EXTI2 external interrupt"]
161    Pb2 = 1,
162    #[doc = "2: Select PC2 as the source input for the EXTI2 external interrupt"]
163    Pc2 = 2,
164    #[doc = "3: Select PD2 as the source input for the EXTI2 external interrupt"]
165    Pd2 = 3,
166    #[doc = "4: Select PE2 as the source input for the EXTI2 external interrupt"]
167    Pe2 = 4,
168    #[doc = "5: Select PF2 as the source input for the EXTI2 external interrupt"]
169    Pf2 = 5,
170    #[doc = "6: Select PG2 as the source input for the EXTI2 external interrupt"]
171    Pg2 = 6,
172    #[doc = "7: Select PH2 as the source input for the EXTI2 external interrupt"]
173    Ph2 = 7,
174}
175impl From<EXTI2_A> for u8 {
176    #[inline(always)]
177    fn from(variant: EXTI2_A) -> Self {
178        variant as _
179    }
180}
181#[doc = "Field `EXTI2` reader - EXTI 2 configuration bits"]
182pub type EXTI2_R = crate::FieldReader<u8, EXTI2_A>;
183impl EXTI2_R {
184    #[doc = "Get enumerated values variant"]
185    #[inline(always)]
186    pub fn variant(&self) -> Option<EXTI2_A> {
187        match self.bits {
188            0 => Some(EXTI2_A::Pa2),
189            1 => Some(EXTI2_A::Pb2),
190            2 => Some(EXTI2_A::Pc2),
191            3 => Some(EXTI2_A::Pd2),
192            4 => Some(EXTI2_A::Pe2),
193            5 => Some(EXTI2_A::Pf2),
194            6 => Some(EXTI2_A::Pg2),
195            7 => Some(EXTI2_A::Ph2),
196            _ => None,
197        }
198    }
199    #[doc = "Checks if the value of the field is `Pa2`"]
200    #[inline(always)]
201    pub fn is_pa2(&self) -> bool {
202        *self == EXTI2_A::Pa2
203    }
204    #[doc = "Checks if the value of the field is `Pb2`"]
205    #[inline(always)]
206    pub fn is_pb2(&self) -> bool {
207        *self == EXTI2_A::Pb2
208    }
209    #[doc = "Checks if the value of the field is `Pc2`"]
210    #[inline(always)]
211    pub fn is_pc2(&self) -> bool {
212        *self == EXTI2_A::Pc2
213    }
214    #[doc = "Checks if the value of the field is `Pd2`"]
215    #[inline(always)]
216    pub fn is_pd2(&self) -> bool {
217        *self == EXTI2_A::Pd2
218    }
219    #[doc = "Checks if the value of the field is `Pe2`"]
220    #[inline(always)]
221    pub fn is_pe2(&self) -> bool {
222        *self == EXTI2_A::Pe2
223    }
224    #[doc = "Checks if the value of the field is `Pf2`"]
225    #[inline(always)]
226    pub fn is_pf2(&self) -> bool {
227        *self == EXTI2_A::Pf2
228    }
229    #[doc = "Checks if the value of the field is `Pg2`"]
230    #[inline(always)]
231    pub fn is_pg2(&self) -> bool {
232        *self == EXTI2_A::Pg2
233    }
234    #[doc = "Checks if the value of the field is `Ph2`"]
235    #[inline(always)]
236    pub fn is_ph2(&self) -> bool {
237        *self == EXTI2_A::Ph2
238    }
239}
240#[doc = "Field `EXTI2` writer - EXTI 2 configuration bits"]
241pub type EXTI2_W<'a, const O: u8> = crate::FieldWriter<'a, u32, EXTICR1_SPEC, u8, EXTI2_A, 4, O>;
242impl<'a, const O: u8> EXTI2_W<'a, O> {
243    #[doc = "Select PA2 as the source input for the EXTI2 external interrupt"]
244    #[inline(always)]
245    pub fn pa2(self) -> &'a mut W {
246        self.variant(EXTI2_A::Pa2)
247    }
248    #[doc = "Select PB2 as the source input for the EXTI2 external interrupt"]
249    #[inline(always)]
250    pub fn pb2(self) -> &'a mut W {
251        self.variant(EXTI2_A::Pb2)
252    }
253    #[doc = "Select PC2 as the source input for the EXTI2 external interrupt"]
254    #[inline(always)]
255    pub fn pc2(self) -> &'a mut W {
256        self.variant(EXTI2_A::Pc2)
257    }
258    #[doc = "Select PD2 as the source input for the EXTI2 external interrupt"]
259    #[inline(always)]
260    pub fn pd2(self) -> &'a mut W {
261        self.variant(EXTI2_A::Pd2)
262    }
263    #[doc = "Select PE2 as the source input for the EXTI2 external interrupt"]
264    #[inline(always)]
265    pub fn pe2(self) -> &'a mut W {
266        self.variant(EXTI2_A::Pe2)
267    }
268    #[doc = "Select PF2 as the source input for the EXTI2 external interrupt"]
269    #[inline(always)]
270    pub fn pf2(self) -> &'a mut W {
271        self.variant(EXTI2_A::Pf2)
272    }
273    #[doc = "Select PG2 as the source input for the EXTI2 external interrupt"]
274    #[inline(always)]
275    pub fn pg2(self) -> &'a mut W {
276        self.variant(EXTI2_A::Pg2)
277    }
278    #[doc = "Select PH2 as the source input for the EXTI2 external interrupt"]
279    #[inline(always)]
280    pub fn ph2(self) -> &'a mut W {
281        self.variant(EXTI2_A::Ph2)
282    }
283}
284#[doc = "EXTI 1 configuration bits\n\nValue on reset: 0"]
285#[derive(Clone, Copy, Debug, PartialEq)]
286#[repr(u8)]
287pub enum EXTI1_A {
288    #[doc = "0: Select PA1 as the source input for the EXTI1 external interrupt"]
289    Pa1 = 0,
290    #[doc = "1: Select PB1 as the source input for the EXTI1 external interrupt"]
291    Pb1 = 1,
292    #[doc = "2: Select PC1 as the source input for the EXTI1 external interrupt"]
293    Pc1 = 2,
294    #[doc = "3: Select PD1 as the source input for the EXTI1 external interrupt"]
295    Pd1 = 3,
296    #[doc = "4: Select PE1 as the source input for the EXTI1 external interrupt"]
297    Pe1 = 4,
298    #[doc = "5: Select PF1 as the source input for the EXTI1 external interrupt"]
299    Pf1 = 5,
300    #[doc = "6: Select PG1 as the source input for the EXTI1 external interrupt"]
301    Pg1 = 6,
302    #[doc = "7: Select PH1 as the source input for the EXTI1 external interrupt"]
303    Ph1 = 7,
304}
305impl From<EXTI1_A> for u8 {
306    #[inline(always)]
307    fn from(variant: EXTI1_A) -> Self {
308        variant as _
309    }
310}
311#[doc = "Field `EXTI1` reader - EXTI 1 configuration bits"]
312pub type EXTI1_R = crate::FieldReader<u8, EXTI1_A>;
313impl EXTI1_R {
314    #[doc = "Get enumerated values variant"]
315    #[inline(always)]
316    pub fn variant(&self) -> Option<EXTI1_A> {
317        match self.bits {
318            0 => Some(EXTI1_A::Pa1),
319            1 => Some(EXTI1_A::Pb1),
320            2 => Some(EXTI1_A::Pc1),
321            3 => Some(EXTI1_A::Pd1),
322            4 => Some(EXTI1_A::Pe1),
323            5 => Some(EXTI1_A::Pf1),
324            6 => Some(EXTI1_A::Pg1),
325            7 => Some(EXTI1_A::Ph1),
326            _ => None,
327        }
328    }
329    #[doc = "Checks if the value of the field is `Pa1`"]
330    #[inline(always)]
331    pub fn is_pa1(&self) -> bool {
332        *self == EXTI1_A::Pa1
333    }
334    #[doc = "Checks if the value of the field is `Pb1`"]
335    #[inline(always)]
336    pub fn is_pb1(&self) -> bool {
337        *self == EXTI1_A::Pb1
338    }
339    #[doc = "Checks if the value of the field is `Pc1`"]
340    #[inline(always)]
341    pub fn is_pc1(&self) -> bool {
342        *self == EXTI1_A::Pc1
343    }
344    #[doc = "Checks if the value of the field is `Pd1`"]
345    #[inline(always)]
346    pub fn is_pd1(&self) -> bool {
347        *self == EXTI1_A::Pd1
348    }
349    #[doc = "Checks if the value of the field is `Pe1`"]
350    #[inline(always)]
351    pub fn is_pe1(&self) -> bool {
352        *self == EXTI1_A::Pe1
353    }
354    #[doc = "Checks if the value of the field is `Pf1`"]
355    #[inline(always)]
356    pub fn is_pf1(&self) -> bool {
357        *self == EXTI1_A::Pf1
358    }
359    #[doc = "Checks if the value of the field is `Pg1`"]
360    #[inline(always)]
361    pub fn is_pg1(&self) -> bool {
362        *self == EXTI1_A::Pg1
363    }
364    #[doc = "Checks if the value of the field is `Ph1`"]
365    #[inline(always)]
366    pub fn is_ph1(&self) -> bool {
367        *self == EXTI1_A::Ph1
368    }
369}
370#[doc = "Field `EXTI1` writer - EXTI 1 configuration bits"]
371pub type EXTI1_W<'a, const O: u8> = crate::FieldWriter<'a, u32, EXTICR1_SPEC, u8, EXTI1_A, 4, O>;
372impl<'a, const O: u8> EXTI1_W<'a, O> {
373    #[doc = "Select PA1 as the source input for the EXTI1 external interrupt"]
374    #[inline(always)]
375    pub fn pa1(self) -> &'a mut W {
376        self.variant(EXTI1_A::Pa1)
377    }
378    #[doc = "Select PB1 as the source input for the EXTI1 external interrupt"]
379    #[inline(always)]
380    pub fn pb1(self) -> &'a mut W {
381        self.variant(EXTI1_A::Pb1)
382    }
383    #[doc = "Select PC1 as the source input for the EXTI1 external interrupt"]
384    #[inline(always)]
385    pub fn pc1(self) -> &'a mut W {
386        self.variant(EXTI1_A::Pc1)
387    }
388    #[doc = "Select PD1 as the source input for the EXTI1 external interrupt"]
389    #[inline(always)]
390    pub fn pd1(self) -> &'a mut W {
391        self.variant(EXTI1_A::Pd1)
392    }
393    #[doc = "Select PE1 as the source input for the EXTI1 external interrupt"]
394    #[inline(always)]
395    pub fn pe1(self) -> &'a mut W {
396        self.variant(EXTI1_A::Pe1)
397    }
398    #[doc = "Select PF1 as the source input for the EXTI1 external interrupt"]
399    #[inline(always)]
400    pub fn pf1(self) -> &'a mut W {
401        self.variant(EXTI1_A::Pf1)
402    }
403    #[doc = "Select PG1 as the source input for the EXTI1 external interrupt"]
404    #[inline(always)]
405    pub fn pg1(self) -> &'a mut W {
406        self.variant(EXTI1_A::Pg1)
407    }
408    #[doc = "Select PH1 as the source input for the EXTI1 external interrupt"]
409    #[inline(always)]
410    pub fn ph1(self) -> &'a mut W {
411        self.variant(EXTI1_A::Ph1)
412    }
413}
414#[doc = "EXTI 0 configuration bits\n\nValue on reset: 0"]
415#[derive(Clone, Copy, Debug, PartialEq)]
416#[repr(u8)]
417pub enum EXTI0_A {
418    #[doc = "0: Select PA0 as the source input for the EXTI0 external interrupt"]
419    Pa0 = 0,
420    #[doc = "1: Select PB0 as the source input for the EXTI0 external interrupt"]
421    Pb0 = 1,
422    #[doc = "2: Select PC0 as the source input for the EXTI0 external interrupt"]
423    Pc0 = 2,
424    #[doc = "3: Select PD0 as the source input for the EXTI0 external interrupt"]
425    Pd0 = 3,
426    #[doc = "4: Select PE0 as the source input for the EXTI0 external interrupt"]
427    Pe0 = 4,
428    #[doc = "5: Select PF0 as the source input for the EXTI0 external interrupt"]
429    Pf0 = 5,
430    #[doc = "6: Select PG0 as the source input for the EXTI0 external interrupt"]
431    Pg0 = 6,
432    #[doc = "7: Select PH0 as the source input for the EXTI0 external interrupt"]
433    Ph0 = 7,
434}
435impl From<EXTI0_A> for u8 {
436    #[inline(always)]
437    fn from(variant: EXTI0_A) -> Self {
438        variant as _
439    }
440}
441#[doc = "Field `EXTI0` reader - EXTI 0 configuration bits"]
442pub type EXTI0_R = crate::FieldReader<u8, EXTI0_A>;
443impl EXTI0_R {
444    #[doc = "Get enumerated values variant"]
445    #[inline(always)]
446    pub fn variant(&self) -> Option<EXTI0_A> {
447        match self.bits {
448            0 => Some(EXTI0_A::Pa0),
449            1 => Some(EXTI0_A::Pb0),
450            2 => Some(EXTI0_A::Pc0),
451            3 => Some(EXTI0_A::Pd0),
452            4 => Some(EXTI0_A::Pe0),
453            5 => Some(EXTI0_A::Pf0),
454            6 => Some(EXTI0_A::Pg0),
455            7 => Some(EXTI0_A::Ph0),
456            _ => None,
457        }
458    }
459    #[doc = "Checks if the value of the field is `Pa0`"]
460    #[inline(always)]
461    pub fn is_pa0(&self) -> bool {
462        *self == EXTI0_A::Pa0
463    }
464    #[doc = "Checks if the value of the field is `Pb0`"]
465    #[inline(always)]
466    pub fn is_pb0(&self) -> bool {
467        *self == EXTI0_A::Pb0
468    }
469    #[doc = "Checks if the value of the field is `Pc0`"]
470    #[inline(always)]
471    pub fn is_pc0(&self) -> bool {
472        *self == EXTI0_A::Pc0
473    }
474    #[doc = "Checks if the value of the field is `Pd0`"]
475    #[inline(always)]
476    pub fn is_pd0(&self) -> bool {
477        *self == EXTI0_A::Pd0
478    }
479    #[doc = "Checks if the value of the field is `Pe0`"]
480    #[inline(always)]
481    pub fn is_pe0(&self) -> bool {
482        *self == EXTI0_A::Pe0
483    }
484    #[doc = "Checks if the value of the field is `Pf0`"]
485    #[inline(always)]
486    pub fn is_pf0(&self) -> bool {
487        *self == EXTI0_A::Pf0
488    }
489    #[doc = "Checks if the value of the field is `Pg0`"]
490    #[inline(always)]
491    pub fn is_pg0(&self) -> bool {
492        *self == EXTI0_A::Pg0
493    }
494    #[doc = "Checks if the value of the field is `Ph0`"]
495    #[inline(always)]
496    pub fn is_ph0(&self) -> bool {
497        *self == EXTI0_A::Ph0
498    }
499}
500#[doc = "Field `EXTI0` writer - EXTI 0 configuration bits"]
501pub type EXTI0_W<'a, const O: u8> = crate::FieldWriter<'a, u32, EXTICR1_SPEC, u8, EXTI0_A, 4, O>;
502impl<'a, const O: u8> EXTI0_W<'a, O> {
503    #[doc = "Select PA0 as the source input for the EXTI0 external interrupt"]
504    #[inline(always)]
505    pub fn pa0(self) -> &'a mut W {
506        self.variant(EXTI0_A::Pa0)
507    }
508    #[doc = "Select PB0 as the source input for the EXTI0 external interrupt"]
509    #[inline(always)]
510    pub fn pb0(self) -> &'a mut W {
511        self.variant(EXTI0_A::Pb0)
512    }
513    #[doc = "Select PC0 as the source input for the EXTI0 external interrupt"]
514    #[inline(always)]
515    pub fn pc0(self) -> &'a mut W {
516        self.variant(EXTI0_A::Pc0)
517    }
518    #[doc = "Select PD0 as the source input for the EXTI0 external interrupt"]
519    #[inline(always)]
520    pub fn pd0(self) -> &'a mut W {
521        self.variant(EXTI0_A::Pd0)
522    }
523    #[doc = "Select PE0 as the source input for the EXTI0 external interrupt"]
524    #[inline(always)]
525    pub fn pe0(self) -> &'a mut W {
526        self.variant(EXTI0_A::Pe0)
527    }
528    #[doc = "Select PF0 as the source input for the EXTI0 external interrupt"]
529    #[inline(always)]
530    pub fn pf0(self) -> &'a mut W {
531        self.variant(EXTI0_A::Pf0)
532    }
533    #[doc = "Select PG0 as the source input for the EXTI0 external interrupt"]
534    #[inline(always)]
535    pub fn pg0(self) -> &'a mut W {
536        self.variant(EXTI0_A::Pg0)
537    }
538    #[doc = "Select PH0 as the source input for the EXTI0 external interrupt"]
539    #[inline(always)]
540    pub fn ph0(self) -> &'a mut W {
541        self.variant(EXTI0_A::Ph0)
542    }
543}
544impl R {
545    #[doc = "Bits 12:15 - EXTI 3 configuration bits"]
546    #[inline(always)]
547    pub fn exti3(&self) -> EXTI3_R {
548        EXTI3_R::new(((self.bits >> 12) & 0x0f) as u8)
549    }
550    #[doc = "Bits 8:11 - EXTI 2 configuration bits"]
551    #[inline(always)]
552    pub fn exti2(&self) -> EXTI2_R {
553        EXTI2_R::new(((self.bits >> 8) & 0x0f) as u8)
554    }
555    #[doc = "Bits 4:7 - EXTI 1 configuration bits"]
556    #[inline(always)]
557    pub fn exti1(&self) -> EXTI1_R {
558        EXTI1_R::new(((self.bits >> 4) & 0x0f) as u8)
559    }
560    #[doc = "Bits 0:3 - EXTI 0 configuration bits"]
561    #[inline(always)]
562    pub fn exti0(&self) -> EXTI0_R {
563        EXTI0_R::new((self.bits & 0x0f) as u8)
564    }
565}
566impl W {
567    #[doc = "Bits 12:15 - EXTI 3 configuration bits"]
568    #[inline(always)]
569    pub fn exti3(&mut self) -> EXTI3_W<12> {
570        EXTI3_W::new(self)
571    }
572    #[doc = "Bits 8:11 - EXTI 2 configuration bits"]
573    #[inline(always)]
574    pub fn exti2(&mut self) -> EXTI2_W<8> {
575        EXTI2_W::new(self)
576    }
577    #[doc = "Bits 4:7 - EXTI 1 configuration bits"]
578    #[inline(always)]
579    pub fn exti1(&mut self) -> EXTI1_W<4> {
580        EXTI1_W::new(self)
581    }
582    #[doc = "Bits 0:3 - EXTI 0 configuration bits"]
583    #[inline(always)]
584    pub fn exti0(&mut self) -> EXTI0_W<0> {
585        EXTI0_W::new(self)
586    }
587    #[doc = "Writes raw bits to the register."]
588    #[inline(always)]
589    pub unsafe fn bits(&mut self, bits: u32) -> &mut Self {
590        self.0.bits(bits);
591        self
592    }
593}
594#[doc = "external interrupt configuration register 1\n\nThis register you can [`read`](crate::generic::Reg::read), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [exticr1](index.html) module"]
595pub struct EXTICR1_SPEC;
596impl crate::RegisterSpec for EXTICR1_SPEC {
597    type Ux = u32;
598}
599#[doc = "`read()` method returns [exticr1::R](R) reader structure"]
600impl crate::Readable for EXTICR1_SPEC {
601    type Reader = R;
602}
603#[doc = "`write(|w| ..)` method takes [exticr1::W](W) writer structure"]
604impl crate::Writable for EXTICR1_SPEC {
605    type Writer = W;
606}
607#[doc = "`reset()` method sets EXTICR1 to value 0"]
608impl crate::Resettable for EXTICR1_SPEC {
609    #[inline(always)]
610    fn reset_value() -> Self::Ux {
611        0
612    }
613}