stm32f1/stm32f103/exti/
emr.rs

1#[doc = "Register `EMR` reader"]
2pub struct R(crate::R<EMR_SPEC>);
3impl core::ops::Deref for R {
4    type Target = crate::R<EMR_SPEC>;
5    #[inline(always)]
6    fn deref(&self) -> &Self::Target {
7        &self.0
8    }
9}
10impl From<crate::R<EMR_SPEC>> for R {
11    #[inline(always)]
12    fn from(reader: crate::R<EMR_SPEC>) -> Self {
13        R(reader)
14    }
15}
16#[doc = "Register `EMR` writer"]
17pub struct W(crate::W<EMR_SPEC>);
18impl core::ops::Deref for W {
19    type Target = crate::W<EMR_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<EMR_SPEC>> for W {
32    #[inline(always)]
33    fn from(writer: crate::W<EMR_SPEC>) -> Self {
34        W(writer)
35    }
36}
37#[doc = "Event Mask on line 0\n\nValue on reset: 0"]
38#[derive(Clone, Copy, Debug, PartialEq)]
39pub enum MR0_A {
40    #[doc = "0: Interrupt request line is masked"]
41    Masked = 0,
42    #[doc = "1: Interrupt request line is unmasked"]
43    Unmasked = 1,
44}
45impl From<MR0_A> for bool {
46    #[inline(always)]
47    fn from(variant: MR0_A) -> Self {
48        variant as u8 != 0
49    }
50}
51#[doc = "Field `MR0` reader - Event Mask on line 0"]
52pub type MR0_R = crate::BitReader<MR0_A>;
53impl MR0_R {
54    #[doc = "Get enumerated values variant"]
55    #[inline(always)]
56    pub fn variant(&self) -> MR0_A {
57        match self.bits {
58            false => MR0_A::Masked,
59            true => MR0_A::Unmasked,
60        }
61    }
62    #[doc = "Checks if the value of the field is `Masked`"]
63    #[inline(always)]
64    pub fn is_masked(&self) -> bool {
65        *self == MR0_A::Masked
66    }
67    #[doc = "Checks if the value of the field is `Unmasked`"]
68    #[inline(always)]
69    pub fn is_unmasked(&self) -> bool {
70        *self == MR0_A::Unmasked
71    }
72}
73#[doc = "Field `MR0` writer - Event Mask on line 0"]
74pub type MR0_W<'a, const O: u8> = crate::BitWriter<'a, u32, EMR_SPEC, MR0_A, O>;
75impl<'a, const O: u8> MR0_W<'a, O> {
76    #[doc = "Interrupt request line is masked"]
77    #[inline(always)]
78    pub fn masked(self) -> &'a mut W {
79        self.variant(MR0_A::Masked)
80    }
81    #[doc = "Interrupt request line is unmasked"]
82    #[inline(always)]
83    pub fn unmasked(self) -> &'a mut W {
84        self.variant(MR0_A::Unmasked)
85    }
86}
87#[doc = "Event Mask on line 1"]
88pub use MR0_A as MR1_A;
89#[doc = "Event Mask on line 2"]
90pub use MR0_A as MR2_A;
91#[doc = "Event Mask on line 3"]
92pub use MR0_A as MR3_A;
93#[doc = "Event Mask on line 4"]
94pub use MR0_A as MR4_A;
95#[doc = "Event Mask on line 5"]
96pub use MR0_A as MR5_A;
97#[doc = "Event Mask on line 6"]
98pub use MR0_A as MR6_A;
99#[doc = "Event Mask on line 7"]
100pub use MR0_A as MR7_A;
101#[doc = "Event Mask on line 8"]
102pub use MR0_A as MR8_A;
103#[doc = "Event Mask on line 9"]
104pub use MR0_A as MR9_A;
105#[doc = "Event Mask on line 10"]
106pub use MR0_A as MR10_A;
107#[doc = "Event Mask on line 11"]
108pub use MR0_A as MR11_A;
109#[doc = "Event Mask on line 12"]
110pub use MR0_A as MR12_A;
111#[doc = "Event Mask on line 13"]
112pub use MR0_A as MR13_A;
113#[doc = "Event Mask on line 14"]
114pub use MR0_A as MR14_A;
115#[doc = "Event Mask on line 15"]
116pub use MR0_A as MR15_A;
117#[doc = "Event Mask on line 16"]
118pub use MR0_A as MR16_A;
119#[doc = "Event Mask on line 17"]
120pub use MR0_A as MR17_A;
121#[doc = "Event Mask on line 18"]
122pub use MR0_A as MR18_A;
123#[doc = "Field `MR1` reader - Event Mask on line 1"]
124pub use MR0_R as MR1_R;
125#[doc = "Field `MR2` reader - Event Mask on line 2"]
126pub use MR0_R as MR2_R;
127#[doc = "Field `MR3` reader - Event Mask on line 3"]
128pub use MR0_R as MR3_R;
129#[doc = "Field `MR4` reader - Event Mask on line 4"]
130pub use MR0_R as MR4_R;
131#[doc = "Field `MR5` reader - Event Mask on line 5"]
132pub use MR0_R as MR5_R;
133#[doc = "Field `MR6` reader - Event Mask on line 6"]
134pub use MR0_R as MR6_R;
135#[doc = "Field `MR7` reader - Event Mask on line 7"]
136pub use MR0_R as MR7_R;
137#[doc = "Field `MR8` reader - Event Mask on line 8"]
138pub use MR0_R as MR8_R;
139#[doc = "Field `MR9` reader - Event Mask on line 9"]
140pub use MR0_R as MR9_R;
141#[doc = "Field `MR10` reader - Event Mask on line 10"]
142pub use MR0_R as MR10_R;
143#[doc = "Field `MR11` reader - Event Mask on line 11"]
144pub use MR0_R as MR11_R;
145#[doc = "Field `MR12` reader - Event Mask on line 12"]
146pub use MR0_R as MR12_R;
147#[doc = "Field `MR13` reader - Event Mask on line 13"]
148pub use MR0_R as MR13_R;
149#[doc = "Field `MR14` reader - Event Mask on line 14"]
150pub use MR0_R as MR14_R;
151#[doc = "Field `MR15` reader - Event Mask on line 15"]
152pub use MR0_R as MR15_R;
153#[doc = "Field `MR16` reader - Event Mask on line 16"]
154pub use MR0_R as MR16_R;
155#[doc = "Field `MR17` reader - Event Mask on line 17"]
156pub use MR0_R as MR17_R;
157#[doc = "Field `MR18` reader - Event Mask on line 18"]
158pub use MR0_R as MR18_R;
159#[doc = "Field `MR1` writer - Event Mask on line 1"]
160pub use MR0_W as MR1_W;
161#[doc = "Field `MR2` writer - Event Mask on line 2"]
162pub use MR0_W as MR2_W;
163#[doc = "Field `MR3` writer - Event Mask on line 3"]
164pub use MR0_W as MR3_W;
165#[doc = "Field `MR4` writer - Event Mask on line 4"]
166pub use MR0_W as MR4_W;
167#[doc = "Field `MR5` writer - Event Mask on line 5"]
168pub use MR0_W as MR5_W;
169#[doc = "Field `MR6` writer - Event Mask on line 6"]
170pub use MR0_W as MR6_W;
171#[doc = "Field `MR7` writer - Event Mask on line 7"]
172pub use MR0_W as MR7_W;
173#[doc = "Field `MR8` writer - Event Mask on line 8"]
174pub use MR0_W as MR8_W;
175#[doc = "Field `MR9` writer - Event Mask on line 9"]
176pub use MR0_W as MR9_W;
177#[doc = "Field `MR10` writer - Event Mask on line 10"]
178pub use MR0_W as MR10_W;
179#[doc = "Field `MR11` writer - Event Mask on line 11"]
180pub use MR0_W as MR11_W;
181#[doc = "Field `MR12` writer - Event Mask on line 12"]
182pub use MR0_W as MR12_W;
183#[doc = "Field `MR13` writer - Event Mask on line 13"]
184pub use MR0_W as MR13_W;
185#[doc = "Field `MR14` writer - Event Mask on line 14"]
186pub use MR0_W as MR14_W;
187#[doc = "Field `MR15` writer - Event Mask on line 15"]
188pub use MR0_W as MR15_W;
189#[doc = "Field `MR16` writer - Event Mask on line 16"]
190pub use MR0_W as MR16_W;
191#[doc = "Field `MR17` writer - Event Mask on line 17"]
192pub use MR0_W as MR17_W;
193#[doc = "Field `MR18` writer - Event Mask on line 18"]
194pub use MR0_W as MR18_W;
195impl R {
196    #[doc = "Bit 0 - Event Mask on line 0"]
197    #[inline(always)]
198    pub fn mr0(&self) -> MR0_R {
199        MR0_R::new((self.bits & 1) != 0)
200    }
201    #[doc = "Bit 1 - Event Mask on line 1"]
202    #[inline(always)]
203    pub fn mr1(&self) -> MR1_R {
204        MR1_R::new(((self.bits >> 1) & 1) != 0)
205    }
206    #[doc = "Bit 2 - Event Mask on line 2"]
207    #[inline(always)]
208    pub fn mr2(&self) -> MR2_R {
209        MR2_R::new(((self.bits >> 2) & 1) != 0)
210    }
211    #[doc = "Bit 3 - Event Mask on line 3"]
212    #[inline(always)]
213    pub fn mr3(&self) -> MR3_R {
214        MR3_R::new(((self.bits >> 3) & 1) != 0)
215    }
216    #[doc = "Bit 4 - Event Mask on line 4"]
217    #[inline(always)]
218    pub fn mr4(&self) -> MR4_R {
219        MR4_R::new(((self.bits >> 4) & 1) != 0)
220    }
221    #[doc = "Bit 5 - Event Mask on line 5"]
222    #[inline(always)]
223    pub fn mr5(&self) -> MR5_R {
224        MR5_R::new(((self.bits >> 5) & 1) != 0)
225    }
226    #[doc = "Bit 6 - Event Mask on line 6"]
227    #[inline(always)]
228    pub fn mr6(&self) -> MR6_R {
229        MR6_R::new(((self.bits >> 6) & 1) != 0)
230    }
231    #[doc = "Bit 7 - Event Mask on line 7"]
232    #[inline(always)]
233    pub fn mr7(&self) -> MR7_R {
234        MR7_R::new(((self.bits >> 7) & 1) != 0)
235    }
236    #[doc = "Bit 8 - Event Mask on line 8"]
237    #[inline(always)]
238    pub fn mr8(&self) -> MR8_R {
239        MR8_R::new(((self.bits >> 8) & 1) != 0)
240    }
241    #[doc = "Bit 9 - Event Mask on line 9"]
242    #[inline(always)]
243    pub fn mr9(&self) -> MR9_R {
244        MR9_R::new(((self.bits >> 9) & 1) != 0)
245    }
246    #[doc = "Bit 10 - Event Mask on line 10"]
247    #[inline(always)]
248    pub fn mr10(&self) -> MR10_R {
249        MR10_R::new(((self.bits >> 10) & 1) != 0)
250    }
251    #[doc = "Bit 11 - Event Mask on line 11"]
252    #[inline(always)]
253    pub fn mr11(&self) -> MR11_R {
254        MR11_R::new(((self.bits >> 11) & 1) != 0)
255    }
256    #[doc = "Bit 12 - Event Mask on line 12"]
257    #[inline(always)]
258    pub fn mr12(&self) -> MR12_R {
259        MR12_R::new(((self.bits >> 12) & 1) != 0)
260    }
261    #[doc = "Bit 13 - Event Mask on line 13"]
262    #[inline(always)]
263    pub fn mr13(&self) -> MR13_R {
264        MR13_R::new(((self.bits >> 13) & 1) != 0)
265    }
266    #[doc = "Bit 14 - Event Mask on line 14"]
267    #[inline(always)]
268    pub fn mr14(&self) -> MR14_R {
269        MR14_R::new(((self.bits >> 14) & 1) != 0)
270    }
271    #[doc = "Bit 15 - Event Mask on line 15"]
272    #[inline(always)]
273    pub fn mr15(&self) -> MR15_R {
274        MR15_R::new(((self.bits >> 15) & 1) != 0)
275    }
276    #[doc = "Bit 16 - Event Mask on line 16"]
277    #[inline(always)]
278    pub fn mr16(&self) -> MR16_R {
279        MR16_R::new(((self.bits >> 16) & 1) != 0)
280    }
281    #[doc = "Bit 17 - Event Mask on line 17"]
282    #[inline(always)]
283    pub fn mr17(&self) -> MR17_R {
284        MR17_R::new(((self.bits >> 17) & 1) != 0)
285    }
286    #[doc = "Bit 18 - Event Mask on line 18"]
287    #[inline(always)]
288    pub fn mr18(&self) -> MR18_R {
289        MR18_R::new(((self.bits >> 18) & 1) != 0)
290    }
291}
292impl W {
293    #[doc = "Bit 0 - Event Mask on line 0"]
294    #[inline(always)]
295    pub fn mr0(&mut self) -> MR0_W<0> {
296        MR0_W::new(self)
297    }
298    #[doc = "Bit 1 - Event Mask on line 1"]
299    #[inline(always)]
300    pub fn mr1(&mut self) -> MR1_W<1> {
301        MR1_W::new(self)
302    }
303    #[doc = "Bit 2 - Event Mask on line 2"]
304    #[inline(always)]
305    pub fn mr2(&mut self) -> MR2_W<2> {
306        MR2_W::new(self)
307    }
308    #[doc = "Bit 3 - Event Mask on line 3"]
309    #[inline(always)]
310    pub fn mr3(&mut self) -> MR3_W<3> {
311        MR3_W::new(self)
312    }
313    #[doc = "Bit 4 - Event Mask on line 4"]
314    #[inline(always)]
315    pub fn mr4(&mut self) -> MR4_W<4> {
316        MR4_W::new(self)
317    }
318    #[doc = "Bit 5 - Event Mask on line 5"]
319    #[inline(always)]
320    pub fn mr5(&mut self) -> MR5_W<5> {
321        MR5_W::new(self)
322    }
323    #[doc = "Bit 6 - Event Mask on line 6"]
324    #[inline(always)]
325    pub fn mr6(&mut self) -> MR6_W<6> {
326        MR6_W::new(self)
327    }
328    #[doc = "Bit 7 - Event Mask on line 7"]
329    #[inline(always)]
330    pub fn mr7(&mut self) -> MR7_W<7> {
331        MR7_W::new(self)
332    }
333    #[doc = "Bit 8 - Event Mask on line 8"]
334    #[inline(always)]
335    pub fn mr8(&mut self) -> MR8_W<8> {
336        MR8_W::new(self)
337    }
338    #[doc = "Bit 9 - Event Mask on line 9"]
339    #[inline(always)]
340    pub fn mr9(&mut self) -> MR9_W<9> {
341        MR9_W::new(self)
342    }
343    #[doc = "Bit 10 - Event Mask on line 10"]
344    #[inline(always)]
345    pub fn mr10(&mut self) -> MR10_W<10> {
346        MR10_W::new(self)
347    }
348    #[doc = "Bit 11 - Event Mask on line 11"]
349    #[inline(always)]
350    pub fn mr11(&mut self) -> MR11_W<11> {
351        MR11_W::new(self)
352    }
353    #[doc = "Bit 12 - Event Mask on line 12"]
354    #[inline(always)]
355    pub fn mr12(&mut self) -> MR12_W<12> {
356        MR12_W::new(self)
357    }
358    #[doc = "Bit 13 - Event Mask on line 13"]
359    #[inline(always)]
360    pub fn mr13(&mut self) -> MR13_W<13> {
361        MR13_W::new(self)
362    }
363    #[doc = "Bit 14 - Event Mask on line 14"]
364    #[inline(always)]
365    pub fn mr14(&mut self) -> MR14_W<14> {
366        MR14_W::new(self)
367    }
368    #[doc = "Bit 15 - Event Mask on line 15"]
369    #[inline(always)]
370    pub fn mr15(&mut self) -> MR15_W<15> {
371        MR15_W::new(self)
372    }
373    #[doc = "Bit 16 - Event Mask on line 16"]
374    #[inline(always)]
375    pub fn mr16(&mut self) -> MR16_W<16> {
376        MR16_W::new(self)
377    }
378    #[doc = "Bit 17 - Event Mask on line 17"]
379    #[inline(always)]
380    pub fn mr17(&mut self) -> MR17_W<17> {
381        MR17_W::new(self)
382    }
383    #[doc = "Bit 18 - Event Mask on line 18"]
384    #[inline(always)]
385    pub fn mr18(&mut self) -> MR18_W<18> {
386        MR18_W::new(self)
387    }
388    #[doc = "Writes raw bits to the register."]
389    #[inline(always)]
390    pub unsafe fn bits(&mut self, bits: u32) -> &mut Self {
391        self.0.bits(bits);
392        self
393    }
394}
395#[doc = "Event mask register (EXTI_EMR)\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 [emr](index.html) module"]
396pub struct EMR_SPEC;
397impl crate::RegisterSpec for EMR_SPEC {
398    type Ux = u32;
399}
400#[doc = "`read()` method returns [emr::R](R) reader structure"]
401impl crate::Readable for EMR_SPEC {
402    type Reader = R;
403}
404#[doc = "`write(|w| ..)` method takes [emr::W](W) writer structure"]
405impl crate::Writable for EMR_SPEC {
406    type Writer = W;
407}
408#[doc = "`reset()` method sets EMR to value 0"]
409impl crate::Resettable for EMR_SPEC {
410    #[inline(always)]
411    fn reset_value() -> Self::Ux {
412        0
413    }
414}