pub type R = crate::R<OAR2rs>;
pub type W = crate::W<OAR2rs>;
pub type OA2_R = crate::FieldReader;
pub type OA2_W<'a, REG> = crate::FieldWriter<'a, REG, 7, u8, crate::Safe>;
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[repr(u8)]
pub enum OA2MSK {
NoMask = 0,
Mask1 = 1,
Mask2 = 2,
Mask3 = 3,
Mask4 = 4,
Mask5 = 5,
Mask6 = 6,
Mask7 = 7,
}
impl From<OA2MSK> for u8 {
#[inline(always)]
fn from(variant: OA2MSK) -> Self {
variant as _
}
}
impl crate::FieldSpec for OA2MSK {
type Ux = u8;
}
impl crate::IsEnum for OA2MSK {}
pub type OA2MSK_R = crate::FieldReader<OA2MSK>;
impl OA2MSK_R {
#[inline(always)]
pub const fn variant(&self) -> OA2MSK {
match self.bits {
0 => OA2MSK::NoMask,
1 => OA2MSK::Mask1,
2 => OA2MSK::Mask2,
3 => OA2MSK::Mask3,
4 => OA2MSK::Mask4,
5 => OA2MSK::Mask5,
6 => OA2MSK::Mask6,
7 => OA2MSK::Mask7,
_ => unreachable!(),
}
}
#[inline(always)]
pub fn is_no_mask(&self) -> bool {
*self == OA2MSK::NoMask
}
#[inline(always)]
pub fn is_mask1(&self) -> bool {
*self == OA2MSK::Mask1
}
#[inline(always)]
pub fn is_mask2(&self) -> bool {
*self == OA2MSK::Mask2
}
#[inline(always)]
pub fn is_mask3(&self) -> bool {
*self == OA2MSK::Mask3
}
#[inline(always)]
pub fn is_mask4(&self) -> bool {
*self == OA2MSK::Mask4
}
#[inline(always)]
pub fn is_mask5(&self) -> bool {
*self == OA2MSK::Mask5
}
#[inline(always)]
pub fn is_mask6(&self) -> bool {
*self == OA2MSK::Mask6
}
#[inline(always)]
pub fn is_mask7(&self) -> bool {
*self == OA2MSK::Mask7
}
}
pub type OA2MSK_W<'a, REG> = crate::FieldWriter<'a, REG, 3, OA2MSK, crate::Safe>;
impl<'a, REG> OA2MSK_W<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
REG::Ux: From<u8>,
{
#[inline(always)]
pub fn no_mask(self) -> &'a mut crate::W<REG> {
self.variant(OA2MSK::NoMask)
}
#[inline(always)]
pub fn mask1(self) -> &'a mut crate::W<REG> {
self.variant(OA2MSK::Mask1)
}
#[inline(always)]
pub fn mask2(self) -> &'a mut crate::W<REG> {
self.variant(OA2MSK::Mask2)
}
#[inline(always)]
pub fn mask3(self) -> &'a mut crate::W<REG> {
self.variant(OA2MSK::Mask3)
}
#[inline(always)]
pub fn mask4(self) -> &'a mut crate::W<REG> {
self.variant(OA2MSK::Mask4)
}
#[inline(always)]
pub fn mask5(self) -> &'a mut crate::W<REG> {
self.variant(OA2MSK::Mask5)
}
#[inline(always)]
pub fn mask6(self) -> &'a mut crate::W<REG> {
self.variant(OA2MSK::Mask6)
}
#[inline(always)]
pub fn mask7(self) -> &'a mut crate::W<REG> {
self.variant(OA2MSK::Mask7)
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum OA2EN {
Disabled = 0,
Enabled = 1,
}
impl From<OA2EN> for bool {
#[inline(always)]
fn from(variant: OA2EN) -> Self {
variant as u8 != 0
}
}
pub type OA2EN_R = crate::BitReader<OA2EN>;
impl OA2EN_R {
#[inline(always)]
pub const fn variant(&self) -> OA2EN {
match self.bits {
false => OA2EN::Disabled,
true => OA2EN::Enabled,
}
}
#[inline(always)]
pub fn is_disabled(&self) -> bool {
*self == OA2EN::Disabled
}
#[inline(always)]
pub fn is_enabled(&self) -> bool {
*self == OA2EN::Enabled
}
}
pub type OA2EN_W<'a, REG> = crate::BitWriter<'a, REG, OA2EN>;
impl<'a, REG> OA2EN_W<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
{
#[inline(always)]
pub fn disabled(self) -> &'a mut crate::W<REG> {
self.variant(OA2EN::Disabled)
}
#[inline(always)]
pub fn enabled(self) -> &'a mut crate::W<REG> {
self.variant(OA2EN::Enabled)
}
}
impl R {
#[inline(always)]
pub fn oa2(&self) -> OA2_R {
OA2_R::new(((self.bits >> 1) & 0x7f) as u8)
}
#[inline(always)]
pub fn oa2msk(&self) -> OA2MSK_R {
OA2MSK_R::new(((self.bits >> 8) & 7) as u8)
}
#[inline(always)]
pub fn oa2en(&self) -> OA2EN_R {
OA2EN_R::new(((self.bits >> 15) & 1) != 0)
}
}
impl core::fmt::Debug for R {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("OAR2")
.field("oa2", &self.oa2())
.field("oa2msk", &self.oa2msk())
.field("oa2en", &self.oa2en())
.finish()
}
}
impl W {
#[inline(always)]
pub fn oa2(&mut self) -> OA2_W<OAR2rs> {
OA2_W::new(self, 1)
}
#[inline(always)]
pub fn oa2msk(&mut self) -> OA2MSK_W<OAR2rs> {
OA2MSK_W::new(self, 8)
}
#[inline(always)]
pub fn oa2en(&mut self) -> OA2EN_W<OAR2rs> {
OA2EN_W::new(self, 15)
}
}
pub struct OAR2rs;
impl crate::RegisterSpec for OAR2rs {
type Ux = u32;
}
impl crate::Readable for OAR2rs {}
impl crate::Writable for OAR2rs {
type Safety = crate::Unsafe;
}
impl crate::Resettable for OAR2rs {}