py32f0/py32f030/gpiob/
pupdr.rs1pub struct R(crate::R<PUPDR_SPEC>);
3impl core::ops::Deref for R {
4 type Target = crate::R<PUPDR_SPEC>;
5 #[inline(always)]
6 fn deref(&self) -> &Self::Target {
7 &self.0
8 }
9}
10impl From<crate::R<PUPDR_SPEC>> for R {
11 #[inline(always)]
12 fn from(reader: crate::R<PUPDR_SPEC>) -> Self {
13 R(reader)
14 }
15}
16pub struct W(crate::W<PUPDR_SPEC>);
18impl core::ops::Deref for W {
19 type Target = crate::W<PUPDR_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<PUPDR_SPEC>> for W {
32 #[inline(always)]
33 fn from(writer: crate::W<PUPDR_SPEC>) -> Self {
34 W(writer)
35 }
36}
37pub type PUPD0_R = crate::FieldReader<u8, PUPD0_A>;
39#[derive(Clone, Copy, Debug, PartialEq, Eq)]
43#[repr(u8)]
44pub enum PUPD0_A {
45 Floating = 0,
47 PullUp = 1,
49 PullDown = 2,
51}
52impl From<PUPD0_A> for u8 {
53 #[inline(always)]
54 fn from(variant: PUPD0_A) -> Self {
55 variant as _
56 }
57}
58impl PUPD0_R {
59 #[inline(always)]
61 pub fn variant(&self) -> Option<PUPD0_A> {
62 match self.bits {
63 0 => Some(PUPD0_A::Floating),
64 1 => Some(PUPD0_A::PullUp),
65 2 => Some(PUPD0_A::PullDown),
66 _ => None,
67 }
68 }
69 #[inline(always)]
71 pub fn is_floating(&self) -> bool {
72 *self == PUPD0_A::Floating
73 }
74 #[inline(always)]
76 pub fn is_pull_up(&self) -> bool {
77 *self == PUPD0_A::PullUp
78 }
79 #[inline(always)]
81 pub fn is_pull_down(&self) -> bool {
82 *self == PUPD0_A::PullDown
83 }
84}
85pub type PUPD0_W<'a, const O: u8> = crate::FieldWriter<'a, u32, PUPDR_SPEC, u8, PUPD0_A, 2, O>;
87impl<'a, const O: u8> PUPD0_W<'a, O> {
88 #[inline(always)]
90 pub fn floating(self) -> &'a mut W {
91 self.variant(PUPD0_A::Floating)
92 }
93 #[inline(always)]
95 pub fn pull_up(self) -> &'a mut W {
96 self.variant(PUPD0_A::PullUp)
97 }
98 #[inline(always)]
100 pub fn pull_down(self) -> &'a mut W {
101 self.variant(PUPD0_A::PullDown)
102 }
103}
104pub use PUPD0_R as PUPD1_R;
106pub use PUPD0_R as PUPD2_R;
108pub use PUPD0_R as PUPD3_R;
110pub use PUPD0_R as PUPD4_R;
112pub use PUPD0_R as PUPD5_R;
114pub use PUPD0_R as PUPD6_R;
116pub use PUPD0_R as PUPD7_R;
118pub use PUPD0_R as PUPD8_R;
120pub use PUPD0_W as PUPD1_W;
122pub use PUPD0_W as PUPD2_W;
124pub use PUPD0_W as PUPD3_W;
126pub use PUPD0_W as PUPD4_W;
128pub use PUPD0_W as PUPD5_W;
130pub use PUPD0_W as PUPD6_W;
132pub use PUPD0_W as PUPD7_W;
134pub use PUPD0_W as PUPD8_W;
136impl R {
137 #[inline(always)]
139 pub fn pupd0(&self) -> PUPD0_R {
140 PUPD0_R::new((self.bits & 3) as u8)
141 }
142 #[inline(always)]
144 pub fn pupd1(&self) -> PUPD1_R {
145 PUPD1_R::new(((self.bits >> 2) & 3) as u8)
146 }
147 #[inline(always)]
149 pub fn pupd2(&self) -> PUPD2_R {
150 PUPD2_R::new(((self.bits >> 4) & 3) as u8)
151 }
152 #[inline(always)]
154 pub fn pupd3(&self) -> PUPD3_R {
155 PUPD3_R::new(((self.bits >> 6) & 3) as u8)
156 }
157 #[inline(always)]
159 pub fn pupd4(&self) -> PUPD4_R {
160 PUPD4_R::new(((self.bits >> 8) & 3) as u8)
161 }
162 #[inline(always)]
164 pub fn pupd5(&self) -> PUPD5_R {
165 PUPD5_R::new(((self.bits >> 10) & 3) as u8)
166 }
167 #[inline(always)]
169 pub fn pupd6(&self) -> PUPD6_R {
170 PUPD6_R::new(((self.bits >> 12) & 3) as u8)
171 }
172 #[inline(always)]
174 pub fn pupd7(&self) -> PUPD7_R {
175 PUPD7_R::new(((self.bits >> 14) & 3) as u8)
176 }
177 #[inline(always)]
179 pub fn pupd8(&self) -> PUPD8_R {
180 PUPD8_R::new(((self.bits >> 16) & 3) as u8)
181 }
182}
183impl W {
184 #[inline(always)]
186 #[must_use]
187 pub fn pupd0(&mut self) -> PUPD0_W<0> {
188 PUPD0_W::new(self)
189 }
190 #[inline(always)]
192 #[must_use]
193 pub fn pupd1(&mut self) -> PUPD1_W<2> {
194 PUPD1_W::new(self)
195 }
196 #[inline(always)]
198 #[must_use]
199 pub fn pupd2(&mut self) -> PUPD2_W<4> {
200 PUPD2_W::new(self)
201 }
202 #[inline(always)]
204 #[must_use]
205 pub fn pupd3(&mut self) -> PUPD3_W<6> {
206 PUPD3_W::new(self)
207 }
208 #[inline(always)]
210 #[must_use]
211 pub fn pupd4(&mut self) -> PUPD4_W<8> {
212 PUPD4_W::new(self)
213 }
214 #[inline(always)]
216 #[must_use]
217 pub fn pupd5(&mut self) -> PUPD5_W<10> {
218 PUPD5_W::new(self)
219 }
220 #[inline(always)]
222 #[must_use]
223 pub fn pupd6(&mut self) -> PUPD6_W<12> {
224 PUPD6_W::new(self)
225 }
226 #[inline(always)]
228 #[must_use]
229 pub fn pupd7(&mut self) -> PUPD7_W<14> {
230 PUPD7_W::new(self)
231 }
232 #[inline(always)]
234 #[must_use]
235 pub fn pupd8(&mut self) -> PUPD8_W<16> {
236 PUPD8_W::new(self)
237 }
238 #[inline(always)]
240 pub unsafe fn bits(&mut self, bits: u32) -> &mut Self {
241 self.0.bits(bits);
242 self
243 }
244}
245pub struct PUPDR_SPEC;
251impl crate::RegisterSpec for PUPDR_SPEC {
252 type Ux = u32;
253}
254impl crate::Readable for PUPDR_SPEC {
256 type Reader = R;
257}
258impl crate::Writable for PUPDR_SPEC {
260 type Writer = W;
261 const ZERO_TO_MODIFY_FIELDS_BITMAP: Self::Ux = 0;
262 const ONE_TO_MODIFY_FIELDS_BITMAP: Self::Ux = 0;
263}
264impl crate::Resettable for PUPDR_SPEC {
266 const RESET_VALUE: Self::Ux = 0;
267}