cc430f5137 0.1.0

Peripheral access API for CC430F5137 microcontroller
#[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 {}