summaryrefslogtreecommitdiff
path: root/src/tc0.rs
diff options
context:
space:
mode:
authorArne Dußin2021-11-06 11:50:33 +0100
committerArne Dußin2021-11-06 11:50:33 +0100
commit0666a6ba1dbd66cf8b93c113e362ccbcd99152a0 (patch)
treea184284dbd2316f4624f092e4e7521ea8c90855b /src/tc0.rs
downloadsamc21-0666a6ba1dbd66cf8b93c113e362ccbcd99152a0.tar.gz
samc21-0666a6ba1dbd66cf8b93c113e362ccbcd99152a0.zip
Initial commit
Diffstat (limited to 'src/tc0.rs')
-rw-r--r--src/tc0.rs146
1 files changed, 146 insertions, 0 deletions
diff --git a/src/tc0.rs b/src/tc0.rs
new file mode 100644
index 0000000..86e973b
--- /dev/null
+++ b/src/tc0.rs
@@ -0,0 +1,146 @@
+#[doc = r"Register block"]
+#[repr(C)]
+pub struct RegisterBlock {
+ _reserved_0_count8: [u8; 0x38],
+}
+impl RegisterBlock {
+ #[doc = "0x00..0x38 - 32-bit Counter Mode"]
+ #[inline(always)]
+ pub fn count32(&self) -> &COUNT32 {
+ unsafe { &*(((self as *const Self) as *const u8).add(0usize) as *const COUNT32) }
+ }
+ #[doc = "0x00..0x34 - 16-bit Counter Mode"]
+ #[inline(always)]
+ pub fn count16(&self) -> &COUNT16 {
+ unsafe { &*(((self as *const Self) as *const u8).add(0usize) as *const COUNT16) }
+ }
+ #[doc = "0x00..0x32 - 8-bit Counter Mode"]
+ #[inline(always)]
+ pub fn count8(&self) -> &COUNT8 {
+ unsafe { &*(((self as *const Self) as *const u8).add(0usize) as *const COUNT8) }
+ }
+}
+#[doc = r"Register block"]
+#[repr(C)]
+pub struct COUNT8 {
+ #[doc = "0x00 - Control A"]
+ pub ctrla: crate::Reg<self::count8::ctrla::CTRLA_SPEC>,
+ #[doc = "0x04 - Control B Clear"]
+ pub ctrlbclr: crate::Reg<self::count8::ctrlbclr::CTRLBCLR_SPEC>,
+ #[doc = "0x05 - Control B Set"]
+ pub ctrlbset: crate::Reg<self::count8::ctrlbset::CTRLBSET_SPEC>,
+ #[doc = "0x06 - Event Control"]
+ pub evctrl: crate::Reg<self::count8::evctrl::EVCTRL_SPEC>,
+ #[doc = "0x08 - Interrupt Enable Clear"]
+ pub intenclr: crate::Reg<self::count8::intenclr::INTENCLR_SPEC>,
+ #[doc = "0x09 - Interrupt Enable Set"]
+ pub intenset: crate::Reg<self::count8::intenset::INTENSET_SPEC>,
+ #[doc = "0x0a - Interrupt Flag Status and Clear"]
+ pub intflag: crate::Reg<self::count8::intflag::INTFLAG_SPEC>,
+ #[doc = "0x0b - Status"]
+ pub status: crate::Reg<self::count8::status::STATUS_SPEC>,
+ #[doc = "0x0c - Waveform Generation Control"]
+ pub wave: crate::Reg<self::count8::wave::WAVE_SPEC>,
+ #[doc = "0x0d - Control C"]
+ pub drvctrl: crate::Reg<self::count8::drvctrl::DRVCTRL_SPEC>,
+ _reserved10: [u8; 0x01],
+ #[doc = "0x0f - Debug Control"]
+ pub dbgctrl: crate::Reg<self::count8::dbgctrl::DBGCTRL_SPEC>,
+ #[doc = "0x10 - Synchronization Status"]
+ pub syncbusy: crate::Reg<self::count8::syncbusy::SYNCBUSY_SPEC>,
+ #[doc = "0x14 - COUNT8 Count"]
+ pub count: crate::Reg<self::count8::count::COUNT_SPEC>,
+ _reserved13: [u8; 0x06],
+ #[doc = "0x1b - COUNT8 Period"]
+ pub per: crate::Reg<self::count8::per::PER_SPEC>,
+ #[doc = "0x1c - COUNT8 Compare and Capture"]
+ pub cc: [crate::Reg<self::count8::cc::CC_SPEC>; 2],
+ _reserved15: [u8; 0x11],
+ #[doc = "0x2f - COUNT8 Period Buffer"]
+ pub perbuf: crate::Reg<self::count8::perbuf::PERBUF_SPEC>,
+ #[doc = "0x30 - COUNT8 Compare and Capture Buffer"]
+ pub ccbuf: [crate::Reg<self::count8::ccbuf::CCBUF_SPEC>; 2],
+}
+#[doc = r"Register block"]
+#[doc = "8-bit Counter Mode"]
+pub mod count8;
+#[doc = r"Register block"]
+#[repr(C)]
+pub struct COUNT16 {
+ #[doc = "0x00 - Control A"]
+ pub ctrla: crate::Reg<self::count16::ctrla::CTRLA_SPEC>,
+ #[doc = "0x04 - Control B Clear"]
+ pub ctrlbclr: crate::Reg<self::count16::ctrlbclr::CTRLBCLR_SPEC>,
+ #[doc = "0x05 - Control B Set"]
+ pub ctrlbset: crate::Reg<self::count16::ctrlbset::CTRLBSET_SPEC>,
+ #[doc = "0x06 - Event Control"]
+ pub evctrl: crate::Reg<self::count16::evctrl::EVCTRL_SPEC>,
+ #[doc = "0x08 - Interrupt Enable Clear"]
+ pub intenclr: crate::Reg<self::count16::intenclr::INTENCLR_SPEC>,
+ #[doc = "0x09 - Interrupt Enable Set"]
+ pub intenset: crate::Reg<self::count16::intenset::INTENSET_SPEC>,
+ #[doc = "0x0a - Interrupt Flag Status and Clear"]
+ pub intflag: crate::Reg<self::count16::intflag::INTFLAG_SPEC>,
+ #[doc = "0x0b - Status"]
+ pub status: crate::Reg<self::count16::status::STATUS_SPEC>,
+ #[doc = "0x0c - Waveform Generation Control"]
+ pub wave: crate::Reg<self::count16::wave::WAVE_SPEC>,
+ #[doc = "0x0d - Control C"]
+ pub drvctrl: crate::Reg<self::count16::drvctrl::DRVCTRL_SPEC>,
+ _reserved10: [u8; 0x01],
+ #[doc = "0x0f - Debug Control"]
+ pub dbgctrl: crate::Reg<self::count16::dbgctrl::DBGCTRL_SPEC>,
+ #[doc = "0x10 - Synchronization Status"]
+ pub syncbusy: crate::Reg<self::count16::syncbusy::SYNCBUSY_SPEC>,
+ #[doc = "0x14 - COUNT16 Count"]
+ pub count: crate::Reg<self::count16::count::COUNT_SPEC>,
+ _reserved13: [u8; 0x06],
+ #[doc = "0x1c - COUNT16 Compare and Capture"]
+ pub cc: [crate::Reg<self::count16::cc::CC_SPEC>; 2],
+ _reserved14: [u8; 0x10],
+ #[doc = "0x30 - COUNT16 Compare and Capture Buffer"]
+ pub ccbuf: [crate::Reg<self::count16::ccbuf::CCBUF_SPEC>; 2],
+}
+#[doc = r"Register block"]
+#[doc = "16-bit Counter Mode"]
+pub mod count16;
+#[doc = r"Register block"]
+#[repr(C)]
+pub struct COUNT32 {
+ #[doc = "0x00 - Control A"]
+ pub ctrla: crate::Reg<self::count32::ctrla::CTRLA_SPEC>,
+ #[doc = "0x04 - Control B Clear"]
+ pub ctrlbclr: crate::Reg<self::count32::ctrlbclr::CTRLBCLR_SPEC>,
+ #[doc = "0x05 - Control B Set"]
+ pub ctrlbset: crate::Reg<self::count32::ctrlbset::CTRLBSET_SPEC>,
+ #[doc = "0x06 - Event Control"]
+ pub evctrl: crate::Reg<self::count32::evctrl::EVCTRL_SPEC>,
+ #[doc = "0x08 - Interrupt Enable Clear"]
+ pub intenclr: crate::Reg<self::count32::intenclr::INTENCLR_SPEC>,
+ #[doc = "0x09 - Interrupt Enable Set"]
+ pub intenset: crate::Reg<self::count32::intenset::INTENSET_SPEC>,
+ #[doc = "0x0a - Interrupt Flag Status and Clear"]
+ pub intflag: crate::Reg<self::count32::intflag::INTFLAG_SPEC>,
+ #[doc = "0x0b - Status"]
+ pub status: crate::Reg<self::count32::status::STATUS_SPEC>,
+ #[doc = "0x0c - Waveform Generation Control"]
+ pub wave: crate::Reg<self::count32::wave::WAVE_SPEC>,
+ #[doc = "0x0d - Control C"]
+ pub drvctrl: crate::Reg<self::count32::drvctrl::DRVCTRL_SPEC>,
+ _reserved10: [u8; 0x01],
+ #[doc = "0x0f - Debug Control"]
+ pub dbgctrl: crate::Reg<self::count32::dbgctrl::DBGCTRL_SPEC>,
+ #[doc = "0x10 - Synchronization Status"]
+ pub syncbusy: crate::Reg<self::count32::syncbusy::SYNCBUSY_SPEC>,
+ #[doc = "0x14 - COUNT32 Count"]
+ pub count: crate::Reg<self::count32::count::COUNT_SPEC>,
+ _reserved13: [u8; 0x04],
+ #[doc = "0x1c..0x24 - COUNT32 Compare and Capture"]
+ pub cc: [crate::Reg<self::count32::cc::CC_SPEC>; 2],
+ _reserved14: [u8; 0x0c],
+ #[doc = "0x30..0x38 - COUNT32 Compare and Capture Buffer"]
+ pub ccbuf: [crate::Reg<self::count32::ccbuf::CCBUF_SPEC>; 2],
+}
+#[doc = r"Register block"]
+#[doc = "32-bit Counter Mode"]
+pub mod count32;