pub type R = crate::R<BDTRrs>;
pub type W = crate::W<BDTRrs>;
pub type DTG_R = crate::FieldReader;
pub type DTG_W<'a, REG> = crate::FieldWriter<'a, REG, 8, u8, crate::Safe>;
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[repr(u8)]
pub enum LOCK {
Off = 0,
Level1 = 1,
Level2 = 2,
Level3 = 3,
}
impl From<LOCK> for u8 {
#[inline(always)]
fn from(variant: LOCK) -> Self {
variant as _
}
}
impl crate::FieldSpec for LOCK {
type Ux = u8;
}
impl crate::IsEnum for LOCK {}
pub type LOCK_R = crate::FieldReader<LOCK>;
impl LOCK_R {
#[inline(always)]
pub const fn variant(&self) -> LOCK {
match self.bits {
0 => LOCK::Off,
1 => LOCK::Level1,
2 => LOCK::Level2,
3 => LOCK::Level3,
_ => unreachable!(),
}
}
#[inline(always)]
pub fn is_off(&self) -> bool {
*self == LOCK::Off
}
#[inline(always)]
pub fn is_level1(&self) -> bool {
*self == LOCK::Level1
}
#[inline(always)]
pub fn is_level2(&self) -> bool {
*self == LOCK::Level2
}
#[inline(always)]
pub fn is_level3(&self) -> bool {
*self == LOCK::Level3
}
}
pub type LOCK_W<'a, REG> = crate::FieldWriter<'a, REG, 2, LOCK, crate::Safe>;
impl<'a, REG> LOCK_W<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
REG::Ux: From<u8>,
{
#[inline(always)]
pub fn off(self) -> &'a mut crate::W<REG> {
self.variant(LOCK::Off)
}
#[inline(always)]
pub fn level1(self) -> &'a mut crate::W<REG> {
self.variant(LOCK::Level1)
}
#[inline(always)]
pub fn level2(self) -> &'a mut crate::W<REG> {
self.variant(LOCK::Level2)
}
#[inline(always)]
pub fn level3(self) -> &'a mut crate::W<REG> {
self.variant(LOCK::Level3)
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum OSSI {
HiZ = 0,
IdleLevel = 1,
}
impl From<OSSI> for bool {
#[inline(always)]
fn from(variant: OSSI) -> Self {
variant as u8 != 0
}
}
pub type OSSI_R = crate::BitReader<OSSI>;
impl OSSI_R {
#[inline(always)]
pub const fn variant(&self) -> OSSI {
match self.bits {
false => OSSI::HiZ,
true => OSSI::IdleLevel,
}
}
#[inline(always)]
pub fn is_hi_z(&self) -> bool {
*self == OSSI::HiZ
}
#[inline(always)]
pub fn is_idle_level(&self) -> bool {
*self == OSSI::IdleLevel
}
}
pub type OSSI_W<'a, REG> = crate::BitWriter<'a, REG, OSSI>;
impl<'a, REG> OSSI_W<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
{
#[inline(always)]
pub fn hi_z(self) -> &'a mut crate::W<REG> {
self.variant(OSSI::HiZ)
}
#[inline(always)]
pub fn idle_level(self) -> &'a mut crate::W<REG> {
self.variant(OSSI::IdleLevel)
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum OSSR {
HiZ = 0,
IdleLevel = 1,
}
impl From<OSSR> for bool {
#[inline(always)]
fn from(variant: OSSR) -> Self {
variant as u8 != 0
}
}
pub type OSSR_R = crate::BitReader<OSSR>;
impl OSSR_R {
#[inline(always)]
pub const fn variant(&self) -> OSSR {
match self.bits {
false => OSSR::HiZ,
true => OSSR::IdleLevel,
}
}
#[inline(always)]
pub fn is_hi_z(&self) -> bool {
*self == OSSR::HiZ
}
#[inline(always)]
pub fn is_idle_level(&self) -> bool {
*self == OSSR::IdleLevel
}
}
pub type OSSR_W<'a, REG> = crate::BitWriter<'a, REG, OSSR>;
impl<'a, REG> OSSR_W<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
{
#[inline(always)]
pub fn hi_z(self) -> &'a mut crate::W<REG> {
self.variant(OSSR::HiZ)
}
#[inline(always)]
pub fn idle_level(self) -> &'a mut crate::W<REG> {
self.variant(OSSR::IdleLevel)
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum BKE {
Disabled = 0,
Enabled = 1,
}
impl From<BKE> for bool {
#[inline(always)]
fn from(variant: BKE) -> Self {
variant as u8 != 0
}
}
pub type BKE_R = crate::BitReader<BKE>;
impl BKE_R {
#[inline(always)]
pub const fn variant(&self) -> BKE {
match self.bits {
false => BKE::Disabled,
true => BKE::Enabled,
}
}
#[inline(always)]
pub fn is_disabled(&self) -> bool {
*self == BKE::Disabled
}
#[inline(always)]
pub fn is_enabled(&self) -> bool {
*self == BKE::Enabled
}
}
pub type BKE_W<'a, REG> = crate::BitWriter<'a, REG, BKE>;
impl<'a, REG> BKE_W<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
{
#[inline(always)]
pub fn disabled(self) -> &'a mut crate::W<REG> {
self.variant(BKE::Disabled)
}
#[inline(always)]
pub fn enabled(self) -> &'a mut crate::W<REG> {
self.variant(BKE::Enabled)
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum BKP {
ActiveLow = 0,
ActiveHigh = 1,
}
impl From<BKP> for bool {
#[inline(always)]
fn from(variant: BKP) -> Self {
variant as u8 != 0
}
}
pub type BKP_R = crate::BitReader<BKP>;
impl BKP_R {
#[inline(always)]
pub const fn variant(&self) -> BKP {
match self.bits {
false => BKP::ActiveLow,
true => BKP::ActiveHigh,
}
}
#[inline(always)]
pub fn is_active_low(&self) -> bool {
*self == BKP::ActiveLow
}
#[inline(always)]
pub fn is_active_high(&self) -> bool {
*self == BKP::ActiveHigh
}
}
pub type BKP_W<'a, REG> = crate::BitWriter<'a, REG, BKP>;
impl<'a, REG> BKP_W<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
{
#[inline(always)]
pub fn active_low(self) -> &'a mut crate::W<REG> {
self.variant(BKP::ActiveLow)
}
#[inline(always)]
pub fn active_high(self) -> &'a mut crate::W<REG> {
self.variant(BKP::ActiveHigh)
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum AOE {
Manual = 0,
Automatic = 1,
}
impl From<AOE> for bool {
#[inline(always)]
fn from(variant: AOE) -> Self {
variant as u8 != 0
}
}
pub type AOE_R = crate::BitReader<AOE>;
impl AOE_R {
#[inline(always)]
pub const fn variant(&self) -> AOE {
match self.bits {
false => AOE::Manual,
true => AOE::Automatic,
}
}
#[inline(always)]
pub fn is_manual(&self) -> bool {
*self == AOE::Manual
}
#[inline(always)]
pub fn is_automatic(&self) -> bool {
*self == AOE::Automatic
}
}
pub type AOE_W<'a, REG> = crate::BitWriter<'a, REG, AOE>;
impl<'a, REG> AOE_W<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
{
#[inline(always)]
pub fn manual(self) -> &'a mut crate::W<REG> {
self.variant(AOE::Manual)
}
#[inline(always)]
pub fn automatic(self) -> &'a mut crate::W<REG> {
self.variant(AOE::Automatic)
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum MOE {
DisabledIdle = 0,
Enabled = 1,
}
impl From<MOE> for bool {
#[inline(always)]
fn from(variant: MOE) -> Self {
variant as u8 != 0
}
}
pub type MOE_R = crate::BitReader<MOE>;
impl MOE_R {
#[inline(always)]
pub const fn variant(&self) -> MOE {
match self.bits {
false => MOE::DisabledIdle,
true => MOE::Enabled,
}
}
#[inline(always)]
pub fn is_disabled_idle(&self) -> bool {
*self == MOE::DisabledIdle
}
#[inline(always)]
pub fn is_enabled(&self) -> bool {
*self == MOE::Enabled
}
}
pub type MOE_W<'a, REG> = crate::BitWriter<'a, REG, MOE>;
impl<'a, REG> MOE_W<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
{
#[inline(always)]
pub fn disabled_idle(self) -> &'a mut crate::W<REG> {
self.variant(MOE::DisabledIdle)
}
#[inline(always)]
pub fn enabled(self) -> &'a mut crate::W<REG> {
self.variant(MOE::Enabled)
}
}
pub type BKF_R = crate::FieldReader;
pub type BKF_W<'a, REG> = crate::FieldWriter<'a, REG, 4>;
pub type BK2F_R = crate::FieldReader;
pub type BK2F_W<'a, REG> = crate::FieldWriter<'a, REG, 4>;
pub use BKE_R as BK2E_R;
pub use BKE_W as BK2E_W;
pub use BKP_R as BK2P_R;
pub use BKP_W as BK2P_W;
pub type BKDSRM_R = crate::BitReader;
pub type BKDSRM_W<'a, REG> = crate::BitWriter<'a, REG>;
pub type BK2DSRM_R = crate::BitReader;
pub type BK2DSRM_W<'a, REG> = crate::BitWriter<'a, REG>;
pub type BKBID_R = crate::BitReader;
pub type BKBID_W<'a, REG> = crate::BitWriter<'a, REG>;
pub type BK2BID_R = crate::BitReader;
pub type BK2BID_W<'a, REG> = crate::BitWriter<'a, REG>;
impl R {
#[inline(always)]
pub fn dtg(&self) -> DTG_R {
DTG_R::new((self.bits & 0xff) as u8)
}
#[inline(always)]
pub fn lock(&self) -> LOCK_R {
LOCK_R::new(((self.bits >> 8) & 3) as u8)
}
#[inline(always)]
pub fn ossi(&self) -> OSSI_R {
OSSI_R::new(((self.bits >> 10) & 1) != 0)
}
#[inline(always)]
pub fn ossr(&self) -> OSSR_R {
OSSR_R::new(((self.bits >> 11) & 1) != 0)
}
#[inline(always)]
pub fn bke(&self) -> BKE_R {
BKE_R::new(((self.bits >> 12) & 1) != 0)
}
#[inline(always)]
pub fn bkp(&self) -> BKP_R {
BKP_R::new(((self.bits >> 13) & 1) != 0)
}
#[inline(always)]
pub fn aoe(&self) -> AOE_R {
AOE_R::new(((self.bits >> 14) & 1) != 0)
}
#[inline(always)]
pub fn moe(&self) -> MOE_R {
MOE_R::new(((self.bits >> 15) & 1) != 0)
}
#[inline(always)]
pub fn bkf(&self) -> BKF_R {
BKF_R::new(((self.bits >> 16) & 0x0f) as u8)
}
#[inline(always)]
pub fn bk2f(&self) -> BK2F_R {
BK2F_R::new(((self.bits >> 20) & 0x0f) as u8)
}
#[inline(always)]
pub fn bk2e(&self) -> BK2E_R {
BK2E_R::new(((self.bits >> 24) & 1) != 0)
}
#[inline(always)]
pub fn bk2p(&self) -> BK2P_R {
BK2P_R::new(((self.bits >> 25) & 1) != 0)
}
#[inline(always)]
pub fn bkdsrm(&self) -> BKDSRM_R {
BKDSRM_R::new(((self.bits >> 26) & 1) != 0)
}
#[inline(always)]
pub fn bk2dsrm(&self) -> BK2DSRM_R {
BK2DSRM_R::new(((self.bits >> 27) & 1) != 0)
}
#[inline(always)]
pub fn bkbid(&self) -> BKBID_R {
BKBID_R::new(((self.bits >> 28) & 1) != 0)
}
#[inline(always)]
pub fn bk2bid(&self) -> BK2BID_R {
BK2BID_R::new(((self.bits >> 29) & 1) != 0)
}
}
impl core::fmt::Debug for R {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("BDTR")
.field("dtg", &self.dtg())
.field("lock", &self.lock())
.field("ossi", &self.ossi())
.field("ossr", &self.ossr())
.field("bke", &self.bke())
.field("bkp", &self.bkp())
.field("aoe", &self.aoe())
.field("moe", &self.moe())
.field("bkf", &self.bkf())
.field("bk2f", &self.bk2f())
.field("bk2e", &self.bk2e())
.field("bk2p", &self.bk2p())
.field("bkdsrm", &self.bkdsrm())
.field("bk2dsrm", &self.bk2dsrm())
.field("bkbid", &self.bkbid())
.field("bk2bid", &self.bk2bid())
.finish()
}
}
impl W {
#[inline(always)]
pub fn dtg(&mut self) -> DTG_W<BDTRrs> {
DTG_W::new(self, 0)
}
#[inline(always)]
pub fn lock(&mut self) -> LOCK_W<BDTRrs> {
LOCK_W::new(self, 8)
}
#[inline(always)]
pub fn ossi(&mut self) -> OSSI_W<BDTRrs> {
OSSI_W::new(self, 10)
}
#[inline(always)]
pub fn ossr(&mut self) -> OSSR_W<BDTRrs> {
OSSR_W::new(self, 11)
}
#[inline(always)]
pub fn bke(&mut self) -> BKE_W<BDTRrs> {
BKE_W::new(self, 12)
}
#[inline(always)]
pub fn bkp(&mut self) -> BKP_W<BDTRrs> {
BKP_W::new(self, 13)
}
#[inline(always)]
pub fn aoe(&mut self) -> AOE_W<BDTRrs> {
AOE_W::new(self, 14)
}
#[inline(always)]
pub fn moe(&mut self) -> MOE_W<BDTRrs> {
MOE_W::new(self, 15)
}
#[inline(always)]
pub fn bkf(&mut self) -> BKF_W<BDTRrs> {
BKF_W::new(self, 16)
}
#[inline(always)]
pub fn bk2f(&mut self) -> BK2F_W<BDTRrs> {
BK2F_W::new(self, 20)
}
#[inline(always)]
pub fn bk2e(&mut self) -> BK2E_W<BDTRrs> {
BK2E_W::new(self, 24)
}
#[inline(always)]
pub fn bk2p(&mut self) -> BK2P_W<BDTRrs> {
BK2P_W::new(self, 25)
}
#[inline(always)]
pub fn bkdsrm(&mut self) -> BKDSRM_W<BDTRrs> {
BKDSRM_W::new(self, 26)
}
#[inline(always)]
pub fn bk2dsrm(&mut self) -> BK2DSRM_W<BDTRrs> {
BK2DSRM_W::new(self, 27)
}
#[inline(always)]
pub fn bkbid(&mut self) -> BKBID_W<BDTRrs> {
BKBID_W::new(self, 28)
}
#[inline(always)]
pub fn bk2bid(&mut self) -> BK2BID_W<BDTRrs> {
BK2BID_W::new(self, 29)
}
}
pub struct BDTRrs;
impl crate::RegisterSpec for BDTRrs {
type Ux = u32;
}
impl crate::Readable for BDTRrs {}
impl crate::Writable for BDTRrs {
type Safety = crate::Unsafe;
}
impl crate::Resettable for BDTRrs {}