#[doc = "Register `RTCCTL23` reader"]
pub type R = crate::R<Rtcctl23Spec>;
#[doc = "Register `RTCCTL23` writer"]
pub type W = crate::W<Rtcctl23Spec>;
#[doc = "Field `RTCCAL0` reader - RTC Calibration Bit 0"]
pub type Rtccal0R = crate::BitReader;
#[doc = "Field `RTCCAL0` writer - RTC Calibration Bit 0"]
pub type Rtccal0W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `RTCCAL1` reader - RTC Calibration Bit 1"]
pub type Rtccal1R = crate::BitReader;
#[doc = "Field `RTCCAL1` writer - RTC Calibration Bit 1"]
pub type Rtccal1W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `RTCCAL2` reader - RTC Calibration Bit 2"]
pub type Rtccal2R = crate::BitReader;
#[doc = "Field `RTCCAL2` writer - RTC Calibration Bit 2"]
pub type Rtccal2W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `RTCCAL3` reader - RTC Calibration Bit 3"]
pub type Rtccal3R = crate::BitReader;
#[doc = "Field `RTCCAL3` writer - RTC Calibration Bit 3"]
pub type Rtccal3W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `RTCCAL4` reader - RTC Calibration Bit 4"]
pub type Rtccal4R = crate::BitReader;
#[doc = "Field `RTCCAL4` writer - RTC Calibration Bit 4"]
pub type Rtccal4W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `RTCCAL5` reader - RTC Calibration Bit 5"]
pub type Rtccal5R = crate::BitReader;
#[doc = "Field `RTCCAL5` writer - RTC Calibration Bit 5"]
pub type Rtccal5W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `RTCCALS` reader - RTC Calibration Sign"]
pub type RtccalsR = crate::BitReader;
#[doc = "Field `RTCCALS` writer - RTC Calibration Sign"]
pub type RtccalsW<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "RTC Calibration Frequency Bit 1\n\nValue on reset: 0"]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[repr(u8)]
pub enum Rtccalf {
#[doc = "0: RTC Calibration Frequency: No Output"]
Rtccalf0 = 0,
#[doc = "1: RTC Calibration Frequency: 512 Hz"]
Rtccalf1 = 1,
#[doc = "2: RTC Calibration Frequency: 256 Hz"]
Rtccalf2 = 2,
#[doc = "3: RTC Calibration Frequency: 1 Hz"]
Rtccalf3 = 3,
}
impl From<Rtccalf> for u8 {
#[inline(always)]
fn from(variant: Rtccalf) -> Self {
variant as _
}
}
impl crate::FieldSpec for Rtccalf {
type Ux = u8;
}
impl crate::IsEnum for Rtccalf {}
#[doc = "Field `RTCCALF` reader - RTC Calibration Frequency Bit 1"]
pub type RtccalfR = crate::FieldReader<Rtccalf>;
impl RtccalfR {
#[doc = "Get enumerated values variant"]
#[inline(always)]
pub const fn variant(&self) -> Rtccalf {
match self.bits {
0 => Rtccalf::Rtccalf0,
1 => Rtccalf::Rtccalf1,
2 => Rtccalf::Rtccalf2,
3 => Rtccalf::Rtccalf3,
_ => unreachable!(),
}
}
#[doc = "RTC Calibration Frequency: No Output"]
#[inline(always)]
pub fn is_rtccalf_0(&self) -> bool {
*self == Rtccalf::Rtccalf0
}
#[doc = "RTC Calibration Frequency: 512 Hz"]
#[inline(always)]
pub fn is_rtccalf_1(&self) -> bool {
*self == Rtccalf::Rtccalf1
}
#[doc = "RTC Calibration Frequency: 256 Hz"]
#[inline(always)]
pub fn is_rtccalf_2(&self) -> bool {
*self == Rtccalf::Rtccalf2
}
#[doc = "RTC Calibration Frequency: 1 Hz"]
#[inline(always)]
pub fn is_rtccalf_3(&self) -> bool {
*self == Rtccalf::Rtccalf3
}
}
#[doc = "Field `RTCCALF` writer - RTC Calibration Frequency Bit 1"]
pub type RtccalfW<'a, REG> = crate::FieldWriter<'a, REG, 2, Rtccalf, crate::Safe>;
impl<'a, REG> RtccalfW<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
REG::Ux: From<u8>,
{
#[doc = "RTC Calibration Frequency: No Output"]
#[inline(always)]
pub fn rtccalf_0(self) -> &'a mut crate::W<REG> {
self.variant(Rtccalf::Rtccalf0)
}
#[doc = "RTC Calibration Frequency: 512 Hz"]
#[inline(always)]
pub fn rtccalf_1(self) -> &'a mut crate::W<REG> {
self.variant(Rtccalf::Rtccalf1)
}
#[doc = "RTC Calibration Frequency: 256 Hz"]
#[inline(always)]
pub fn rtccalf_2(self) -> &'a mut crate::W<REG> {
self.variant(Rtccalf::Rtccalf2)
}
#[doc = "RTC Calibration Frequency: 1 Hz"]
#[inline(always)]
pub fn rtccalf_3(self) -> &'a mut crate::W<REG> {
self.variant(Rtccalf::Rtccalf3)
}
}
impl R {
#[doc = "Bit 0 - RTC Calibration Bit 0"]
#[inline(always)]
pub fn rtccal0(&self) -> Rtccal0R {
Rtccal0R::new((self.bits & 1) != 0)
}
#[doc = "Bit 1 - RTC Calibration Bit 1"]
#[inline(always)]
pub fn rtccal1(&self) -> Rtccal1R {
Rtccal1R::new(((self.bits >> 1) & 1) != 0)
}
#[doc = "Bit 2 - RTC Calibration Bit 2"]
#[inline(always)]
pub fn rtccal2(&self) -> Rtccal2R {
Rtccal2R::new(((self.bits >> 2) & 1) != 0)
}
#[doc = "Bit 3 - RTC Calibration Bit 3"]
#[inline(always)]
pub fn rtccal3(&self) -> Rtccal3R {
Rtccal3R::new(((self.bits >> 3) & 1) != 0)
}
#[doc = "Bit 4 - RTC Calibration Bit 4"]
#[inline(always)]
pub fn rtccal4(&self) -> Rtccal4R {
Rtccal4R::new(((self.bits >> 4) & 1) != 0)
}
#[doc = "Bit 5 - RTC Calibration Bit 5"]
#[inline(always)]
pub fn rtccal5(&self) -> Rtccal5R {
Rtccal5R::new(((self.bits >> 5) & 1) != 0)
}
#[doc = "Bit 7 - RTC Calibration Sign"]
#[inline(always)]
pub fn rtccals(&self) -> RtccalsR {
RtccalsR::new(((self.bits >> 7) & 1) != 0)
}
#[doc = "Bits 8:9 - RTC Calibration Frequency Bit 1"]
#[inline(always)]
pub fn rtccalf(&self) -> RtccalfR {
RtccalfR::new(((self.bits >> 8) & 3) as u8)
}
}
impl W {
#[doc = "Bit 0 - RTC Calibration Bit 0"]
#[inline(always)]
pub fn rtccal0(&mut self) -> Rtccal0W<'_, Rtcctl23Spec> {
Rtccal0W::new(self, 0)
}
#[doc = "Bit 1 - RTC Calibration Bit 1"]
#[inline(always)]
pub fn rtccal1(&mut self) -> Rtccal1W<'_, Rtcctl23Spec> {
Rtccal1W::new(self, 1)
}
#[doc = "Bit 2 - RTC Calibration Bit 2"]
#[inline(always)]
pub fn rtccal2(&mut self) -> Rtccal2W<'_, Rtcctl23Spec> {
Rtccal2W::new(self, 2)
}
#[doc = "Bit 3 - RTC Calibration Bit 3"]
#[inline(always)]
pub fn rtccal3(&mut self) -> Rtccal3W<'_, Rtcctl23Spec> {
Rtccal3W::new(self, 3)
}
#[doc = "Bit 4 - RTC Calibration Bit 4"]
#[inline(always)]
pub fn rtccal4(&mut self) -> Rtccal4W<'_, Rtcctl23Spec> {
Rtccal4W::new(self, 4)
}
#[doc = "Bit 5 - RTC Calibration Bit 5"]
#[inline(always)]
pub fn rtccal5(&mut self) -> Rtccal5W<'_, Rtcctl23Spec> {
Rtccal5W::new(self, 5)
}
#[doc = "Bit 7 - RTC Calibration Sign"]
#[inline(always)]
pub fn rtccals(&mut self) -> RtccalsW<'_, Rtcctl23Spec> {
RtccalsW::new(self, 7)
}
#[doc = "Bits 8:9 - RTC Calibration Frequency Bit 1"]
#[inline(always)]
pub fn rtccalf(&mut self) -> RtccalfW<'_, Rtcctl23Spec> {
RtccalfW::new(self, 8)
}
}
#[doc = "Real Timer Control 2/3\n\nYou can [`read`](crate::Reg::read) this register and get [`rtcctl23::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`rtcctl23::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Rtcctl23Spec;
impl crate::RegisterSpec for Rtcctl23Spec {
type Ux = u16;
}
#[doc = "`read()` method returns [`rtcctl23::R`](R) reader structure"]
impl crate::Readable for Rtcctl23Spec {}
#[doc = "`write(|w| ..)` method takes [`rtcctl23::W`](W) writer structure"]
impl crate::Writable for Rtcctl23Spec {
type Safety = crate::Unsafe;
}
#[doc = "`reset()` method sets RTCCTL23 to value 0"]
impl crate::Resettable for Rtcctl23Spec {}