pub type R = crate::R<TIRrs>;
pub type W = crate::W<TIRrs>;
pub type TXRQ_R = crate::BitReader;
pub type TXRQ_W<'a, REG> = crate::BitWriter<'a, REG>;
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum RTR {
Data = 0,
Remote = 1,
}
impl From<RTR> for bool {
#[inline(always)]
fn from(variant: RTR) -> Self {
variant as u8 != 0
}
}
pub type RTR_R = crate::BitReader<RTR>;
impl RTR_R {
#[inline(always)]
pub const fn variant(&self) -> RTR {
match self.bits {
false => RTR::Data,
true => RTR::Remote,
}
}
#[inline(always)]
pub fn is_data(&self) -> bool {
*self == RTR::Data
}
#[inline(always)]
pub fn is_remote(&self) -> bool {
*self == RTR::Remote
}
}
pub type RTR_W<'a, REG> = crate::BitWriter<'a, REG, RTR>;
impl<'a, REG> RTR_W<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
{
#[inline(always)]
pub fn data(self) -> &'a mut crate::W<REG> {
self.variant(RTR::Data)
}
#[inline(always)]
pub fn remote(self) -> &'a mut crate::W<REG> {
self.variant(RTR::Remote)
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum IDE {
Standard = 0,
Extended = 1,
}
impl From<IDE> for bool {
#[inline(always)]
fn from(variant: IDE) -> Self {
variant as u8 != 0
}
}
pub type IDE_R = crate::BitReader<IDE>;
impl IDE_R {
#[inline(always)]
pub const fn variant(&self) -> IDE {
match self.bits {
false => IDE::Standard,
true => IDE::Extended,
}
}
#[inline(always)]
pub fn is_standard(&self) -> bool {
*self == IDE::Standard
}
#[inline(always)]
pub fn is_extended(&self) -> bool {
*self == IDE::Extended
}
}
pub type IDE_W<'a, REG> = crate::BitWriter<'a, REG, IDE>;
impl<'a, REG> IDE_W<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
{
#[inline(always)]
pub fn standard(self) -> &'a mut crate::W<REG> {
self.variant(IDE::Standard)
}
#[inline(always)]
pub fn extended(self) -> &'a mut crate::W<REG> {
self.variant(IDE::Extended)
}
}
pub type EXID_R = crate::FieldReader<u32>;
pub type EXID_W<'a, REG> = crate::FieldWriter<'a, REG, 18, u32>;
pub type STID_R = crate::FieldReader<u16>;
pub type STID_W<'a, REG> = crate::FieldWriter<'a, REG, 11, u16>;
impl R {
#[inline(always)]
pub fn txrq(&self) -> TXRQ_R {
TXRQ_R::new((self.bits & 1) != 0)
}
#[inline(always)]
pub fn rtr(&self) -> RTR_R {
RTR_R::new(((self.bits >> 1) & 1) != 0)
}
#[inline(always)]
pub fn ide(&self) -> IDE_R {
IDE_R::new(((self.bits >> 2) & 1) != 0)
}
#[inline(always)]
pub fn exid(&self) -> EXID_R {
EXID_R::new((self.bits >> 3) & 0x0003_ffff)
}
#[inline(always)]
pub fn stid(&self) -> STID_R {
STID_R::new(((self.bits >> 21) & 0x07ff) as u16)
}
}
impl core::fmt::Debug for R {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("TIR")
.field("stid", &self.stid())
.field("exid", &self.exid())
.field("ide", &self.ide())
.field("rtr", &self.rtr())
.field("txrq", &self.txrq())
.finish()
}
}
impl W {
#[inline(always)]
pub fn txrq(&mut self) -> TXRQ_W<TIRrs> {
TXRQ_W::new(self, 0)
}
#[inline(always)]
pub fn rtr(&mut self) -> RTR_W<TIRrs> {
RTR_W::new(self, 1)
}
#[inline(always)]
pub fn ide(&mut self) -> IDE_W<TIRrs> {
IDE_W::new(self, 2)
}
#[inline(always)]
pub fn exid(&mut self) -> EXID_W<TIRrs> {
EXID_W::new(self, 3)
}
#[inline(always)]
pub fn stid(&mut self) -> STID_W<TIRrs> {
STID_W::new(self, 21)
}
}
pub struct TIRrs;
impl crate::RegisterSpec for TIRrs {
type Ux = u32;
}
impl crate::Readable for TIRrs {}
impl crate::Writable for TIRrs {
type Safety = crate::Unsafe;
}
impl crate::Resettable for TIRrs {}