#[doc = "CCR1"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Ccr1(pub u32);
impl Ccr1 {
#[doc = "Capture/Compare value of Channel 1"]
#[must_use]
#[inline(always)]
pub const fn ccr1(&self) -> u16 {
let val = (self.0 >> 0usize) & 0xffff;
val as u16
}
#[doc = "Capture/Compare value of Channel 1"]
#[inline(always)]
pub const fn set_ccr1(&mut self, val: u16) {
self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
}
}
impl Default for Ccr1 {
#[inline(always)]
fn default() -> Ccr1 {
Ccr1(0)
}
}
impl core::fmt::Debug for Ccr1 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("Ccr1").field("ccr1", &self.ccr1()).finish()
}
}
#[cfg(feature = "defmt")]
impl defmt::Format for Ccr1 {
fn format(&self, f: defmt::Formatter) {
defmt::write!(f, "Ccr1 {{ ccr1: {=u16:?} }}", self.ccr1())
}
}
#[doc = "CCR2"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Ccr2(pub u32);
impl Ccr2 {
#[doc = "Capture/Compare value of Channel 2"]
#[must_use]
#[inline(always)]
pub const fn ccr2(&self) -> u16 {
let val = (self.0 >> 0usize) & 0xffff;
val as u16
}
#[doc = "Capture/Compare value of Channel 2"]
#[inline(always)]
pub const fn set_ccr2(&mut self, val: u16) {
self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
}
}
impl Default for Ccr2 {
#[inline(always)]
fn default() -> Ccr2 {
Ccr2(0)
}
}
impl core::fmt::Debug for Ccr2 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("Ccr2").field("ccr2", &self.ccr2()).finish()
}
}
#[cfg(feature = "defmt")]
impl defmt::Format for Ccr2 {
fn format(&self, f: defmt::Formatter) {
defmt::write!(f, "Ccr2 {{ ccr2: {=u16:?} }}", self.ccr2())
}
}
#[doc = "CCR3"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Ccr3(pub u32);
impl Ccr3 {
#[doc = "Capture/Compare value of Channel 3"]
#[must_use]
#[inline(always)]
pub const fn ccr3(&self) -> u16 {
let val = (self.0 >> 0usize) & 0xffff;
val as u16
}
#[doc = "Capture/Compare value of Channel 3"]
#[inline(always)]
pub const fn set_ccr3(&mut self, val: u16) {
self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
}
}
impl Default for Ccr3 {
#[inline(always)]
fn default() -> Ccr3 {
Ccr3(0)
}
}
impl core::fmt::Debug for Ccr3 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("Ccr3").field("ccr3", &self.ccr3()).finish()
}
}
#[cfg(feature = "defmt")]
impl defmt::Format for Ccr3 {
fn format(&self, f: defmt::Formatter) {
defmt::write!(f, "Ccr3 {{ ccr3: {=u16:?} }}", self.ccr3())
}
}
#[doc = "CCR4"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Ccr4(pub u32);
impl Ccr4 {
#[doc = "Capture/Compare value of Channel 4"]
#[must_use]
#[inline(always)]
pub const fn ccr4(&self) -> u16 {
let val = (self.0 >> 0usize) & 0xffff;
val as u16
}
#[doc = "Capture/Compare value of Channel 4"]
#[inline(always)]
pub const fn set_ccr4(&mut self, val: u16) {
self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
}
}
impl Default for Ccr4 {
#[inline(always)]
fn default() -> Ccr4 {
Ccr4(0)
}
}
impl core::fmt::Debug for Ccr4 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("Ccr4").field("ccr4", &self.ccr4()).finish()
}
}
#[cfg(feature = "defmt")]
impl defmt::Format for Ccr4 {
fn format(&self, f: defmt::Formatter) {
defmt::write!(f, "Ccr4 {{ ccr4: {=u16:?} }}", self.ccr4())
}
}
#[doc = "CCS1"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Ccs1(pub u32);
impl Ccs1 {
#[doc = "Output Polarity In Compare Mode"]
#[must_use]
#[inline(always)]
pub const fn pol(&self) -> bool {
let val = (self.0 >> 0usize) & 0x01;
val != 0
}
#[doc = "Output Polarity In Compare Mode"]
#[inline(always)]
pub const fn set_pol(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
}
#[doc = "Channel Output Enable"]
#[must_use]
#[inline(always)]
pub const fn cco_en(&self) -> bool {
let val = (self.0 >> 1usize) & 0x01;
val != 0
}
#[doc = "Channel Output Enable"]
#[inline(always)]
pub const fn set_cco_en(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
}
#[doc = "Capture Falling Event Enable"]
#[must_use]
#[inline(always)]
pub const fn cfs_en(&self) -> bool {
let val = (self.0 >> 2usize) & 0x01;
val != 0
}
#[doc = "Capture Falling Event Enable"]
#[inline(always)]
pub const fn set_cfs_en(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
}
#[doc = "Capture Rising Event Enable"]
#[must_use]
#[inline(always)]
pub const fn crs_en(&self) -> bool {
let val = (self.0 >> 3usize) & 0x01;
val != 0
}
#[doc = "Capture Rising Event Enable"]
#[inline(always)]
pub const fn set_crs_en(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
}
#[doc = "IC1 Source"]
#[must_use]
#[inline(always)]
pub const fn scsr(&self) -> u8 {
let val = (self.0 >> 4usize) & 0x03;
val as u8
}
#[doc = "IC1 Source"]
#[inline(always)]
pub const fn set_scsr(&mut self, val: u8) {
self.0 = (self.0 & !(0x03 << 4usize)) | (((val as u32) & 0x03) << 4usize);
}
#[doc = "TIMCx Counter Capture Clear Enable"]
#[must_use]
#[inline(always)]
pub const fn ccl_en(&self) -> bool {
let val = (self.0 >> 7usize) & 0x01;
val != 0
}
#[doc = "TIMCx Counter Capture Clear Enable"]
#[inline(always)]
pub const fn set_ccl_en(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
}
}
impl Default for Ccs1 {
#[inline(always)]
fn default() -> Ccs1 {
Ccs1(0)
}
}
impl core::fmt::Debug for Ccs1 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("Ccs1")
.field("pol", &self.pol())
.field("cco_en", &self.cco_en())
.field("cfs_en", &self.cfs_en())
.field("crs_en", &self.crs_en())
.field("scsr", &self.scsr())
.field("ccl_en", &self.ccl_en())
.finish()
}
}
#[cfg(feature = "defmt")]
impl defmt::Format for Ccs1 {
fn format(&self, f: defmt::Formatter) {
defmt :: write ! (f , "Ccs1 {{ pol: {=bool:?}, cco_en: {=bool:?}, cfs_en: {=bool:?}, crs_en: {=bool:?}, scsr: {=u8:?}, ccl_en: {=bool:?} }}" , self . pol () , self . cco_en () , self . cfs_en () , self . crs_en () , self . scsr () , self . ccl_en ())
}
}
#[doc = "CCS2"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Ccs2(pub u32);
impl Ccs2 {
#[doc = "Output Polarity In Compare Mode"]
#[must_use]
#[inline(always)]
pub const fn pol(&self) -> bool {
let val = (self.0 >> 0usize) & 0x01;
val != 0
}
#[doc = "Output Polarity In Compare Mode"]
#[inline(always)]
pub const fn set_pol(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
}
#[doc = "Channel Output Enable"]
#[must_use]
#[inline(always)]
pub const fn cco_en(&self) -> bool {
let val = (self.0 >> 1usize) & 0x01;
val != 0
}
#[doc = "Channel Output Enable"]
#[inline(always)]
pub const fn set_cco_en(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
}
#[doc = "Capture Falling Event Enable"]
#[must_use]
#[inline(always)]
pub const fn cfs_en(&self) -> bool {
let val = (self.0 >> 2usize) & 0x01;
val != 0
}
#[doc = "Capture Falling Event Enable"]
#[inline(always)]
pub const fn set_cfs_en(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
}
#[doc = "Capture Rising Event Enable"]
#[must_use]
#[inline(always)]
pub const fn crs_en(&self) -> bool {
let val = (self.0 >> 3usize) & 0x01;
val != 0
}
#[doc = "Capture Rising Event Enable"]
#[inline(always)]
pub const fn set_crs_en(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
}
#[doc = "ICB Source"]
#[must_use]
#[inline(always)]
pub const fn scsr(&self) -> u8 {
let val = (self.0 >> 4usize) & 0x03;
val as u8
}
#[doc = "ICB Source"]
#[inline(always)]
pub const fn set_scsr(&mut self, val: u8) {
self.0 = (self.0 & !(0x03 << 4usize)) | (((val as u32) & 0x03) << 4usize);
}
#[doc = "TIMCx Counter Capture Clear Enable"]
#[must_use]
#[inline(always)]
pub const fn ccl_en(&self) -> bool {
let val = (self.0 >> 7usize) & 0x01;
val != 0
}
#[doc = "TIMCx Counter Capture Clear Enable"]
#[inline(always)]
pub const fn set_ccl_en(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
}
}
impl Default for Ccs2 {
#[inline(always)]
fn default() -> Ccs2 {
Ccs2(0)
}
}
impl core::fmt::Debug for Ccs2 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("Ccs2")
.field("pol", &self.pol())
.field("cco_en", &self.cco_en())
.field("cfs_en", &self.cfs_en())
.field("crs_en", &self.crs_en())
.field("scsr", &self.scsr())
.field("ccl_en", &self.ccl_en())
.finish()
}
}
#[cfg(feature = "defmt")]
impl defmt::Format for Ccs2 {
fn format(&self, f: defmt::Formatter) {
defmt :: write ! (f , "Ccs2 {{ pol: {=bool:?}, cco_en: {=bool:?}, cfs_en: {=bool:?}, crs_en: {=bool:?}, scsr: {=u8:?}, ccl_en: {=bool:?} }}" , self . pol () , self . cco_en () , self . cfs_en () , self . crs_en () , self . scsr () , self . ccl_en ())
}
}
#[doc = "CCS3"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Ccs3(pub u32);
impl Ccs3 {
#[doc = "Output Polarity In Compare Mode"]
#[must_use]
#[inline(always)]
pub const fn pol(&self) -> bool {
let val = (self.0 >> 0usize) & 0x01;
val != 0
}
#[doc = "Output Polarity In Compare Mode"]
#[inline(always)]
pub const fn set_pol(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
}
#[doc = "Channel Output Enable"]
#[must_use]
#[inline(always)]
pub const fn cco_en(&self) -> bool {
let val = (self.0 >> 1usize) & 0x01;
val != 0
}
#[doc = "Channel Output Enable"]
#[inline(always)]
pub const fn set_cco_en(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
}
#[doc = "Capture Falling Event Enable"]
#[must_use]
#[inline(always)]
pub const fn cfs_en(&self) -> bool {
let val = (self.0 >> 2usize) & 0x01;
val != 0
}
#[doc = "Capture Falling Event Enable"]
#[inline(always)]
pub const fn set_cfs_en(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
}
#[doc = "Capture Rising Event Enable"]
#[must_use]
#[inline(always)]
pub const fn crs_en(&self) -> bool {
let val = (self.0 >> 3usize) & 0x01;
val != 0
}
#[doc = "Capture Rising Event Enable"]
#[inline(always)]
pub const fn set_crs_en(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
}
#[doc = "IC3 Source"]
#[must_use]
#[inline(always)]
pub const fn scsr(&self) -> u8 {
let val = (self.0 >> 4usize) & 0x03;
val as u8
}
#[doc = "IC3 Source"]
#[inline(always)]
pub const fn set_scsr(&mut self, val: u8) {
self.0 = (self.0 & !(0x03 << 4usize)) | (((val as u32) & 0x03) << 4usize);
}
#[doc = "CNT Catch Clear Enable"]
#[must_use]
#[inline(always)]
pub const fn ccl_en(&self) -> bool {
let val = (self.0 >> 7usize) & 0x01;
val != 0
}
#[doc = "CNT Catch Clear Enable"]
#[inline(always)]
pub const fn set_ccl_en(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
}
}
impl Default for Ccs3 {
#[inline(always)]
fn default() -> Ccs3 {
Ccs3(0)
}
}
impl core::fmt::Debug for Ccs3 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("Ccs3")
.field("pol", &self.pol())
.field("cco_en", &self.cco_en())
.field("cfs_en", &self.cfs_en())
.field("crs_en", &self.crs_en())
.field("scsr", &self.scsr())
.field("ccl_en", &self.ccl_en())
.finish()
}
}
#[cfg(feature = "defmt")]
impl defmt::Format for Ccs3 {
fn format(&self, f: defmt::Formatter) {
defmt :: write ! (f , "Ccs3 {{ pol: {=bool:?}, cco_en: {=bool:?}, cfs_en: {=bool:?}, crs_en: {=bool:?}, scsr: {=u8:?}, ccl_en: {=bool:?} }}" , self . pol () , self . cco_en () , self . cfs_en () , self . crs_en () , self . scsr () , self . ccl_en ())
}
}
#[doc = "CCS4"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Ccs4(pub u32);
impl Ccs4 {
#[doc = "Output Polarity In Compare Mode"]
#[must_use]
#[inline(always)]
pub const fn pol(&self) -> bool {
let val = (self.0 >> 0usize) & 0x01;
val != 0
}
#[doc = "Output Polarity In Compare Mode"]
#[inline(always)]
pub const fn set_pol(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
}
#[doc = "CNT compare out Enable"]
#[must_use]
#[inline(always)]
pub const fn cco_en(&self) -> bool {
let val = (self.0 >> 1usize) & 0x01;
val != 0
}
#[doc = "CNT compare out Enable"]
#[inline(always)]
pub const fn set_cco_en(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
}
#[doc = "Capture Falling Event Enable"]
#[must_use]
#[inline(always)]
pub const fn cfs_en(&self) -> bool {
let val = (self.0 >> 2usize) & 0x01;
val != 0
}
#[doc = "Capture Falling Event Enable"]
#[inline(always)]
pub const fn set_cfs_en(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
}
#[doc = "Capture Rising Event Enable"]
#[must_use]
#[inline(always)]
pub const fn crs_en(&self) -> bool {
let val = (self.0 >> 3usize) & 0x01;
val != 0
}
#[doc = "Capture Rising Event Enable"]
#[inline(always)]
pub const fn set_crs_en(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
}
#[doc = "IC4 Source"]
#[must_use]
#[inline(always)]
pub const fn scsr(&self) -> u8 {
let val = (self.0 >> 4usize) & 0x03;
val as u8
}
#[doc = "IC4 Source"]
#[inline(always)]
pub const fn set_scsr(&mut self, val: u8) {
self.0 = (self.0 & !(0x03 << 4usize)) | (((val as u32) & 0x03) << 4usize);
}
#[doc = "CNT Catch Clear Enable"]
#[must_use]
#[inline(always)]
pub const fn ccl_en(&self) -> bool {
let val = (self.0 >> 7usize) & 0x01;
val != 0
}
#[doc = "CNT Catch Clear Enable"]
#[inline(always)]
pub const fn set_ccl_en(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
}
}
impl Default for Ccs4 {
#[inline(always)]
fn default() -> Ccs4 {
Ccs4(0)
}
}
impl core::fmt::Debug for Ccs4 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("Ccs4")
.field("pol", &self.pol())
.field("cco_en", &self.cco_en())
.field("cfs_en", &self.cfs_en())
.field("crs_en", &self.crs_en())
.field("scsr", &self.scsr())
.field("ccl_en", &self.ccl_en())
.finish()
}
}
#[cfg(feature = "defmt")]
impl defmt::Format for Ccs4 {
fn format(&self, f: defmt::Formatter) {
defmt :: write ! (f , "Ccs4 {{ pol: {=bool:?}, cco_en: {=bool:?}, cfs_en: {=bool:?}, crs_en: {=bool:?}, scsr: {=u8:?}, ccl_en: {=bool:?} }}" , self . pol () , self . cco_en () , self . cfs_en () , self . crs_en () , self . scsr () , self . ccl_en ())
}
}
#[doc = "CNT"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Cnt(pub u32);
impl Cnt {
#[doc = "Conter value"]
#[must_use]
#[inline(always)]
pub const fn cnt(&self) -> u16 {
let val = (self.0 >> 0usize) & 0xffff;
val as u16
}
#[doc = "Conter value"]
#[inline(always)]
pub const fn set_cnt(&mut self, val: u16) {
self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
}
}
impl Default for Cnt {
#[inline(always)]
fn default() -> Cnt {
Cnt(0)
}
}
impl core::fmt::Debug for Cnt {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("Cnt").field("cnt", &self.cnt()).finish()
}
}
#[cfg(feature = "defmt")]
impl defmt::Format for Cnt {
fn format(&self, f: defmt::Formatter) {
defmt::write!(f, "Cnt {{ cnt: {=u16:?} }}", self.cnt())
}
}
#[doc = "CSR"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Csr(pub u32);
impl Csr {
#[doc = "TIMCx counter prescaler"]
#[must_use]
#[inline(always)]
pub const fn clk_div(&self) -> u8 {
let val = (self.0 >> 0usize) & 0x07;
val as u8
}
#[doc = "TIMCx counter prescaler"]
#[inline(always)]
pub const fn set_clk_div(&mut self, val: u8) {
self.0 = (self.0 & !(0x07 << 0usize)) | (((val as u32) & 0x07) << 0usize);
}
#[doc = "TIMCx Mode Select"]
#[must_use]
#[inline(always)]
pub const fn tms(&self) -> u8 {
let val = (self.0 >> 8usize) & 0x03;
val as u8
}
#[doc = "TIMCx Mode Select"]
#[inline(always)]
pub const fn set_tms(&mut self, val: u8) {
self.0 = (self.0 & !(0x03 << 8usize)) | (((val as u32) & 0x03) << 8usize);
}
#[doc = "Auto Reload CCRm"]
#[must_use]
#[inline(always)]
pub const fn arcr(&self) -> bool {
let val = (self.0 >> 12usize) & 0x01;
val != 0
}
#[doc = "Auto Reload CCRm"]
#[inline(always)]
pub const fn set_arcr(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize);
}
#[doc = "Auto Reload PR"]
#[must_use]
#[inline(always)]
pub const fn arpr(&self) -> bool {
let val = (self.0 >> 13usize) & 0x01;
val != 0
}
#[doc = "Auto Reload PR"]
#[inline(always)]
pub const fn set_arpr(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
}
#[doc = "Single CNT Work Mode"]
#[must_use]
#[inline(always)]
pub const fn scwm(&self) -> bool {
let val = (self.0 >> 14usize) & 0x01;
val != 0
}
#[doc = "Single CNT Work Mode"]
#[inline(always)]
pub const fn set_scwm(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
}
#[doc = "CNT Enable"]
#[must_use]
#[inline(always)]
pub const fn cnt_en(&self) -> bool {
let val = (self.0 >> 15usize) & 0x01;
val != 0
}
#[doc = "CNT Enable"]
#[inline(always)]
pub const fn set_cnt_en(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize);
}
}
impl Default for Csr {
#[inline(always)]
fn default() -> Csr {
Csr(0)
}
}
impl core::fmt::Debug for Csr {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("Csr")
.field("clk_div", &self.clk_div())
.field("tms", &self.tms())
.field("arcr", &self.arcr())
.field("arpr", &self.arpr())
.field("scwm", &self.scwm())
.field("cnt_en", &self.cnt_en())
.finish()
}
}
#[cfg(feature = "defmt")]
impl defmt::Format for Csr {
fn format(&self, f: defmt::Formatter) {
defmt :: write ! (f , "Csr {{ clk_div: {=u8:?}, tms: {=u8:?}, arcr: {=bool:?}, arpr: {=bool:?}, scwm: {=bool:?}, cnt_en: {=bool:?} }}" , self . clk_div () , self . tms () , self . arcr () , self . arpr () , self . scwm () , self . cnt_en ())
}
}
#[doc = "IER"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Ier(pub u32);
impl Ier {
#[doc = "Rising Event Interrupt Enable of Channel 1"]
#[must_use]
#[inline(always)]
pub const fn cr1_ie(&self) -> bool {
let val = (self.0 >> 0usize) & 0x01;
val != 0
}
#[doc = "Rising Event Interrupt Enable of Channel 1"]
#[inline(always)]
pub const fn set_cr1_ie(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
}
#[doc = "Falling Event Interrupt Enable of Channel 1"]
#[must_use]
#[inline(always)]
pub const fn cf1_ie(&self) -> bool {
let val = (self.0 >> 1usize) & 0x01;
val != 0
}
#[doc = "Falling Event Interrupt Enable of Channel 1"]
#[inline(always)]
pub const fn set_cf1_ie(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
}
#[doc = "Rising Event Interrupt Enable of Channel 2"]
#[must_use]
#[inline(always)]
pub const fn cr2_ie(&self) -> bool {
let val = (self.0 >> 2usize) & 0x01;
val != 0
}
#[doc = "Rising Event Interrupt Enable of Channel 2"]
#[inline(always)]
pub const fn set_cr2_ie(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
}
#[doc = "Falling Event Interrupt Enable of Channel 2"]
#[must_use]
#[inline(always)]
pub const fn cf2_ie(&self) -> bool {
let val = (self.0 >> 3usize) & 0x01;
val != 0
}
#[doc = "Falling Event Interrupt Enable of Channel 2"]
#[inline(always)]
pub const fn set_cf2_ie(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
}
#[doc = "Rising Event Interrupt Enable of Channel 3"]
#[must_use]
#[inline(always)]
pub const fn cr3_ie(&self) -> bool {
let val = (self.0 >> 4usize) & 0x01;
val != 0
}
#[doc = "Rising Event Interrupt Enable of Channel 3"]
#[inline(always)]
pub const fn set_cr3_ie(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
}
#[doc = "Falling Event Interrupt Enable of Channel 3"]
#[must_use]
#[inline(always)]
pub const fn cf3_ie(&self) -> bool {
let val = (self.0 >> 5usize) & 0x01;
val != 0
}
#[doc = "Falling Event Interrupt Enable of Channel 3"]
#[inline(always)]
pub const fn set_cf3_ie(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
}
#[doc = "Rising Event Interrupt Enable of Channel 4"]
#[must_use]
#[inline(always)]
pub const fn cr4_ie(&self) -> bool {
let val = (self.0 >> 6usize) & 0x01;
val != 0
}
#[doc = "Rising Event Interrupt Enable of Channel 4"]
#[inline(always)]
pub const fn set_cr4_ie(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
}
#[doc = "Falling Event Interrupt Enable of Channel 4"]
#[must_use]
#[inline(always)]
pub const fn cf4_ie(&self) -> bool {
let val = (self.0 >> 7usize) & 0x01;
val != 0
}
#[doc = "Falling Event Interrupt Enable of Channel 4"]
#[inline(always)]
pub const fn set_cf4_ie(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
}
#[doc = "Update Interrupt Enable"]
#[must_use]
#[inline(always)]
pub const fn ud_ie(&self) -> bool {
let val = (self.0 >> 8usize) & 0x01;
val != 0
}
#[doc = "Update Interrupt Enable"]
#[inline(always)]
pub const fn set_ud_ie(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
}
#[doc = "Overflow Interrupt Enable"]
#[must_use]
#[inline(always)]
pub const fn ovf_ie(&self) -> bool {
let val = (self.0 >> 9usize) & 0x01;
val != 0
}
#[doc = "Overflow Interrupt Enable"]
#[inline(always)]
pub const fn set_ovf_ie(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
}
#[doc = "Protection Interrupt Enable"]
#[must_use]
#[inline(always)]
pub const fn pp_ie(&self) -> bool {
let val = (self.0 >> 10usize) & 0x01;
val != 0
}
#[doc = "Protection Interrupt Enable"]
#[inline(always)]
pub const fn set_pp_ie(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
}
}
impl Default for Ier {
#[inline(always)]
fn default() -> Ier {
Ier(0)
}
}
impl core::fmt::Debug for Ier {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("Ier")
.field("cr1_ie", &self.cr1_ie())
.field("cf1_ie", &self.cf1_ie())
.field("cr2_ie", &self.cr2_ie())
.field("cf2_ie", &self.cf2_ie())
.field("cr3_ie", &self.cr3_ie())
.field("cf3_ie", &self.cf3_ie())
.field("cr4_ie", &self.cr4_ie())
.field("cf4_ie", &self.cf4_ie())
.field("ud_ie", &self.ud_ie())
.field("ovf_ie", &self.ovf_ie())
.field("pp_ie", &self.pp_ie())
.finish()
}
}
#[cfg(feature = "defmt")]
impl defmt::Format for Ier {
fn format(&self, f: defmt::Formatter) {
defmt :: write ! (f , "Ier {{ cr1_ie: {=bool:?}, cf1_ie: {=bool:?}, cr2_ie: {=bool:?}, cf2_ie: {=bool:?}, cr3_ie: {=bool:?}, cf3_ie: {=bool:?}, cr4_ie: {=bool:?}, cf4_ie: {=bool:?}, ud_ie: {=bool:?}, ovf_ie: {=bool:?}, pp_ie: {=bool:?} }}" , self . cr1_ie () , self . cf1_ie () , self . cr2_ie () , self . cf2_ie () , self . cr3_ie () , self . cf3_ie () , self . cr4_ie () , self . cf4_ie () , self . ud_ie () , self . ovf_ie () , self . pp_ie ())
}
}
#[doc = "IFR"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Ifr(pub u32);
impl Ifr {
#[doc = "Rising Event Interrupt Flag of Channel 1"]
#[must_use]
#[inline(always)]
pub const fn cr1_if(&self) -> bool {
let val = (self.0 >> 0usize) & 0x01;
val != 0
}
#[doc = "Rising Event Interrupt Flag of Channel 1"]
#[inline(always)]
pub const fn set_cr1_if(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
}
#[doc = "Falling Event Interrupt Flag of Channel 1"]
#[must_use]
#[inline(always)]
pub const fn cf1_if(&self) -> bool {
let val = (self.0 >> 1usize) & 0x01;
val != 0
}
#[doc = "Falling Event Interrupt Flag of Channel 1"]
#[inline(always)]
pub const fn set_cf1_if(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
}
#[doc = "Rising Event Interrupt Flag of Channel2"]
#[must_use]
#[inline(always)]
pub const fn cr2_if(&self) -> bool {
let val = (self.0 >> 2usize) & 0x01;
val != 0
}
#[doc = "Rising Event Interrupt Flag of Channel2"]
#[inline(always)]
pub const fn set_cr2_if(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
}
#[doc = "Falling Event Interrupt Flag of Channel 2"]
#[must_use]
#[inline(always)]
pub const fn cf2_if(&self) -> bool {
let val = (self.0 >> 3usize) & 0x01;
val != 0
}
#[doc = "Falling Event Interrupt Flag of Channel 2"]
#[inline(always)]
pub const fn set_cf2_if(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
}
#[doc = "Rising Event Interrupt Flag of Channel 3"]
#[must_use]
#[inline(always)]
pub const fn cr3_if(&self) -> bool {
let val = (self.0 >> 4usize) & 0x01;
val != 0
}
#[doc = "Rising Event Interrupt Flag of Channel 3"]
#[inline(always)]
pub const fn set_cr3_if(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
}
#[doc = "Falling Event Interrupt Flag of Channel 3"]
#[must_use]
#[inline(always)]
pub const fn cf3_if(&self) -> bool {
let val = (self.0 >> 5usize) & 0x01;
val != 0
}
#[doc = "Falling Event Interrupt Flag of Channel 3"]
#[inline(always)]
pub const fn set_cf3_if(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
}
#[doc = "Rising Event Interrupt Flag of Channel 4"]
#[must_use]
#[inline(always)]
pub const fn cr4_if(&self) -> bool {
let val = (self.0 >> 6usize) & 0x01;
val != 0
}
#[doc = "Rising Event Interrupt Flag of Channel 4"]
#[inline(always)]
pub const fn set_cr4_if(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
}
#[doc = "Falling Event Interrupt Flag of Channel 4"]
#[must_use]
#[inline(always)]
pub const fn cf4_if(&self) -> bool {
let val = (self.0 >> 7usize) & 0x01;
val != 0
}
#[doc = "Falling Event Interrupt Flag of Channel 4"]
#[inline(always)]
pub const fn set_cf4_if(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
}
#[doc = "Update Interrupt Flag"]
#[must_use]
#[inline(always)]
pub const fn ud_if(&self) -> bool {
let val = (self.0 >> 8usize) & 0x01;
val != 0
}
#[doc = "Update Interrupt Flag"]
#[inline(always)]
pub const fn set_ud_if(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
}
#[doc = "Overflow Interrupt Flag"]
#[must_use]
#[inline(always)]
pub const fn ovf_if(&self) -> bool {
let val = (self.0 >> 9usize) & 0x01;
val != 0
}
#[doc = "Overflow Interrupt Flag"]
#[inline(always)]
pub const fn set_ovf_if(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
}
#[doc = "Protection Interrupt Flag"]
#[must_use]
#[inline(always)]
pub const fn pp_if(&self) -> bool {
let val = (self.0 >> 10usize) & 0x01;
val != 0
}
#[doc = "Protection Interrupt Flag"]
#[inline(always)]
pub const fn set_pp_if(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
}
}
impl Default for Ifr {
#[inline(always)]
fn default() -> Ifr {
Ifr(0)
}
}
impl core::fmt::Debug for Ifr {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("Ifr")
.field("cr1_if", &self.cr1_if())
.field("cf1_if", &self.cf1_if())
.field("cr2_if", &self.cr2_if())
.field("cf2_if", &self.cf2_if())
.field("cr3_if", &self.cr3_if())
.field("cf3_if", &self.cf3_if())
.field("cr4_if", &self.cr4_if())
.field("cf4_if", &self.cf4_if())
.field("ud_if", &self.ud_if())
.field("ovf_if", &self.ovf_if())
.field("pp_if", &self.pp_if())
.finish()
}
}
#[cfg(feature = "defmt")]
impl defmt::Format for Ifr {
fn format(&self, f: defmt::Formatter) {
defmt :: write ! (f , "Ifr {{ cr1_if: {=bool:?}, cf1_if: {=bool:?}, cr2_if: {=bool:?}, cf2_if: {=bool:?}, cr3_if: {=bool:?}, cf3_if: {=bool:?}, cr4_if: {=bool:?}, cf4_if: {=bool:?}, ud_if: {=bool:?}, ovf_if: {=bool:?}, pp_if: {=bool:?} }}" , self . cr1_if () , self . cf1_if () , self . cr2_if () , self . cf2_if () , self . cr3_if () , self . cf3_if () , self . cr4_if () , self . cf4_if () , self . ud_if () , self . ovf_if () , self . pp_if ())
}
}
#[doc = "NFCR"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Nfcr(pub u32);
impl Nfcr {
#[doc = "Input Capture Filter"]
#[must_use]
#[inline(always)]
pub const fn ic_flt(&self) -> u8 {
let val = (self.0 >> 0usize) & 0xff;
val as u8
}
#[doc = "Input Capture Filter"]
#[inline(always)]
pub const fn set_ic_flt(&mut self, val: u8) {
self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize);
}
#[doc = "Protection Input Filter"]
#[must_use]
#[inline(always)]
pub const fn pi_flt(&self) -> u8 {
let val = (self.0 >> 8usize) & 0xff;
val as u8
}
#[doc = "Protection Input Filter"]
#[inline(always)]
pub const fn set_pi_flt(&mut self, val: u8) {
self.0 = (self.0 & !(0xff << 8usize)) | (((val as u32) & 0xff) << 8usize);
}
}
impl Default for Nfcr {
#[inline(always)]
fn default() -> Nfcr {
Nfcr(0)
}
}
impl core::fmt::Debug for Nfcr {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("Nfcr")
.field("ic_flt", &self.ic_flt())
.field("pi_flt", &self.pi_flt())
.finish()
}
}
#[cfg(feature = "defmt")]
impl defmt::Format for Nfcr {
fn format(&self, f: defmt::Formatter) {
defmt::write!(
f,
"Nfcr {{ ic_flt: {=u8:?}, pi_flt: {=u8:?} }}",
self.ic_flt(),
self.pi_flt()
)
}
}
#[doc = "PPS"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Pps(pub u32);
impl Pps {
#[doc = "Protection Enable"]
#[must_use]
#[inline(always)]
pub const fn pe(&self) -> bool {
let val = (self.0 >> 0usize) & 0x01;
val != 0
}
#[doc = "Protection Enable"]
#[inline(always)]
pub const fn set_pe(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
}
#[doc = "Protection Source Selection"]
#[must_use]
#[inline(always)]
pub const fn pss(&self) -> u8 {
let val = (self.0 >> 1usize) & 0x03;
val as u8
}
#[doc = "Protection Source Selection"]
#[inline(always)]
pub const fn set_pss(&mut self, val: u8) {
self.0 = (self.0 & !(0x03 << 1usize)) | (((val as u32) & 0x03) << 1usize);
}
#[doc = "Protection under HALT Mode Select"]
#[must_use]
#[inline(always)]
pub const fn phms(&self) -> bool {
let val = (self.0 >> 4usize) & 0x01;
val != 0
}
#[doc = "Protection under HALT Mode Select"]
#[inline(always)]
pub const fn set_phms(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
}
#[doc = "Protection Polarity Control"]
#[must_use]
#[inline(always)]
pub const fn ppc(&self) -> bool {
let val = (self.0 >> 5usize) & 0x01;
val != 0
}
#[doc = "Protection Polarity Control"]
#[inline(always)]
pub const fn set_ppc(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
}
#[doc = "PWM Output Enable"]
#[must_use]
#[inline(always)]
pub const fn poe(&self) -> bool {
let val = (self.0 >> 8usize) & 0x01;
val != 0
}
#[doc = "PWM Output Enable"]
#[inline(always)]
pub const fn set_poe(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
}
#[doc = "Automatic Protection Status Clear"]
#[must_use]
#[inline(always)]
pub const fn pac(&self) -> bool {
let val = (self.0 >> 9usize) & 0x01;
val != 0
}
#[doc = "Automatic Protection Status Clear"]
#[inline(always)]
pub const fn set_pac(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
}
#[doc = "Default Output of Channel 1 under protection"]
#[must_use]
#[inline(always)]
pub const fn do1(&self) -> bool {
let val = (self.0 >> 10usize) & 0x01;
val != 0
}
#[doc = "Default Output of Channel 1 under protection"]
#[inline(always)]
pub const fn set_do1(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
}
#[doc = "Default Output of Channel 2 under protection"]
#[must_use]
#[inline(always)]
pub const fn do2(&self) -> bool {
let val = (self.0 >> 11usize) & 0x01;
val != 0
}
#[doc = "Default Output of Channel 2 under protection"]
#[inline(always)]
pub const fn set_do2(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize);
}
#[doc = "Default Output of Channel 3 under protection"]
#[must_use]
#[inline(always)]
pub const fn do3(&self) -> bool {
let val = (self.0 >> 12usize) & 0x01;
val != 0
}
#[doc = "Default Output of Channel 3 under protection"]
#[inline(always)]
pub const fn set_do3(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize);
}
#[doc = "Default Output of Channel 4 under protection"]
#[must_use]
#[inline(always)]
pub const fn do4(&self) -> bool {
let val = (self.0 >> 13usize) & 0x01;
val != 0
}
#[doc = "Default Output of Channel 4 under protection"]
#[inline(always)]
pub const fn set_do4(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
}
}
impl Default for Pps {
#[inline(always)]
fn default() -> Pps {
Pps(0)
}
}
impl core::fmt::Debug for Pps {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("Pps")
.field("pe", &self.pe())
.field("pss", &self.pss())
.field("phms", &self.phms())
.field("ppc", &self.ppc())
.field("poe", &self.poe())
.field("pac", &self.pac())
.field("do1", &self.do1())
.field("do2", &self.do2())
.field("do3", &self.do3())
.field("do4", &self.do4())
.finish()
}
}
#[cfg(feature = "defmt")]
impl defmt::Format for Pps {
fn format(&self, f: defmt::Formatter) {
defmt :: write ! (f , "Pps {{ pe: {=bool:?}, pss: {=u8:?}, phms: {=bool:?}, ppc: {=bool:?}, poe: {=bool:?}, pac: {=bool:?}, do1: {=bool:?}, do2: {=bool:?}, do3: {=bool:?}, do4: {=bool:?} }}" , self . pe () , self . pss () , self . phms () , self . ppc () , self . poe () , self . pac () , self . do1 () , self . do2 () , self . do3 () , self . do4 ())
}
}
#[doc = "PR"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Pr(pub u32);
impl Pr {
#[doc = "Timer period register"]
#[must_use]
#[inline(always)]
pub const fn pr(&self) -> u16 {
let val = (self.0 >> 0usize) & 0xffff;
val as u16
}
#[doc = "Timer period register"]
#[inline(always)]
pub const fn set_pr(&mut self, val: u16) {
self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
}
}
impl Default for Pr {
#[inline(always)]
fn default() -> Pr {
Pr(0)
}
}
impl core::fmt::Debug for Pr {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("Pr").field("pr", &self.pr()).finish()
}
}
#[cfg(feature = "defmt")]
impl defmt::Format for Pr {
fn format(&self, f: defmt::Formatter) {
defmt::write!(f, "Pr {{ pr: {=u16:?} }}", self.pr())
}
}
#[doc = "SR"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Sr(pub u32);
impl Sr {
#[doc = "Overflow High Signal Flag"]
#[must_use]
#[inline(always)]
pub const fn olsf(&self) -> bool {
let val = (self.0 >> 0usize) & 0x01;
val != 0
}
#[doc = "Overflow High Signal Flag"]
#[inline(always)]
pub const fn set_olsf(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
}
#[doc = "Overflow High Signal Flag"]
#[must_use]
#[inline(always)]
pub const fn ohsf(&self) -> bool {
let val = (self.0 >> 1usize) & 0x01;
val != 0
}
#[doc = "Overflow High Signal Flag"]
#[inline(always)]
pub const fn set_ohsf(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
}
}
impl Default for Sr {
#[inline(always)]
fn default() -> Sr {
Sr(0)
}
}
impl core::fmt::Debug for Sr {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("Sr")
.field("olsf", &self.olsf())
.field("ohsf", &self.ohsf())
.finish()
}
}
#[cfg(feature = "defmt")]
impl defmt::Format for Sr {
fn format(&self, f: defmt::Formatter) {
defmt::write!(
f,
"Sr {{ olsf: {=bool:?}, ohsf: {=bool:?} }}",
self.olsf(),
self.ohsf()
)
}
}
#[doc = "TISEL"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Tisel(pub u32);
impl Tisel {
#[doc = "Input a select"]
#[must_use]
#[inline(always)]
pub const fn ti1_sel(&self) -> u8 {
let val = (self.0 >> 0usize) & 0x07;
val as u8
}
#[doc = "Input a select"]
#[inline(always)]
pub const fn set_ti1_sel(&mut self, val: u8) {
self.0 = (self.0 & !(0x07 << 0usize)) | (((val as u32) & 0x07) << 0usize);
}
#[doc = "Input 2 select"]
#[must_use]
#[inline(always)]
pub const fn ti2_sel(&self) -> u8 {
let val = (self.0 >> 3usize) & 0x03;
val as u8
}
#[doc = "Input 2 select"]
#[inline(always)]
pub const fn set_ti2_sel(&mut self, val: u8) {
self.0 = (self.0 & !(0x03 << 3usize)) | (((val as u32) & 0x03) << 3usize);
}
}
impl Default for Tisel {
#[inline(always)]
fn default() -> Tisel {
Tisel(0)
}
}
impl core::fmt::Debug for Tisel {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("Tisel")
.field("ti1_sel", &self.ti1_sel())
.field("ti2_sel", &self.ti2_sel())
.finish()
}
}
#[cfg(feature = "defmt")]
impl defmt::Format for Tisel {
fn format(&self, f: defmt::Formatter) {
defmt::write!(
f,
"Tisel {{ ti1_sel: {=u8:?}, ti2_sel: {=u8:?} }}",
self.ti1_sel(),
self.ti2_sel()
)
}
}
#[doc = "TRG0"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Trg0(pub u32);
impl Trg0 {
#[doc = "Trigger 0 value"]
#[must_use]
#[inline(always)]
pub const fn trg0(&self) -> u16 {
let val = (self.0 >> 0usize) & 0xffff;
val as u16
}
#[doc = "Trigger 0 value"]
#[inline(always)]
pub const fn set_trg0(&mut self, val: u16) {
self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
}
}
impl Default for Trg0 {
#[inline(always)]
fn default() -> Trg0 {
Trg0(0)
}
}
impl core::fmt::Debug for Trg0 {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("Trg0").field("trg0", &self.trg0()).finish()
}
}
#[cfg(feature = "defmt")]
impl defmt::Format for Trg0 {
fn format(&self, f: defmt::Formatter) {
defmt::write!(f, "Trg0 {{ trg0: {=u16:?} }}", self.trg0())
}
}
#[doc = "TSS"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Tss(pub u32);
impl Tss {
#[doc = "Trigger Enable"]
#[must_use]
#[inline(always)]
pub const fn ten(&self) -> bool {
let val = (self.0 >> 7usize) & 0x01;
val != 0
}
#[doc = "Trigger Enable"]
#[inline(always)]
pub const fn set_ten(&mut self, val: bool) {
self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
}
}
impl Default for Tss {
#[inline(always)]
fn default() -> Tss {
Tss(0)
}
}
impl core::fmt::Debug for Tss {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("Tss").field("ten", &self.ten()).finish()
}
}
#[cfg(feature = "defmt")]
impl defmt::Format for Tss {
fn format(&self, f: defmt::Formatter) {
defmt::write!(f, "Tss {{ ten: {=bool:?} }}", self.ten())
}
}