nrf52840_pac/comp/
refsel.rs

1#[doc = "Register `REFSEL` reader"]
2pub struct R(crate::R<REFSEL_SPEC>);
3impl core::ops::Deref for R {
4    type Target = crate::R<REFSEL_SPEC>;
5    #[inline(always)]
6    fn deref(&self) -> &Self::Target {
7        &self.0
8    }
9}
10impl From<crate::R<REFSEL_SPEC>> for R {
11    #[inline(always)]
12    fn from(reader: crate::R<REFSEL_SPEC>) -> Self {
13        R(reader)
14    }
15}
16#[doc = "Register `REFSEL` writer"]
17pub struct W(crate::W<REFSEL_SPEC>);
18impl core::ops::Deref for W {
19    type Target = crate::W<REFSEL_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<REFSEL_SPEC>> for W {
32    #[inline(always)]
33    fn from(writer: crate::W<REFSEL_SPEC>) -> Self {
34        W(writer)
35    }
36}
37#[doc = "Field `REFSEL` reader - Reference select"]
38pub type REFSEL_R = crate::FieldReader<u8, REFSEL_A>;
39#[doc = "Reference select\n\nValue on reset: 4"]
40#[derive(Clone, Copy, Debug, PartialEq)]
41#[repr(u8)]
42pub enum REFSEL_A {
43    #[doc = "0: VREF = internal 1.2 V reference (VDD &gt;= 1.7 V)"]
44    INT1V2 = 0,
45    #[doc = "1: VREF = internal 1.8 V reference (VDD &gt;= VREF + 0.2 V)"]
46    INT1V8 = 1,
47    #[doc = "2: VREF = internal 2.4 V reference (VDD &gt;= VREF + 0.2 V)"]
48    INT2V4 = 2,
49    #[doc = "4: VREF = VDD"]
50    VDD = 4,
51    #[doc = "5: VREF = AREF (VDD &gt;= VREF &gt;= AREFMIN)"]
52    AREF = 5,
53}
54impl From<REFSEL_A> for u8 {
55    #[inline(always)]
56    fn from(variant: REFSEL_A) -> Self {
57        variant as _
58    }
59}
60impl REFSEL_R {
61    #[doc = "Get enumerated values variant"]
62    #[inline(always)]
63    pub fn variant(&self) -> Option<REFSEL_A> {
64        match self.bits {
65            0 => Some(REFSEL_A::INT1V2),
66            1 => Some(REFSEL_A::INT1V8),
67            2 => Some(REFSEL_A::INT2V4),
68            4 => Some(REFSEL_A::VDD),
69            5 => Some(REFSEL_A::AREF),
70            _ => None,
71        }
72    }
73    #[doc = "Checks if the value of the field is `INT1V2`"]
74    #[inline(always)]
75    pub fn is_int1v2(&self) -> bool {
76        *self == REFSEL_A::INT1V2
77    }
78    #[doc = "Checks if the value of the field is `INT1V8`"]
79    #[inline(always)]
80    pub fn is_int1v8(&self) -> bool {
81        *self == REFSEL_A::INT1V8
82    }
83    #[doc = "Checks if the value of the field is `INT2V4`"]
84    #[inline(always)]
85    pub fn is_int2v4(&self) -> bool {
86        *self == REFSEL_A::INT2V4
87    }
88    #[doc = "Checks if the value of the field is `VDD`"]
89    #[inline(always)]
90    pub fn is_vdd(&self) -> bool {
91        *self == REFSEL_A::VDD
92    }
93    #[doc = "Checks if the value of the field is `AREF`"]
94    #[inline(always)]
95    pub fn is_aref(&self) -> bool {
96        *self == REFSEL_A::AREF
97    }
98}
99#[doc = "Field `REFSEL` writer - Reference select"]
100pub type REFSEL_W<'a, const O: u8> = crate::FieldWriter<'a, u32, REFSEL_SPEC, u8, REFSEL_A, 3, O>;
101impl<'a, const O: u8> REFSEL_W<'a, O> {
102    #[doc = "VREF = internal 1.2 V reference (VDD &gt;= 1.7 V)"]
103    #[inline(always)]
104    pub fn int1v2(self) -> &'a mut W {
105        self.variant(REFSEL_A::INT1V2)
106    }
107    #[doc = "VREF = internal 1.8 V reference (VDD &gt;= VREF + 0.2 V)"]
108    #[inline(always)]
109    pub fn int1v8(self) -> &'a mut W {
110        self.variant(REFSEL_A::INT1V8)
111    }
112    #[doc = "VREF = internal 2.4 V reference (VDD &gt;= VREF + 0.2 V)"]
113    #[inline(always)]
114    pub fn int2v4(self) -> &'a mut W {
115        self.variant(REFSEL_A::INT2V4)
116    }
117    #[doc = "VREF = VDD"]
118    #[inline(always)]
119    pub fn vdd(self) -> &'a mut W {
120        self.variant(REFSEL_A::VDD)
121    }
122    #[doc = "VREF = AREF (VDD &gt;= VREF &gt;= AREFMIN)"]
123    #[inline(always)]
124    pub fn aref(self) -> &'a mut W {
125        self.variant(REFSEL_A::AREF)
126    }
127}
128impl R {
129    #[doc = "Bits 0:2 - Reference select"]
130    #[inline(always)]
131    pub fn refsel(&self) -> REFSEL_R {
132        REFSEL_R::new((self.bits & 7) as u8)
133    }
134}
135impl W {
136    #[doc = "Bits 0:2 - Reference select"]
137    #[inline(always)]
138    pub fn refsel(&mut self) -> REFSEL_W<0> {
139        REFSEL_W::new(self)
140    }
141    #[doc = "Writes raw bits to the register."]
142    #[inline(always)]
143    pub unsafe fn bits(&mut self, bits: u32) -> &mut Self {
144        self.0.bits(bits);
145        self
146    }
147}
148#[doc = "Reference source select for single-ended mode\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 [refsel](index.html) module"]
149pub struct REFSEL_SPEC;
150impl crate::RegisterSpec for REFSEL_SPEC {
151    type Ux = u32;
152}
153#[doc = "`read()` method returns [refsel::R](R) reader structure"]
154impl crate::Readable for REFSEL_SPEC {
155    type Reader = R;
156}
157#[doc = "`write(|w| ..)` method takes [refsel::W](W) writer structure"]
158impl crate::Writable for REFSEL_SPEC {
159    type Writer = W;
160}
161#[doc = "`reset()` method sets REFSEL to value 0x04"]
162impl crate::Resettable for REFSEL_SPEC {
163    #[inline(always)]
164    fn reset_value() -> Self::Ux {
165        0x04
166    }
167}