mik32-pac 1.1.0

Peripheral access crate for the MIK32 Amur (К1948ВК018) RISC-V microcontroller
Documentation
#[doc = "Register `CONFIG` writer"]
pub type W = crate::W<ConfigSpec>;
#[doc = "Field `CLEAR_LOCAL_IRQ` writer - Очистка локального прерывания"]
pub type ClearLocalIrqW<'a, REG> = crate::FieldWriter<'a, REG, 4>;
#[doc = "Field `CLEAR_GLOBAL_IRQ` writer - Очистка глобального прерывания: «1» – снятие запроса на прерывание"]
pub type ClearGlobalIrqW<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `CLEAR_ERROR_IRQ` writer - Очистка прерывания ошибки: «1» – снятие запроса на прерывание"]
pub type ClearErrorIrqW<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Разрешение формирования глобального прерывания\n\nValue on reset: 0"]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum GlobalIrqEna {
    #[doc = "0: Прерывание запрещено"]
    Disable = 0,
    #[doc = "1: Прерывание разрешено"]
    Enable = 1,
}
impl From<GlobalIrqEna> for bool {
    #[inline(always)]
    fn from(variant: GlobalIrqEna) -> Self {
        variant as u8 != 0
    }
}
#[doc = "Field `GLOBAL_IRQ_ENA` writer - Разрешение формирования глобального прерывания"]
pub type GlobalIrqEnaW<'a, REG> = crate::BitWriter<'a, REG, GlobalIrqEna>;
impl<'a, REG> GlobalIrqEnaW<'a, REG>
where
    REG: crate::Writable + crate::RegisterSpec,
{
    #[doc = "Прерывание запрещено"]
    #[inline(always)]
    pub fn disable(self) -> &'a mut crate::W<REG> {
        self.variant(GlobalIrqEna::Disable)
    }
    #[doc = "Прерывание разрешено"]
    #[inline(always)]
    pub fn enable(self) -> &'a mut crate::W<REG> {
        self.variant(GlobalIrqEna::Enable)
    }
}
#[doc = "Разрешение формирования прерывания при ошибке\n\nValue on reset: 0"]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum ErrorIrqEna {
    #[doc = "0: Прерывание запрещено"]
    Disable = 0,
    #[doc = "1: Прерывание разрешено"]
    Enable = 1,
}
impl From<ErrorIrqEna> for bool {
    #[inline(always)]
    fn from(variant: ErrorIrqEna) -> Self {
        variant as u8 != 0
    }
}
#[doc = "Field `ERROR_IRQ_ENA` writer - Разрешение формирования прерывания при ошибке"]
pub type ErrorIrqEnaW<'a, REG> = crate::BitWriter<'a, REG, ErrorIrqEna>;
impl<'a, REG> ErrorIrqEnaW<'a, REG>
where
    REG: crate::Writable + crate::RegisterSpec,
{
    #[doc = "Прерывание запрещено"]
    #[inline(always)]
    pub fn disable(self) -> &'a mut crate::W<REG> {
        self.variant(ErrorIrqEna::Disable)
    }
    #[doc = "Прерывание разрешено"]
    #[inline(always)]
    pub fn enable(self) -> &'a mut crate::W<REG> {
        self.variant(ErrorIrqEna::Enable)
    }
}
#[doc = "Разрешение чтения текущего статуса канала\n\nValue on reset: 0"]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum CurrentValue {
    #[doc = "0: Разрешено (текущие значения)"]
    Disable = 0,
    #[doc = "1: Запрещено (значения при настройке)"]
    Enable = 1,
}
impl From<CurrentValue> for bool {
    #[inline(always)]
    fn from(variant: CurrentValue) -> Self {
        variant as u8 != 0
    }
}
#[doc = "Field `CURRENT_VALUE` writer - Разрешение чтения текущего статуса канала"]
pub type CurrentValueW<'a, REG> = crate::BitWriter<'a, REG, CurrentValue>;
impl<'a, REG> CurrentValueW<'a, REG>
where
    REG: crate::Writable + crate::RegisterSpec,
{
    #[doc = "Разрешено (текущие значения)"]
    #[inline(always)]
    pub fn disable(self) -> &'a mut crate::W<REG> {
        self.variant(CurrentValue::Disable)
    }
    #[doc = "Запрещено (значения при настройке)"]
    #[inline(always)]
    pub fn enable(self) -> &'a mut crate::W<REG> {
        self.variant(CurrentValue::Enable)
    }
}
impl W {
    #[doc = "Bits 0:3 - Очистка локального прерывания"]
    #[inline(always)]
    pub fn clear_local_irq(&mut self) -> ClearLocalIrqW<'_, ConfigSpec> {
        ClearLocalIrqW::new(self, 0)
    }
    #[doc = "Bit 4 - Очистка глобального прерывания: «1» – снятие запроса на прерывание"]
    #[inline(always)]
    pub fn clear_global_irq(&mut self) -> ClearGlobalIrqW<'_, ConfigSpec> {
        ClearGlobalIrqW::new(self, 4)
    }
    #[doc = "Bit 5 - Очистка прерывания ошибки: «1» – снятие запроса на прерывание"]
    #[inline(always)]
    pub fn clear_error_irq(&mut self) -> ClearErrorIrqW<'_, ConfigSpec> {
        ClearErrorIrqW::new(self, 5)
    }
    #[doc = "Bit 6 - Разрешение формирования глобального прерывания"]
    #[inline(always)]
    pub fn global_irq_ena(&mut self) -> GlobalIrqEnaW<'_, ConfigSpec> {
        GlobalIrqEnaW::new(self, 6)
    }
    #[doc = "Bit 7 - Разрешение формирования прерывания при ошибке"]
    #[inline(always)]
    pub fn error_irq_ena(&mut self) -> ErrorIrqEnaW<'_, ConfigSpec> {
        ErrorIrqEnaW::new(self, 7)
    }
    #[doc = "Bit 8 - Разрешение чтения текущего статуса канала"]
    #[inline(always)]
    pub fn current_value(&mut self) -> CurrentValueW<'_, ConfigSpec> {
        CurrentValueW::new(self, 8)
    }
}
#[doc = "Регистр прерываний и настройки контроллера\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`config::W`](W). See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct ConfigSpec;
impl crate::RegisterSpec for ConfigSpec {
    type Ux = u32;
}
#[doc = "`write(|w| ..)` method takes [`config::W`](W) writer structure"]
impl crate::Writable for ConfigSpec {
    type Safety = crate::Unsafe;
}
#[doc = "`reset()` method sets CONFIG to value 0"]
impl crate::Resettable for ConfigSpec {}