pub type R = crate::R<FRAMErs>;
pub type W = crate::W<FRAMErs>;
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[repr(u8)]
pub enum DATABITS {
Four = 1,
Five = 2,
Six = 3,
Seven = 4,
Eight = 5,
Nine = 6,
Ten = 7,
Eleven = 8,
Twelve = 9,
Thirteen = 10,
Fourteen = 11,
Fifteen = 12,
Sixteen = 13,
}
impl From<DATABITS> for u8 {
#[inline(always)]
fn from(variant: DATABITS) -> Self {
variant as _
}
}
impl crate::FieldSpec for DATABITS {
type Ux = u8;
}
impl crate::IsEnum for DATABITS {}
pub type DatabitsR = crate::FieldReader<DATABITS>;
impl DatabitsR {
#[inline(always)]
pub const fn variant(&self) -> Option<DATABITS> {
match self.bits {
1 => Some(DATABITS::Four),
2 => Some(DATABITS::Five),
3 => Some(DATABITS::Six),
4 => Some(DATABITS::Seven),
5 => Some(DATABITS::Eight),
6 => Some(DATABITS::Nine),
7 => Some(DATABITS::Ten),
8 => Some(DATABITS::Eleven),
9 => Some(DATABITS::Twelve),
10 => Some(DATABITS::Thirteen),
11 => Some(DATABITS::Fourteen),
12 => Some(DATABITS::Fifteen),
13 => Some(DATABITS::Sixteen),
_ => None,
}
}
#[inline(always)]
pub fn is_four(&self) -> bool {
*self == DATABITS::Four
}
#[inline(always)]
pub fn is_five(&self) -> bool {
*self == DATABITS::Five
}
#[inline(always)]
pub fn is_six(&self) -> bool {
*self == DATABITS::Six
}
#[inline(always)]
pub fn is_seven(&self) -> bool {
*self == DATABITS::Seven
}
#[inline(always)]
pub fn is_eight(&self) -> bool {
*self == DATABITS::Eight
}
#[inline(always)]
pub fn is_nine(&self) -> bool {
*self == DATABITS::Nine
}
#[inline(always)]
pub fn is_ten(&self) -> bool {
*self == DATABITS::Ten
}
#[inline(always)]
pub fn is_eleven(&self) -> bool {
*self == DATABITS::Eleven
}
#[inline(always)]
pub fn is_twelve(&self) -> bool {
*self == DATABITS::Twelve
}
#[inline(always)]
pub fn is_thirteen(&self) -> bool {
*self == DATABITS::Thirteen
}
#[inline(always)]
pub fn is_fourteen(&self) -> bool {
*self == DATABITS::Fourteen
}
#[inline(always)]
pub fn is_fifteen(&self) -> bool {
*self == DATABITS::Fifteen
}
#[inline(always)]
pub fn is_sixteen(&self) -> bool {
*self == DATABITS::Sixteen
}
}
pub type DatabitsW<'a, REG> = crate::FieldWriter<'a, REG, 4, DATABITS>;
impl<'a, REG> DatabitsW<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
REG::Ux: From<u8>,
{
#[inline(always)]
pub fn four(self) -> &'a mut crate::W<REG> {
self.variant(DATABITS::Four)
}
#[inline(always)]
pub fn five(self) -> &'a mut crate::W<REG> {
self.variant(DATABITS::Five)
}
#[inline(always)]
pub fn six(self) -> &'a mut crate::W<REG> {
self.variant(DATABITS::Six)
}
#[inline(always)]
pub fn seven(self) -> &'a mut crate::W<REG> {
self.variant(DATABITS::Seven)
}
#[inline(always)]
pub fn eight(self) -> &'a mut crate::W<REG> {
self.variant(DATABITS::Eight)
}
#[inline(always)]
pub fn nine(self) -> &'a mut crate::W<REG> {
self.variant(DATABITS::Nine)
}
#[inline(always)]
pub fn ten(self) -> &'a mut crate::W<REG> {
self.variant(DATABITS::Ten)
}
#[inline(always)]
pub fn eleven(self) -> &'a mut crate::W<REG> {
self.variant(DATABITS::Eleven)
}
#[inline(always)]
pub fn twelve(self) -> &'a mut crate::W<REG> {
self.variant(DATABITS::Twelve)
}
#[inline(always)]
pub fn thirteen(self) -> &'a mut crate::W<REG> {
self.variant(DATABITS::Thirteen)
}
#[inline(always)]
pub fn fourteen(self) -> &'a mut crate::W<REG> {
self.variant(DATABITS::Fourteen)
}
#[inline(always)]
pub fn fifteen(self) -> &'a mut crate::W<REG> {
self.variant(DATABITS::Fifteen)
}
#[inline(always)]
pub fn sixteen(self) -> &'a mut crate::W<REG> {
self.variant(DATABITS::Sixteen)
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[repr(u8)]
pub enum PARITY {
None = 0,
Even = 2,
Odd = 3,
}
impl From<PARITY> for u8 {
#[inline(always)]
fn from(variant: PARITY) -> Self {
variant as _
}
}
impl crate::FieldSpec for PARITY {
type Ux = u8;
}
impl crate::IsEnum for PARITY {}
pub type ParityR = crate::FieldReader<PARITY>;
impl ParityR {
#[inline(always)]
pub const fn variant(&self) -> Option<PARITY> {
match self.bits {
0 => Some(PARITY::None),
2 => Some(PARITY::Even),
3 => Some(PARITY::Odd),
_ => None,
}
}
#[inline(always)]
pub fn is_none(&self) -> bool {
*self == PARITY::None
}
#[inline(always)]
pub fn is_even(&self) -> bool {
*self == PARITY::Even
}
#[inline(always)]
pub fn is_odd(&self) -> bool {
*self == PARITY::Odd
}
}
pub type ParityW<'a, REG> = crate::FieldWriter<'a, REG, 2, PARITY>;
impl<'a, REG> ParityW<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
REG::Ux: From<u8>,
{
#[inline(always)]
pub fn none(self) -> &'a mut crate::W<REG> {
self.variant(PARITY::None)
}
#[inline(always)]
pub fn even(self) -> &'a mut crate::W<REG> {
self.variant(PARITY::Even)
}
#[inline(always)]
pub fn odd(self) -> &'a mut crate::W<REG> {
self.variant(PARITY::Odd)
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[repr(u8)]
pub enum STOPBITS {
Half = 0,
One = 1,
Oneandahalf = 2,
Two = 3,
}
impl From<STOPBITS> for u8 {
#[inline(always)]
fn from(variant: STOPBITS) -> Self {
variant as _
}
}
impl crate::FieldSpec for STOPBITS {
type Ux = u8;
}
impl crate::IsEnum for STOPBITS {}
pub type StopbitsR = crate::FieldReader<STOPBITS>;
impl StopbitsR {
#[inline(always)]
pub const fn variant(&self) -> STOPBITS {
match self.bits {
0 => STOPBITS::Half,
1 => STOPBITS::One,
2 => STOPBITS::Oneandahalf,
3 => STOPBITS::Two,
_ => unreachable!(),
}
}
#[inline(always)]
pub fn is_half(&self) -> bool {
*self == STOPBITS::Half
}
#[inline(always)]
pub fn is_one(&self) -> bool {
*self == STOPBITS::One
}
#[inline(always)]
pub fn is_oneandahalf(&self) -> bool {
*self == STOPBITS::Oneandahalf
}
#[inline(always)]
pub fn is_two(&self) -> bool {
*self == STOPBITS::Two
}
}
pub type StopbitsW<'a, REG> = crate::FieldWriter<'a, REG, 2, STOPBITS, crate::Safe>;
impl<'a, REG> StopbitsW<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
REG::Ux: From<u8>,
{
#[inline(always)]
pub fn half(self) -> &'a mut crate::W<REG> {
self.variant(STOPBITS::Half)
}
#[inline(always)]
pub fn one(self) -> &'a mut crate::W<REG> {
self.variant(STOPBITS::One)
}
#[inline(always)]
pub fn oneandahalf(self) -> &'a mut crate::W<REG> {
self.variant(STOPBITS::Oneandahalf)
}
#[inline(always)]
pub fn two(self) -> &'a mut crate::W<REG> {
self.variant(STOPBITS::Two)
}
}
impl R {
#[inline(always)]
pub fn databits(&self) -> DatabitsR {
DatabitsR::new((self.bits & 0x0f) as u8)
}
#[inline(always)]
pub fn parity(&self) -> ParityR {
ParityR::new(((self.bits >> 8) & 3) as u8)
}
#[inline(always)]
pub fn stopbits(&self) -> StopbitsR {
StopbitsR::new(((self.bits >> 12) & 3) as u8)
}
}
impl core::fmt::Debug for R {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("FRAME")
.field("databits", &self.databits())
.field("parity", &self.parity())
.field("stopbits", &self.stopbits())
.finish()
}
}
impl W {
#[inline(always)]
pub fn databits(&mut self) -> DatabitsW<'_, FRAMErs> {
DatabitsW::new(self, 0)
}
#[inline(always)]
pub fn parity(&mut self) -> ParityW<'_, FRAMErs> {
ParityW::new(self, 8)
}
#[inline(always)]
pub fn stopbits(&mut self) -> StopbitsW<'_, FRAMErs> {
StopbitsW::new(self, 12)
}
}
pub struct FRAMErs;
impl crate::RegisterSpec for FRAMErs {
type Ux = u32;
}
impl crate::Readable for FRAMErs {}
impl crate::Writable for FRAMErs {
type Safety = crate::Unsafe;
}
impl crate::Resettable for FRAMErs {
const RESET_VALUE: u32 = 0x1005;
}