efm32pg12_pac/acmp0/
extifctrl.rs1#[doc = "Reader of register EXTIFCTRL"]
2pub type R = crate::R<u32, super::EXTIFCTRL>;
3#[doc = "Writer for register EXTIFCTRL"]
4pub type W = crate::W<u32, super::EXTIFCTRL>;
5#[doc = "Register EXTIFCTRL `reset()`'s with value 0"]
6impl crate::ResetValue for super::EXTIFCTRL {
7 type Type = u32;
8 #[inline(always)]
9 fn reset_value() -> Self::Type {
10 0
11 }
12}
13#[doc = "Reader of field `EN`"]
14pub type EN_R = crate::R<bool, bool>;
15#[doc = "Write proxy for field `EN`"]
16pub struct EN_W<'a> {
17 w: &'a mut W,
18}
19impl<'a> EN_W<'a> {
20 #[doc = r"Sets the field bit"]
21 #[inline(always)]
22 pub fn set_bit(self) -> &'a mut W {
23 self.bit(true)
24 }
25 #[doc = r"Clears the field bit"]
26 #[inline(always)]
27 pub fn clear_bit(self) -> &'a mut W {
28 self.bit(false)
29 }
30 #[doc = r"Writes raw bits to the field"]
31 #[inline(always)]
32 pub fn bit(self, value: bool) -> &'a mut W {
33 self.w.bits = (self.w.bits & !0x01) | ((value as u32) & 0x01);
34 self.w
35 }
36}
37#[doc = "APORT Selection for External Interface\n\nValue on reset: 0"]
38#[derive(Clone, Copy, Debug, PartialEq)]
39#[repr(u8)]
40pub enum APORTSEL_A {
41 #[doc = "0: APORT0X used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT0XCH0."]
42 APORT0X = 0,
43 #[doc = "1: APORT0Y used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT0YCH0."]
44 APORT0Y = 1,
45 #[doc = "2: APORT1X used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT1XCH0."]
46 APORT1X = 2,
47 #[doc = "3: APORT1Y used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT1XCH0."]
48 APORT1Y = 3,
49 #[doc = "4: APORT1X/Y used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT1XCH0."]
50 APORT1XY = 4,
51 #[doc = "5: APORT2X used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT2YCH0."]
52 APORT2X = 5,
53 #[doc = "6: APORT2Y used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT2YCH0."]
54 APORT2Y = 6,
55 #[doc = "7: APORT2Y/X used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT2YCH0."]
56 APORT2YX = 7,
57 #[doc = "8: APORT3X used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT3XCH0."]
58 APORT3X = 8,
59 #[doc = "9: APORT3Y used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT3XCH0."]
60 APORT3Y = 9,
61 #[doc = "10: APORT3X/Y used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT3XCH0."]
62 APORT3XY = 10,
63 #[doc = "11: APORT4X used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT4YCH0."]
64 APORT4X = 11,
65 #[doc = "12: APORT4Y used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT4YCH0."]
66 APORT4Y = 12,
67 #[doc = "13: APORT4Y/X used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT4YCH0."]
68 APORT4YX = 13,
69}
70impl From<APORTSEL_A> for u8 {
71 #[inline(always)]
72 fn from(variant: APORTSEL_A) -> Self {
73 variant as _
74 }
75}
76#[doc = "Reader of field `APORTSEL`"]
77pub type APORTSEL_R = crate::R<u8, APORTSEL_A>;
78impl APORTSEL_R {
79 #[doc = r"Get enumerated values variant"]
80 #[inline(always)]
81 pub fn variant(&self) -> crate::Variant<u8, APORTSEL_A> {
82 use crate::Variant::*;
83 match self.bits {
84 0 => Val(APORTSEL_A::APORT0X),
85 1 => Val(APORTSEL_A::APORT0Y),
86 2 => Val(APORTSEL_A::APORT1X),
87 3 => Val(APORTSEL_A::APORT1Y),
88 4 => Val(APORTSEL_A::APORT1XY),
89 5 => Val(APORTSEL_A::APORT2X),
90 6 => Val(APORTSEL_A::APORT2Y),
91 7 => Val(APORTSEL_A::APORT2YX),
92 8 => Val(APORTSEL_A::APORT3X),
93 9 => Val(APORTSEL_A::APORT3Y),
94 10 => Val(APORTSEL_A::APORT3XY),
95 11 => Val(APORTSEL_A::APORT4X),
96 12 => Val(APORTSEL_A::APORT4Y),
97 13 => Val(APORTSEL_A::APORT4YX),
98 i => Res(i),
99 }
100 }
101 #[doc = "Checks if the value of the field is `APORT0X`"]
102 #[inline(always)]
103 pub fn is_aport0x(&self) -> bool {
104 *self == APORTSEL_A::APORT0X
105 }
106 #[doc = "Checks if the value of the field is `APORT0Y`"]
107 #[inline(always)]
108 pub fn is_aport0y(&self) -> bool {
109 *self == APORTSEL_A::APORT0Y
110 }
111 #[doc = "Checks if the value of the field is `APORT1X`"]
112 #[inline(always)]
113 pub fn is_aport1x(&self) -> bool {
114 *self == APORTSEL_A::APORT1X
115 }
116 #[doc = "Checks if the value of the field is `APORT1Y`"]
117 #[inline(always)]
118 pub fn is_aport1y(&self) -> bool {
119 *self == APORTSEL_A::APORT1Y
120 }
121 #[doc = "Checks if the value of the field is `APORT1XY`"]
122 #[inline(always)]
123 pub fn is_aport1xy(&self) -> bool {
124 *self == APORTSEL_A::APORT1XY
125 }
126 #[doc = "Checks if the value of the field is `APORT2X`"]
127 #[inline(always)]
128 pub fn is_aport2x(&self) -> bool {
129 *self == APORTSEL_A::APORT2X
130 }
131 #[doc = "Checks if the value of the field is `APORT2Y`"]
132 #[inline(always)]
133 pub fn is_aport2y(&self) -> bool {
134 *self == APORTSEL_A::APORT2Y
135 }
136 #[doc = "Checks if the value of the field is `APORT2YX`"]
137 #[inline(always)]
138 pub fn is_aport2yx(&self) -> bool {
139 *self == APORTSEL_A::APORT2YX
140 }
141 #[doc = "Checks if the value of the field is `APORT3X`"]
142 #[inline(always)]
143 pub fn is_aport3x(&self) -> bool {
144 *self == APORTSEL_A::APORT3X
145 }
146 #[doc = "Checks if the value of the field is `APORT3Y`"]
147 #[inline(always)]
148 pub fn is_aport3y(&self) -> bool {
149 *self == APORTSEL_A::APORT3Y
150 }
151 #[doc = "Checks if the value of the field is `APORT3XY`"]
152 #[inline(always)]
153 pub fn is_aport3xy(&self) -> bool {
154 *self == APORTSEL_A::APORT3XY
155 }
156 #[doc = "Checks if the value of the field is `APORT4X`"]
157 #[inline(always)]
158 pub fn is_aport4x(&self) -> bool {
159 *self == APORTSEL_A::APORT4X
160 }
161 #[doc = "Checks if the value of the field is `APORT4Y`"]
162 #[inline(always)]
163 pub fn is_aport4y(&self) -> bool {
164 *self == APORTSEL_A::APORT4Y
165 }
166 #[doc = "Checks if the value of the field is `APORT4YX`"]
167 #[inline(always)]
168 pub fn is_aport4yx(&self) -> bool {
169 *self == APORTSEL_A::APORT4YX
170 }
171}
172#[doc = "Write proxy for field `APORTSEL`"]
173pub struct APORTSEL_W<'a> {
174 w: &'a mut W,
175}
176impl<'a> APORTSEL_W<'a> {
177 #[doc = r"Writes `variant` to the field"]
178 #[inline(always)]
179 pub fn variant(self, variant: APORTSEL_A) -> &'a mut W {
180 unsafe { self.bits(variant.into()) }
181 }
182 #[doc = "APORT0X used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT0XCH0."]
183 #[inline(always)]
184 pub fn aport0x(self) -> &'a mut W {
185 self.variant(APORTSEL_A::APORT0X)
186 }
187 #[doc = "APORT0Y used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT0YCH0."]
188 #[inline(always)]
189 pub fn aport0y(self) -> &'a mut W {
190 self.variant(APORTSEL_A::APORT0Y)
191 }
192 #[doc = "APORT1X used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT1XCH0."]
193 #[inline(always)]
194 pub fn aport1x(self) -> &'a mut W {
195 self.variant(APORTSEL_A::APORT1X)
196 }
197 #[doc = "APORT1Y used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT1XCH0."]
198 #[inline(always)]
199 pub fn aport1y(self) -> &'a mut W {
200 self.variant(APORTSEL_A::APORT1Y)
201 }
202 #[doc = "APORT1X/Y used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT1XCH0."]
203 #[inline(always)]
204 pub fn aport1xy(self) -> &'a mut W {
205 self.variant(APORTSEL_A::APORT1XY)
206 }
207 #[doc = "APORT2X used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT2YCH0."]
208 #[inline(always)]
209 pub fn aport2x(self) -> &'a mut W {
210 self.variant(APORTSEL_A::APORT2X)
211 }
212 #[doc = "APORT2Y used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT2YCH0."]
213 #[inline(always)]
214 pub fn aport2y(self) -> &'a mut W {
215 self.variant(APORTSEL_A::APORT2Y)
216 }
217 #[doc = "APORT2Y/X used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT2YCH0."]
218 #[inline(always)]
219 pub fn aport2yx(self) -> &'a mut W {
220 self.variant(APORTSEL_A::APORT2YX)
221 }
222 #[doc = "APORT3X used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT3XCH0."]
223 #[inline(always)]
224 pub fn aport3x(self) -> &'a mut W {
225 self.variant(APORTSEL_A::APORT3X)
226 }
227 #[doc = "APORT3Y used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT3XCH0."]
228 #[inline(always)]
229 pub fn aport3y(self) -> &'a mut W {
230 self.variant(APORTSEL_A::APORT3Y)
231 }
232 #[doc = "APORT3X/Y used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT3XCH0."]
233 #[inline(always)]
234 pub fn aport3xy(self) -> &'a mut W {
235 self.variant(APORTSEL_A::APORT3XY)
236 }
237 #[doc = "APORT4X used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT4YCH0."]
238 #[inline(always)]
239 pub fn aport4x(self) -> &'a mut W {
240 self.variant(APORTSEL_A::APORT4X)
241 }
242 #[doc = "APORT4Y used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT4YCH0."]
243 #[inline(always)]
244 pub fn aport4y(self) -> &'a mut W {
245 self.variant(APORTSEL_A::APORT4Y)
246 }
247 #[doc = "APORT4Y/X used. EXT_BASE = ACMP_INPUTSEL_POSSEL_APORT4YCH0."]
248 #[inline(always)]
249 pub fn aport4yx(self) -> &'a mut W {
250 self.variant(APORTSEL_A::APORT4YX)
251 }
252 #[doc = r"Writes raw bits to the field"]
253 #[inline(always)]
254 pub unsafe fn bits(self, value: u8) -> &'a mut W {
255 self.w.bits = (self.w.bits & !(0x0f << 4)) | (((value as u32) & 0x0f) << 4);
256 self.w
257 }
258}
259impl R {
260 #[doc = "Bit 0 - Enable External Interface"]
261 #[inline(always)]
262 pub fn en(&self) -> EN_R {
263 EN_R::new((self.bits & 0x01) != 0)
264 }
265 #[doc = "Bits 4:7 - APORT Selection for External Interface"]
266 #[inline(always)]
267 pub fn aportsel(&self) -> APORTSEL_R {
268 APORTSEL_R::new(((self.bits >> 4) & 0x0f) as u8)
269 }
270}
271impl W {
272 #[doc = "Bit 0 - Enable External Interface"]
273 #[inline(always)]
274 pub fn en(&mut self) -> EN_W {
275 EN_W { w: self }
276 }
277 #[doc = "Bits 4:7 - APORT Selection for External Interface"]
278 #[inline(always)]
279 pub fn aportsel(&mut self) -> APORTSEL_W {
280 APORTSEL_W { w: self }
281 }
282}