efm32pg12_pac/adc0/
biasprog.rs1#[doc = "Reader of register BIASPROG"]
2pub type R = crate::R<u32, super::BIASPROG>;
3#[doc = "Writer for register BIASPROG"]
4pub type W = crate::W<u32, super::BIASPROG>;
5#[doc = "Register BIASPROG `reset()`'s with value 0"]
6impl crate::ResetValue for super::BIASPROG {
7 type Type = u32;
8 #[inline(always)]
9 fn reset_value() -> Self::Type {
10 0
11 }
12}
13#[doc = "Bias Programming Value of Analog ADC Block\n\nValue on reset: 0"]
14#[derive(Clone, Copy, Debug, PartialEq)]
15#[repr(u8)]
16pub enum ADCBIASPROG_A {
17 #[doc = "0: Normal power (use for 1Msps operation)"]
18 NORMAL = 0,
19 #[doc = "4: Scaling bias to 1/2"]
20 SCALE2 = 4,
21 #[doc = "8: Scaling bias to 1/4"]
22 SCALE4 = 8,
23 #[doc = "12: Scaling bias to 1/8"]
24 SCALE8 = 12,
25 #[doc = "14: Scaling bias to 1/16"]
26 SCALE16 = 14,
27 #[doc = "15: Scaling bias to 1/32"]
28 SCALE32 = 15,
29}
30impl From<ADCBIASPROG_A> for u8 {
31 #[inline(always)]
32 fn from(variant: ADCBIASPROG_A) -> Self {
33 variant as _
34 }
35}
36#[doc = "Reader of field `ADCBIASPROG`"]
37pub type ADCBIASPROG_R = crate::R<u8, ADCBIASPROG_A>;
38impl ADCBIASPROG_R {
39 #[doc = r"Get enumerated values variant"]
40 #[inline(always)]
41 pub fn variant(&self) -> crate::Variant<u8, ADCBIASPROG_A> {
42 use crate::Variant::*;
43 match self.bits {
44 0 => Val(ADCBIASPROG_A::NORMAL),
45 4 => Val(ADCBIASPROG_A::SCALE2),
46 8 => Val(ADCBIASPROG_A::SCALE4),
47 12 => Val(ADCBIASPROG_A::SCALE8),
48 14 => Val(ADCBIASPROG_A::SCALE16),
49 15 => Val(ADCBIASPROG_A::SCALE32),
50 i => Res(i),
51 }
52 }
53 #[doc = "Checks if the value of the field is `NORMAL`"]
54 #[inline(always)]
55 pub fn is_normal(&self) -> bool {
56 *self == ADCBIASPROG_A::NORMAL
57 }
58 #[doc = "Checks if the value of the field is `SCALE2`"]
59 #[inline(always)]
60 pub fn is_scale2(&self) -> bool {
61 *self == ADCBIASPROG_A::SCALE2
62 }
63 #[doc = "Checks if the value of the field is `SCALE4`"]
64 #[inline(always)]
65 pub fn is_scale4(&self) -> bool {
66 *self == ADCBIASPROG_A::SCALE4
67 }
68 #[doc = "Checks if the value of the field is `SCALE8`"]
69 #[inline(always)]
70 pub fn is_scale8(&self) -> bool {
71 *self == ADCBIASPROG_A::SCALE8
72 }
73 #[doc = "Checks if the value of the field is `SCALE16`"]
74 #[inline(always)]
75 pub fn is_scale16(&self) -> bool {
76 *self == ADCBIASPROG_A::SCALE16
77 }
78 #[doc = "Checks if the value of the field is `SCALE32`"]
79 #[inline(always)]
80 pub fn is_scale32(&self) -> bool {
81 *self == ADCBIASPROG_A::SCALE32
82 }
83}
84#[doc = "Write proxy for field `ADCBIASPROG`"]
85pub struct ADCBIASPROG_W<'a> {
86 w: &'a mut W,
87}
88impl<'a> ADCBIASPROG_W<'a> {
89 #[doc = r"Writes `variant` to the field"]
90 #[inline(always)]
91 pub fn variant(self, variant: ADCBIASPROG_A) -> &'a mut W {
92 unsafe { self.bits(variant.into()) }
93 }
94 #[doc = "Normal power (use for 1Msps operation)"]
95 #[inline(always)]
96 pub fn normal(self) -> &'a mut W {
97 self.variant(ADCBIASPROG_A::NORMAL)
98 }
99 #[doc = "Scaling bias to 1/2"]
100 #[inline(always)]
101 pub fn scale2(self) -> &'a mut W {
102 self.variant(ADCBIASPROG_A::SCALE2)
103 }
104 #[doc = "Scaling bias to 1/4"]
105 #[inline(always)]
106 pub fn scale4(self) -> &'a mut W {
107 self.variant(ADCBIASPROG_A::SCALE4)
108 }
109 #[doc = "Scaling bias to 1/8"]
110 #[inline(always)]
111 pub fn scale8(self) -> &'a mut W {
112 self.variant(ADCBIASPROG_A::SCALE8)
113 }
114 #[doc = "Scaling bias to 1/16"]
115 #[inline(always)]
116 pub fn scale16(self) -> &'a mut W {
117 self.variant(ADCBIASPROG_A::SCALE16)
118 }
119 #[doc = "Scaling bias to 1/32"]
120 #[inline(always)]
121 pub fn scale32(self) -> &'a mut W {
122 self.variant(ADCBIASPROG_A::SCALE32)
123 }
124 #[doc = r"Writes raw bits to the field"]
125 #[inline(always)]
126 pub unsafe fn bits(self, value: u8) -> &'a mut W {
127 self.w.bits = (self.w.bits & !0x0f) | ((value as u32) & 0x0f);
128 self.w
129 }
130}
131#[doc = "Reader of field `VFAULTCLR`"]
132pub type VFAULTCLR_R = crate::R<bool, bool>;
133#[doc = "Write proxy for field `VFAULTCLR`"]
134pub struct VFAULTCLR_W<'a> {
135 w: &'a mut W,
136}
137impl<'a> VFAULTCLR_W<'a> {
138 #[doc = r"Sets the field bit"]
139 #[inline(always)]
140 pub fn set_bit(self) -> &'a mut W {
141 self.bit(true)
142 }
143 #[doc = r"Clears the field bit"]
144 #[inline(always)]
145 pub fn clear_bit(self) -> &'a mut W {
146 self.bit(false)
147 }
148 #[doc = r"Writes raw bits to the field"]
149 #[inline(always)]
150 pub fn bit(self, value: bool) -> &'a mut W {
151 self.w.bits = (self.w.bits & !(0x01 << 12)) | (((value as u32) & 0x01) << 12);
152 self.w
153 }
154}
155#[doc = "Reader of field `GPBIASACC`"]
156pub type GPBIASACC_R = crate::R<bool, bool>;
157#[doc = "Write proxy for field `GPBIASACC`"]
158pub struct GPBIASACC_W<'a> {
159 w: &'a mut W,
160}
161impl<'a> GPBIASACC_W<'a> {
162 #[doc = r"Sets the field bit"]
163 #[inline(always)]
164 pub fn set_bit(self) -> &'a mut W {
165 self.bit(true)
166 }
167 #[doc = r"Clears the field bit"]
168 #[inline(always)]
169 pub fn clear_bit(self) -> &'a mut W {
170 self.bit(false)
171 }
172 #[doc = r"Writes raw bits to the field"]
173 #[inline(always)]
174 pub fn bit(self, value: bool) -> &'a mut W {
175 self.w.bits = (self.w.bits & !(0x01 << 16)) | (((value as u32) & 0x01) << 16);
176 self.w
177 }
178}
179impl R {
180 #[doc = "Bits 0:3 - Bias Programming Value of Analog ADC Block"]
181 #[inline(always)]
182 pub fn adcbiasprog(&self) -> ADCBIASPROG_R {
183 ADCBIASPROG_R::new((self.bits & 0x0f) as u8)
184 }
185 #[doc = "Bit 12 - Clear VREFOF Flag"]
186 #[inline(always)]
187 pub fn vfaultclr(&self) -> VFAULTCLR_R {
188 VFAULTCLR_R::new(((self.bits >> 12) & 0x01) != 0)
189 }
190 #[doc = "Bit 16 - Accuracy Setting for the System Bias During ADC Operation"]
191 #[inline(always)]
192 pub fn gpbiasacc(&self) -> GPBIASACC_R {
193 GPBIASACC_R::new(((self.bits >> 16) & 0x01) != 0)
194 }
195}
196impl W {
197 #[doc = "Bits 0:3 - Bias Programming Value of Analog ADC Block"]
198 #[inline(always)]
199 pub fn adcbiasprog(&mut self) -> ADCBIASPROG_W {
200 ADCBIASPROG_W { w: self }
201 }
202 #[doc = "Bit 12 - Clear VREFOF Flag"]
203 #[inline(always)]
204 pub fn vfaultclr(&mut self) -> VFAULTCLR_W {
205 VFAULTCLR_W { w: self }
206 }
207 #[doc = "Bit 16 - Accuracy Setting for the System Bias During ADC Operation"]
208 #[inline(always)]
209 pub fn gpbiasacc(&mut self) -> GPBIASACC_W {
210 GPBIASACC_W { w: self }
211 }
212}