1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#[doc = r"Register block"]
#[repr(C)]
pub struct RegisterBlock {
    _reserved_0_count8: [u8; 0x20],
}
impl RegisterBlock {
    #[doc = "0x00..0x20 - 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..0x1c - 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..0x1a - 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 = "0x02 - Read Request"]
    pub readreq: crate::Reg<self::count8::readreq::READREQ_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 - Control C"]
    pub ctrlc: crate::Reg<self::count8::ctrlc::CTRLC_SPEC>,
    _reserved5: [u8; 0x01],
    #[doc = "0x08 - Debug Control"]
    pub dbgctrl: crate::Reg<self::count8::dbgctrl::DBGCTRL_SPEC>,
    _reserved6: [u8; 0x01],
    #[doc = "0x0a - Event Control"]
    pub evctrl: crate::Reg<self::count8::evctrl::EVCTRL_SPEC>,
    #[doc = "0x0c - Interrupt Enable Clear"]
    pub intenclr: crate::Reg<self::count8::intenclr::INTENCLR_SPEC>,
    #[doc = "0x0d - Interrupt Enable Set"]
    pub intenset: crate::Reg<self::count8::intenset::INTENSET_SPEC>,
    #[doc = "0x0e - Interrupt Flag Status and Clear"]
    pub intflag: crate::Reg<self::count8::intflag::INTFLAG_SPEC>,
    #[doc = "0x0f - Status"]
    pub status: crate::Reg<self::count8::status::STATUS_SPEC>,
    #[doc = "0x10 - COUNT8 Counter Value"]
    pub count: crate::Reg<self::count8::count::COUNT_SPEC>,
    _reserved12: [u8; 0x03],
    #[doc = "0x14 - COUNT8 Period Value"]
    pub per: crate::Reg<self::count8::per::PER_SPEC>,
    _reserved13: [u8; 0x03],
    #[doc = "0x18 - COUNT8 Compare/Capture"]
    pub cc: [crate::Reg<self::count8::cc::CC_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 = "0x02 - Read Request"]
    pub readreq: crate::Reg<self::count16::readreq::READREQ_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 - Control C"]
    pub ctrlc: crate::Reg<self::count16::ctrlc::CTRLC_SPEC>,
    _reserved5: [u8; 0x01],
    #[doc = "0x08 - Debug Control"]
    pub dbgctrl: crate::Reg<self::count16::dbgctrl::DBGCTRL_SPEC>,
    _reserved6: [u8; 0x01],
    #[doc = "0x0a - Event Control"]
    pub evctrl: crate::Reg<self::count16::evctrl::EVCTRL_SPEC>,
    #[doc = "0x0c - Interrupt Enable Clear"]
    pub intenclr: crate::Reg<self::count16::intenclr::INTENCLR_SPEC>,
    #[doc = "0x0d - Interrupt Enable Set"]
    pub intenset: crate::Reg<self::count16::intenset::INTENSET_SPEC>,
    #[doc = "0x0e - Interrupt Flag Status and Clear"]
    pub intflag: crate::Reg<self::count16::intflag::INTFLAG_SPEC>,
    #[doc = "0x0f - Status"]
    pub status: crate::Reg<self::count16::status::STATUS_SPEC>,
    #[doc = "0x10 - COUNT16 Counter Value"]
    pub count: crate::Reg<self::count16::count::COUNT_SPEC>,
    _reserved12: [u8; 0x06],
    #[doc = "0x18 - COUNT16 Compare/Capture"]
    pub cc: [crate::Reg<self::count16::cc::CC_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 = "0x02 - Read Request"]
    pub readreq: crate::Reg<self::count32::readreq::READREQ_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 - Control C"]
    pub ctrlc: crate::Reg<self::count32::ctrlc::CTRLC_SPEC>,
    _reserved5: [u8; 0x01],
    #[doc = "0x08 - Debug Control"]
    pub dbgctrl: crate::Reg<self::count32::dbgctrl::DBGCTRL_SPEC>,
    _reserved6: [u8; 0x01],
    #[doc = "0x0a - Event Control"]
    pub evctrl: crate::Reg<self::count32::evctrl::EVCTRL_SPEC>,
    #[doc = "0x0c - Interrupt Enable Clear"]
    pub intenclr: crate::Reg<self::count32::intenclr::INTENCLR_SPEC>,
    #[doc = "0x0d - Interrupt Enable Set"]
    pub intenset: crate::Reg<self::count32::intenset::INTENSET_SPEC>,
    #[doc = "0x0e - Interrupt Flag Status and Clear"]
    pub intflag: crate::Reg<self::count32::intflag::INTFLAG_SPEC>,
    #[doc = "0x0f - Status"]
    pub status: crate::Reg<self::count32::status::STATUS_SPEC>,
    #[doc = "0x10 - COUNT32 Counter Value"]
    pub count: crate::Reg<self::count32::count::COUNT_SPEC>,
    _reserved12: [u8; 0x04],
    #[doc = "0x18..0x20 - COUNT32 Compare/Capture"]
    pub cc: [crate::Reg<self::count32::cc::CC_SPEC>; 2],
}
#[doc = r"Register block"]
#[doc = "32-bit Counter Mode"]
pub mod count32;