stm32l4/stm32l4x5/i2c1/
oar2.rs1pub type R = crate::R<OAR2rs>;
3pub type W = crate::W<OAR2rs>;
5pub type OA2_R = crate::FieldReader;
7pub type OA2_W<'a, REG> = crate::FieldWriter<'a, REG, 7, u8, crate::Safe>;
9#[cfg_attr(feature = "defmt", derive(defmt::Format))]
13#[derive(Clone, Copy, Debug, PartialEq, Eq)]
14#[repr(u8)]
15pub enum OA2MSK {
16 NoMask = 0,
18 Mask1 = 1,
20 Mask2 = 2,
22 Mask3 = 3,
24 Mask4 = 4,
26 Mask5 = 5,
28 Mask6 = 6,
30 Mask7 = 7,
32}
33impl From<OA2MSK> for u8 {
34 #[inline(always)]
35 fn from(variant: OA2MSK) -> Self {
36 variant as _
37 }
38}
39impl crate::FieldSpec for OA2MSK {
40 type Ux = u8;
41}
42impl crate::IsEnum for OA2MSK {}
43pub type OA2MSK_R = crate::FieldReader<OA2MSK>;
45impl OA2MSK_R {
46 #[inline(always)]
48 pub const fn variant(&self) -> OA2MSK {
49 match self.bits {
50 0 => OA2MSK::NoMask,
51 1 => OA2MSK::Mask1,
52 2 => OA2MSK::Mask2,
53 3 => OA2MSK::Mask3,
54 4 => OA2MSK::Mask4,
55 5 => OA2MSK::Mask5,
56 6 => OA2MSK::Mask6,
57 7 => OA2MSK::Mask7,
58 _ => unreachable!(),
59 }
60 }
61 #[inline(always)]
63 pub fn is_no_mask(&self) -> bool {
64 *self == OA2MSK::NoMask
65 }
66 #[inline(always)]
68 pub fn is_mask1(&self) -> bool {
69 *self == OA2MSK::Mask1
70 }
71 #[inline(always)]
73 pub fn is_mask2(&self) -> bool {
74 *self == OA2MSK::Mask2
75 }
76 #[inline(always)]
78 pub fn is_mask3(&self) -> bool {
79 *self == OA2MSK::Mask3
80 }
81 #[inline(always)]
83 pub fn is_mask4(&self) -> bool {
84 *self == OA2MSK::Mask4
85 }
86 #[inline(always)]
88 pub fn is_mask5(&self) -> bool {
89 *self == OA2MSK::Mask5
90 }
91 #[inline(always)]
93 pub fn is_mask6(&self) -> bool {
94 *self == OA2MSK::Mask6
95 }
96 #[inline(always)]
98 pub fn is_mask7(&self) -> bool {
99 *self == OA2MSK::Mask7
100 }
101}
102pub type OA2MSK_W<'a, REG> = crate::FieldWriter<'a, REG, 3, OA2MSK, crate::Safe>;
104impl<'a, REG> OA2MSK_W<'a, REG>
105where
106 REG: crate::Writable + crate::RegisterSpec,
107 REG::Ux: From<u8>,
108{
109 #[inline(always)]
111 pub fn no_mask(self) -> &'a mut crate::W<REG> {
112 self.variant(OA2MSK::NoMask)
113 }
114 #[inline(always)]
116 pub fn mask1(self) -> &'a mut crate::W<REG> {
117 self.variant(OA2MSK::Mask1)
118 }
119 #[inline(always)]
121 pub fn mask2(self) -> &'a mut crate::W<REG> {
122 self.variant(OA2MSK::Mask2)
123 }
124 #[inline(always)]
126 pub fn mask3(self) -> &'a mut crate::W<REG> {
127 self.variant(OA2MSK::Mask3)
128 }
129 #[inline(always)]
131 pub fn mask4(self) -> &'a mut crate::W<REG> {
132 self.variant(OA2MSK::Mask4)
133 }
134 #[inline(always)]
136 pub fn mask5(self) -> &'a mut crate::W<REG> {
137 self.variant(OA2MSK::Mask5)
138 }
139 #[inline(always)]
141 pub fn mask6(self) -> &'a mut crate::W<REG> {
142 self.variant(OA2MSK::Mask6)
143 }
144 #[inline(always)]
146 pub fn mask7(self) -> &'a mut crate::W<REG> {
147 self.variant(OA2MSK::Mask7)
148 }
149}
150#[cfg_attr(feature = "defmt", derive(defmt::Format))]
154#[derive(Clone, Copy, Debug, PartialEq, Eq)]
155pub enum OA2EN {
156 Disabled = 0,
158 Enabled = 1,
160}
161impl From<OA2EN> for bool {
162 #[inline(always)]
163 fn from(variant: OA2EN) -> Self {
164 variant as u8 != 0
165 }
166}
167pub type OA2EN_R = crate::BitReader<OA2EN>;
169impl OA2EN_R {
170 #[inline(always)]
172 pub const fn variant(&self) -> OA2EN {
173 match self.bits {
174 false => OA2EN::Disabled,
175 true => OA2EN::Enabled,
176 }
177 }
178 #[inline(always)]
180 pub fn is_disabled(&self) -> bool {
181 *self == OA2EN::Disabled
182 }
183 #[inline(always)]
185 pub fn is_enabled(&self) -> bool {
186 *self == OA2EN::Enabled
187 }
188}
189pub type OA2EN_W<'a, REG> = crate::BitWriter<'a, REG, OA2EN>;
191impl<'a, REG> OA2EN_W<'a, REG>
192where
193 REG: crate::Writable + crate::RegisterSpec,
194{
195 #[inline(always)]
197 pub fn disabled(self) -> &'a mut crate::W<REG> {
198 self.variant(OA2EN::Disabled)
199 }
200 #[inline(always)]
202 pub fn enabled(self) -> &'a mut crate::W<REG> {
203 self.variant(OA2EN::Enabled)
204 }
205}
206impl R {
207 #[inline(always)]
209 pub fn oa2(&self) -> OA2_R {
210 OA2_R::new(((self.bits >> 1) & 0x7f) as u8)
211 }
212 #[inline(always)]
214 pub fn oa2msk(&self) -> OA2MSK_R {
215 OA2MSK_R::new(((self.bits >> 8) & 7) as u8)
216 }
217 #[inline(always)]
219 pub fn oa2en(&self) -> OA2EN_R {
220 OA2EN_R::new(((self.bits >> 15) & 1) != 0)
221 }
222}
223impl core::fmt::Debug for R {
224 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
225 f.debug_struct("OAR2")
226 .field("oa2", &self.oa2())
227 .field("oa2msk", &self.oa2msk())
228 .field("oa2en", &self.oa2en())
229 .finish()
230 }
231}
232impl W {
233 #[inline(always)]
235 pub fn oa2(&mut self) -> OA2_W<OAR2rs> {
236 OA2_W::new(self, 1)
237 }
238 #[inline(always)]
240 pub fn oa2msk(&mut self) -> OA2MSK_W<OAR2rs> {
241 OA2MSK_W::new(self, 8)
242 }
243 #[inline(always)]
245 pub fn oa2en(&mut self) -> OA2EN_W<OAR2rs> {
246 OA2EN_W::new(self, 15)
247 }
248}
249pub struct OAR2rs;
255impl crate::RegisterSpec for OAR2rs {
256 type Ux = u32;
257}
258impl crate::Readable for OAR2rs {}
260impl crate::Writable for OAR2rs {
262 type Safety = crate::Unsafe;
263}
264impl crate::Resettable for OAR2rs {}