pub type R = crate::R<SRrs>;
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum RXP {
Empty = 0,
NotEmpty = 1,
}
impl From<RXP> for bool {
#[inline(always)]
fn from(variant: RXP) -> Self {
variant as u8 != 0
}
}
pub type RXP_R = crate::BitReader<RXP>;
impl RXP_R {
#[inline(always)]
pub const fn variant(&self) -> RXP {
match self.bits {
false => RXP::Empty,
true => RXP::NotEmpty,
}
}
#[inline(always)]
pub fn is_empty(&self) -> bool {
*self == RXP::Empty
}
#[inline(always)]
pub fn is_not_empty(&self) -> bool {
*self == RXP::NotEmpty
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum TXP {
Full = 0,
NotFull = 1,
}
impl From<TXP> for bool {
#[inline(always)]
fn from(variant: TXP) -> Self {
variant as u8 != 0
}
}
pub type TXP_R = crate::BitReader<TXP>;
impl TXP_R {
#[inline(always)]
pub const fn variant(&self) -> TXP {
match self.bits {
false => TXP::Full,
true => TXP::NotFull,
}
}
#[inline(always)]
pub fn is_full(&self) -> bool {
*self == TXP::Full
}
#[inline(always)]
pub fn is_not_full(&self) -> bool {
*self == TXP::NotFull
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum DXP {
Unavailable = 0,
Available = 1,
}
impl From<DXP> for bool {
#[inline(always)]
fn from(variant: DXP) -> Self {
variant as u8 != 0
}
}
pub type DXP_R = crate::BitReader<DXP>;
impl DXP_R {
#[inline(always)]
pub const fn variant(&self) -> DXP {
match self.bits {
false => DXP::Unavailable,
true => DXP::Available,
}
}
#[inline(always)]
pub fn is_unavailable(&self) -> bool {
*self == DXP::Unavailable
}
#[inline(always)]
pub fn is_available(&self) -> bool {
*self == DXP::Available
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum EOT {
NotCompleted = 0,
Completed = 1,
}
impl From<EOT> for bool {
#[inline(always)]
fn from(variant: EOT) -> Self {
variant as u8 != 0
}
}
pub type EOT_R = crate::BitReader<EOT>;
impl EOT_R {
#[inline(always)]
pub const fn variant(&self) -> EOT {
match self.bits {
false => EOT::NotCompleted,
true => EOT::Completed,
}
}
#[inline(always)]
pub fn is_not_completed(&self) -> bool {
*self == EOT::NotCompleted
}
#[inline(always)]
pub fn is_completed(&self) -> bool {
*self == EOT::Completed
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum TXTF {
NotCompleted = 0,
Completed = 1,
}
impl From<TXTF> for bool {
#[inline(always)]
fn from(variant: TXTF) -> Self {
variant as u8 != 0
}
}
pub type TXTF_R = crate::BitReader<TXTF>;
impl TXTF_R {
#[inline(always)]
pub const fn variant(&self) -> TXTF {
match self.bits {
false => TXTF::NotCompleted,
true => TXTF::Completed,
}
}
#[inline(always)]
pub fn is_not_completed(&self) -> bool {
*self == TXTF::NotCompleted
}
#[inline(always)]
pub fn is_completed(&self) -> bool {
*self == TXTF::Completed
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum UDR {
NoUnderrun = 0,
Underrun = 1,
}
impl From<UDR> for bool {
#[inline(always)]
fn from(variant: UDR) -> Self {
variant as u8 != 0
}
}
pub type UDR_R = crate::BitReader<UDR>;
impl UDR_R {
#[inline(always)]
pub const fn variant(&self) -> UDR {
match self.bits {
false => UDR::NoUnderrun,
true => UDR::Underrun,
}
}
#[inline(always)]
pub fn is_no_underrun(&self) -> bool {
*self == UDR::NoUnderrun
}
#[inline(always)]
pub fn is_underrun(&self) -> bool {
*self == UDR::Underrun
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum OVR {
NoOverrun = 0,
Overrun = 1,
}
impl From<OVR> for bool {
#[inline(always)]
fn from(variant: OVR) -> Self {
variant as u8 != 0
}
}
pub type OVR_R = crate::BitReader<OVR>;
impl OVR_R {
#[inline(always)]
pub const fn variant(&self) -> OVR {
match self.bits {
false => OVR::NoOverrun,
true => OVR::Overrun,
}
}
#[inline(always)]
pub fn is_no_overrun(&self) -> bool {
*self == OVR::NoOverrun
}
#[inline(always)]
pub fn is_overrun(&self) -> bool {
*self == OVR::Overrun
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum CRCE {
NoError = 0,
Error = 1,
}
impl From<CRCE> for bool {
#[inline(always)]
fn from(variant: CRCE) -> Self {
variant as u8 != 0
}
}
pub type CRCE_R = crate::BitReader<CRCE>;
impl CRCE_R {
#[inline(always)]
pub const fn variant(&self) -> CRCE {
match self.bits {
false => CRCE::NoError,
true => CRCE::Error,
}
}
#[inline(always)]
pub fn is_no_error(&self) -> bool {
*self == CRCE::NoError
}
#[inline(always)]
pub fn is_error(&self) -> bool {
*self == CRCE::Error
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum TIFRE {
NoError = 0,
Error = 1,
}
impl From<TIFRE> for bool {
#[inline(always)]
fn from(variant: TIFRE) -> Self {
variant as u8 != 0
}
}
pub type TIFRE_R = crate::BitReader<TIFRE>;
impl TIFRE_R {
#[inline(always)]
pub const fn variant(&self) -> TIFRE {
match self.bits {
false => TIFRE::NoError,
true => TIFRE::Error,
}
}
#[inline(always)]
pub fn is_no_error(&self) -> bool {
*self == TIFRE::NoError
}
#[inline(always)]
pub fn is_error(&self) -> bool {
*self == TIFRE::Error
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum MODF {
NoFault = 0,
Fault = 1,
}
impl From<MODF> for bool {
#[inline(always)]
fn from(variant: MODF) -> Self {
variant as u8 != 0
}
}
pub type MODF_R = crate::BitReader<MODF>;
impl MODF_R {
#[inline(always)]
pub const fn variant(&self) -> MODF {
match self.bits {
false => MODF::NoFault,
true => MODF::Fault,
}
}
#[inline(always)]
pub fn is_no_fault(&self) -> bool {
*self == MODF::NoFault
}
#[inline(always)]
pub fn is_fault(&self) -> bool {
*self == MODF::Fault
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum TSERF {
NotLoaded = 0,
Loaded = 1,
}
impl From<TSERF> for bool {
#[inline(always)]
fn from(variant: TSERF) -> Self {
variant as u8 != 0
}
}
pub type TSERF_R = crate::BitReader<TSERF>;
impl TSERF_R {
#[inline(always)]
pub const fn variant(&self) -> TSERF {
match self.bits {
false => TSERF::NotLoaded,
true => TSERF::Loaded,
}
}
#[inline(always)]
pub fn is_not_loaded(&self) -> bool {
*self == TSERF::NotLoaded
}
#[inline(always)]
pub fn is_loaded(&self) -> bool {
*self == TSERF::Loaded
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum SUSP {
NotSuspended = 0,
Suspended = 1,
}
impl From<SUSP> for bool {
#[inline(always)]
fn from(variant: SUSP) -> Self {
variant as u8 != 0
}
}
pub type SUSP_R = crate::BitReader<SUSP>;
impl SUSP_R {
#[inline(always)]
pub const fn variant(&self) -> SUSP {
match self.bits {
false => SUSP::NotSuspended,
true => SUSP::Suspended,
}
}
#[inline(always)]
pub fn is_not_suspended(&self) -> bool {
*self == SUSP::NotSuspended
}
#[inline(always)]
pub fn is_suspended(&self) -> bool {
*self == SUSP::Suspended
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum TXC {
Ongoing = 0,
Completed = 1,
}
impl From<TXC> for bool {
#[inline(always)]
fn from(variant: TXC) -> Self {
variant as u8 != 0
}
}
pub type TXC_R = crate::BitReader<TXC>;
impl TXC_R {
#[inline(always)]
pub const fn variant(&self) -> TXC {
match self.bits {
false => TXC::Ongoing,
true => TXC::Completed,
}
}
#[inline(always)]
pub fn is_ongoing(&self) -> bool {
*self == TXC::Ongoing
}
#[inline(always)]
pub fn is_completed(&self) -> bool {
*self == TXC::Completed
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[repr(u8)]
pub enum RXPLVL {
ZeroFrames = 0,
OneFrame = 1,
TwoFrames = 2,
ThreeFrames = 3,
}
impl From<RXPLVL> for u8 {
#[inline(always)]
fn from(variant: RXPLVL) -> Self {
variant as _
}
}
impl crate::FieldSpec for RXPLVL {
type Ux = u8;
}
impl crate::IsEnum for RXPLVL {}
pub type RXPLVL_R = crate::FieldReader<RXPLVL>;
impl RXPLVL_R {
#[inline(always)]
pub const fn variant(&self) -> RXPLVL {
match self.bits {
0 => RXPLVL::ZeroFrames,
1 => RXPLVL::OneFrame,
2 => RXPLVL::TwoFrames,
3 => RXPLVL::ThreeFrames,
_ => unreachable!(),
}
}
#[inline(always)]
pub fn is_zero_frames(&self) -> bool {
*self == RXPLVL::ZeroFrames
}
#[inline(always)]
pub fn is_one_frame(&self) -> bool {
*self == RXPLVL::OneFrame
}
#[inline(always)]
pub fn is_two_frames(&self) -> bool {
*self == RXPLVL::TwoFrames
}
#[inline(always)]
pub fn is_three_frames(&self) -> bool {
*self == RXPLVL::ThreeFrames
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum RXWNE {
LessThan32 = 0,
AtLeast32 = 1,
}
impl From<RXWNE> for bool {
#[inline(always)]
fn from(variant: RXWNE) -> Self {
variant as u8 != 0
}
}
pub type RXWNE_R = crate::BitReader<RXWNE>;
impl RXWNE_R {
#[inline(always)]
pub const fn variant(&self) -> RXWNE {
match self.bits {
false => RXWNE::LessThan32,
true => RXWNE::AtLeast32,
}
}
#[inline(always)]
pub fn is_less_than32(&self) -> bool {
*self == RXWNE::LessThan32
}
#[inline(always)]
pub fn is_at_least32(&self) -> bool {
*self == RXWNE::AtLeast32
}
}
pub type CTSIZE_R = crate::FieldReader<u16>;
impl R {
#[inline(always)]
pub fn rxp(&self) -> RXP_R {
RXP_R::new((self.bits & 1) != 0)
}
#[inline(always)]
pub fn txp(&self) -> TXP_R {
TXP_R::new(((self.bits >> 1) & 1) != 0)
}
#[inline(always)]
pub fn dxp(&self) -> DXP_R {
DXP_R::new(((self.bits >> 2) & 1) != 0)
}
#[inline(always)]
pub fn eot(&self) -> EOT_R {
EOT_R::new(((self.bits >> 3) & 1) != 0)
}
#[inline(always)]
pub fn txtf(&self) -> TXTF_R {
TXTF_R::new(((self.bits >> 4) & 1) != 0)
}
#[inline(always)]
pub fn udr(&self) -> UDR_R {
UDR_R::new(((self.bits >> 5) & 1) != 0)
}
#[inline(always)]
pub fn ovr(&self) -> OVR_R {
OVR_R::new(((self.bits >> 6) & 1) != 0)
}
#[inline(always)]
pub fn crce(&self) -> CRCE_R {
CRCE_R::new(((self.bits >> 7) & 1) != 0)
}
#[inline(always)]
pub fn tifre(&self) -> TIFRE_R {
TIFRE_R::new(((self.bits >> 8) & 1) != 0)
}
#[inline(always)]
pub fn modf(&self) -> MODF_R {
MODF_R::new(((self.bits >> 9) & 1) != 0)
}
#[inline(always)]
pub fn tserf(&self) -> TSERF_R {
TSERF_R::new(((self.bits >> 10) & 1) != 0)
}
#[inline(always)]
pub fn susp(&self) -> SUSP_R {
SUSP_R::new(((self.bits >> 11) & 1) != 0)
}
#[inline(always)]
pub fn txc(&self) -> TXC_R {
TXC_R::new(((self.bits >> 12) & 1) != 0)
}
#[inline(always)]
pub fn rxplvl(&self) -> RXPLVL_R {
RXPLVL_R::new(((self.bits >> 13) & 3) as u8)
}
#[inline(always)]
pub fn rxwne(&self) -> RXWNE_R {
RXWNE_R::new(((self.bits >> 15) & 1) != 0)
}
#[inline(always)]
pub fn ctsize(&self) -> CTSIZE_R {
CTSIZE_R::new(((self.bits >> 16) & 0xffff) as u16)
}
}
impl core::fmt::Debug for R {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("SR")
.field("ctsize", &self.ctsize())
.field("rxwne", &self.rxwne())
.field("rxplvl", &self.rxplvl())
.field("txc", &self.txc())
.field("susp", &self.susp())
.field("tserf", &self.tserf())
.field("modf", &self.modf())
.field("tifre", &self.tifre())
.field("crce", &self.crce())
.field("ovr", &self.ovr())
.field("udr", &self.udr())
.field("txtf", &self.txtf())
.field("eot", &self.eot())
.field("dxp", &self.dxp())
.field("txp", &self.txp())
.field("rxp", &self.rxp())
.finish()
}
}
pub struct SRrs;
impl crate::RegisterSpec for SRrs {
type Ux = u32;
}
impl crate::Readable for SRrs {}
impl crate::Resettable for SRrs {
const RESET_VALUE: u32 = 0x1002;
}