lpc845_pac/
sct0.rs

1#[doc = r"Register block"]
2#[repr(C)]
3pub struct RegisterBlock {
4    #[doc = "0x00 - SCT configuration register"]
5    pub config: crate::Reg<config::CONFIG_SPEC>,
6    #[doc = "0x04 - SCT control register"]
7    pub ctrl: crate::Reg<ctrl::CTRL_SPEC>,
8    #[doc = "0x08 - SCT limit event select register"]
9    pub limit: crate::Reg<limit::LIMIT_SPEC>,
10    #[doc = "0x0c - SCT halt event select register"]
11    pub halt: crate::Reg<halt::HALT_SPEC>,
12    #[doc = "0x10 - SCT stop event select register"]
13    pub stop: crate::Reg<stop::STOP_SPEC>,
14    #[doc = "0x14 - SCT start event select register"]
15    pub start: crate::Reg<start::START_SPEC>,
16    _reserved6: [u8; 0x28],
17    #[doc = "0x40 - SCT counter register"]
18    pub count: crate::Reg<count::COUNT_SPEC>,
19    #[doc = "0x44 - SCT state register"]
20    pub state: crate::Reg<state::STATE_SPEC>,
21    #[doc = "0x48 - SCT input register"]
22    pub input: crate::Reg<input::INPUT_SPEC>,
23    #[doc = "0x4c - SCT match/capture mode register"]
24    pub regmode: crate::Reg<regmode::REGMODE_SPEC>,
25    #[doc = "0x50 - SCT output register"]
26    pub output: crate::Reg<output::OUTPUT_SPEC>,
27    #[doc = "0x54 - SCT output counter direction control register"]
28    pub outputdirctrl: crate::Reg<outputdirctrl::OUTPUTDIRCTRL_SPEC>,
29    #[doc = "0x58 - SCT conflict resolution register"]
30    pub res: crate::Reg<res::RES_SPEC>,
31    #[doc = "0x5c - SCT DMA request 0 register"]
32    pub dma0request: crate::Reg<dma0request::DMA0REQUEST_SPEC>,
33    #[doc = "0x60 - SCT DMA request 1 register"]
34    pub dma1request: crate::Reg<dma1request::DMA1REQUEST_SPEC>,
35    _reserved15: [u8; 0x8c],
36    #[doc = "0xf0 - SCT event interrupt enable register"]
37    pub even: crate::Reg<even::EVEN_SPEC>,
38    #[doc = "0xf4 - SCT event flag register"]
39    pub evflag: crate::Reg<evflag::EVFLAG_SPEC>,
40    #[doc = "0xf8 - SCT conflict interrupt enable register"]
41    pub conen: crate::Reg<conen::CONEN_SPEC>,
42    #[doc = "0xfc - SCT conflict flag register"]
43    pub conflag: crate::Reg<conflag::CONFLAG_SPEC>,
44    _reserved_19_cap_match: [u8; 0x20],
45    _reserved20: [u8; 0xe0],
46    _reserved_20_capctrl_matchrel: [u8; 0x20],
47    _reserved21: [u8; 0xe0],
48    #[doc = "0x300..0x340 - no description available"]
49    pub event: [EVENT; 8],
50    _reserved22: [u8; 0x01c0],
51    #[doc = "0x500..0x538 - no description available"]
52    pub out: [OUT; 7],
53}
54impl RegisterBlock {
55    #[doc = "0x100..0x120 - SCT match value register of match channels"]
56    #[inline(always)]
57    pub fn cap_match_sctmatch(
58        &self,
59    ) -> &[crate::Reg<cap_match_sctmatch::CAP_MATCH_SCTMATCH_SPEC>; 8] {
60        unsafe {
61            &*(((self as *const Self) as *const u8).add(256usize)
62                as *const [crate::Reg<cap_match_sctmatch::CAP_MATCH_SCTMATCH_SPEC>; 8])
63        }
64    }
65    #[doc = "0x100..0x120 - SCT capture register of capture channel"]
66    #[inline(always)]
67    pub fn cap_match_sctcap(&self) -> &[crate::Reg<cap_match_sctcap::CAP_MATCH_SCTCAP_SPEC>; 8] {
68        unsafe {
69            &*(((self as *const Self) as *const u8).add(256usize)
70                as *const [crate::Reg<cap_match_sctcap::CAP_MATCH_SCTCAP_SPEC>; 8])
71        }
72    }
73    #[doc = "0x200..0x220 - SCT match reload value register"]
74    #[inline(always)]
75    pub fn capctrl_matchrel_sctmatchrel(
76        &self,
77    ) -> &[crate::Reg<capctrl_matchrel_sctmatchrel::CAPCTRL_MATCHREL_SCTMATCHREL_SPEC>; 8] {
78        unsafe {
79            &*(((self as *const Self) as *const u8).add(512usize)
80                as *const [crate::Reg<
81                    capctrl_matchrel_sctmatchrel::CAPCTRL_MATCHREL_SCTMATCHREL_SPEC,
82                >; 8])
83        }
84    }
85    #[doc = "0x200..0x220 - SCT capture control register"]
86    #[inline(always)]
87    pub fn capctrl_matchrel_sctcapctrl(
88        &self,
89    ) -> &[crate::Reg<capctrl_matchrel_sctcapctrl::CAPCTRL_MATCHREL_SCTCAPCTRL_SPEC>; 8] {
90        unsafe {
91            &*(((self as *const Self) as *const u8).add(512usize)
92                as *const [crate::Reg<
93                    capctrl_matchrel_sctcapctrl::CAPCTRL_MATCHREL_SCTCAPCTRL_SPEC,
94                >; 8])
95        }
96    }
97}
98#[doc = r"Register block"]
99#[repr(C)]
100pub struct EVENT {
101    #[doc = "0x00 - SCT event state register 0"]
102    pub state: crate::Reg<self::event::state::STATE_SPEC>,
103    #[doc = "0x04 - SCT event control register 0"]
104    pub ctrl: crate::Reg<self::event::ctrl::CTRL_SPEC>,
105}
106#[doc = r"Register block"]
107#[doc = "no description available"]
108pub mod event;
109#[doc = r"Register block"]
110#[repr(C)]
111pub struct OUT {
112    #[doc = "0x00 - SCT output 0 set register"]
113    pub set: crate::Reg<self::out::set::SET_SPEC>,
114    #[doc = "0x04 - SCT output 0 clear register"]
115    pub clr: crate::Reg<self::out::clr::CLR_SPEC>,
116}
117#[doc = r"Register block"]
118#[doc = "no description available"]
119pub mod out;
120#[doc = "CONFIG register accessor: an alias for `Reg<CONFIG_SPEC>`"]
121pub type CONFIG = crate::Reg<config::CONFIG_SPEC>;
122#[doc = "SCT configuration register"]
123pub mod config;
124#[doc = "CTRL register accessor: an alias for `Reg<CTRL_SPEC>`"]
125pub type CTRL = crate::Reg<ctrl::CTRL_SPEC>;
126#[doc = "SCT control register"]
127pub mod ctrl;
128#[doc = "LIMIT register accessor: an alias for `Reg<LIMIT_SPEC>`"]
129pub type LIMIT = crate::Reg<limit::LIMIT_SPEC>;
130#[doc = "SCT limit event select register"]
131pub mod limit;
132#[doc = "HALT register accessor: an alias for `Reg<HALT_SPEC>`"]
133pub type HALT = crate::Reg<halt::HALT_SPEC>;
134#[doc = "SCT halt event select register"]
135pub mod halt;
136#[doc = "STOP register accessor: an alias for `Reg<STOP_SPEC>`"]
137pub type STOP = crate::Reg<stop::STOP_SPEC>;
138#[doc = "SCT stop event select register"]
139pub mod stop;
140#[doc = "START register accessor: an alias for `Reg<START_SPEC>`"]
141pub type START = crate::Reg<start::START_SPEC>;
142#[doc = "SCT start event select register"]
143pub mod start;
144#[doc = "COUNT register accessor: an alias for `Reg<COUNT_SPEC>`"]
145pub type COUNT = crate::Reg<count::COUNT_SPEC>;
146#[doc = "SCT counter register"]
147pub mod count;
148#[doc = "STATE register accessor: an alias for `Reg<STATE_SPEC>`"]
149pub type STATE = crate::Reg<state::STATE_SPEC>;
150#[doc = "SCT state register"]
151pub mod state;
152#[doc = "INPUT register accessor: an alias for `Reg<INPUT_SPEC>`"]
153pub type INPUT = crate::Reg<input::INPUT_SPEC>;
154#[doc = "SCT input register"]
155pub mod input;
156#[doc = "REGMODE register accessor: an alias for `Reg<REGMODE_SPEC>`"]
157pub type REGMODE = crate::Reg<regmode::REGMODE_SPEC>;
158#[doc = "SCT match/capture mode register"]
159pub mod regmode;
160#[doc = "OUTPUT register accessor: an alias for `Reg<OUTPUT_SPEC>`"]
161pub type OUTPUT = crate::Reg<output::OUTPUT_SPEC>;
162#[doc = "SCT output register"]
163pub mod output;
164#[doc = "OUTPUTDIRCTRL register accessor: an alias for `Reg<OUTPUTDIRCTRL_SPEC>`"]
165pub type OUTPUTDIRCTRL = crate::Reg<outputdirctrl::OUTPUTDIRCTRL_SPEC>;
166#[doc = "SCT output counter direction control register"]
167pub mod outputdirctrl;
168#[doc = "RES register accessor: an alias for `Reg<RES_SPEC>`"]
169pub type RES = crate::Reg<res::RES_SPEC>;
170#[doc = "SCT conflict resolution register"]
171pub mod res;
172#[doc = "DMA0REQUEST register accessor: an alias for `Reg<DMA0REQUEST_SPEC>`"]
173pub type DMA0REQUEST = crate::Reg<dma0request::DMA0REQUEST_SPEC>;
174#[doc = "SCT DMA request 0 register"]
175pub mod dma0request;
176#[doc = "DMA1REQUEST register accessor: an alias for `Reg<DMA1REQUEST_SPEC>`"]
177pub type DMA1REQUEST = crate::Reg<dma1request::DMA1REQUEST_SPEC>;
178#[doc = "SCT DMA request 1 register"]
179pub mod dma1request;
180#[doc = "EVEN register accessor: an alias for `Reg<EVEN_SPEC>`"]
181pub type EVEN = crate::Reg<even::EVEN_SPEC>;
182#[doc = "SCT event interrupt enable register"]
183pub mod even;
184#[doc = "EVFLAG register accessor: an alias for `Reg<EVFLAG_SPEC>`"]
185pub type EVFLAG = crate::Reg<evflag::EVFLAG_SPEC>;
186#[doc = "SCT event flag register"]
187pub mod evflag;
188#[doc = "CONEN register accessor: an alias for `Reg<CONEN_SPEC>`"]
189pub type CONEN = crate::Reg<conen::CONEN_SPEC>;
190#[doc = "SCT conflict interrupt enable register"]
191pub mod conen;
192#[doc = "CONFLAG register accessor: an alias for `Reg<CONFLAG_SPEC>`"]
193pub type CONFLAG = crate::Reg<conflag::CONFLAG_SPEC>;
194#[doc = "SCT conflict flag register"]
195pub mod conflag;
196#[doc = "CAP_MATCH_SCTCAP register accessor: an alias for `Reg<CAP_MATCH_SCTCAP_SPEC>`"]
197pub type CAP_MATCH_SCTCAP = crate::Reg<cap_match_sctcap::CAP_MATCH_SCTCAP_SPEC>;
198#[doc = "SCT capture register of capture channel"]
199pub mod cap_match_sctcap;
200#[doc = "CAP_MATCH_SCTMATCH register accessor: an alias for `Reg<CAP_MATCH_SCTMATCH_SPEC>`"]
201pub type CAP_MATCH_SCTMATCH = crate::Reg<cap_match_sctmatch::CAP_MATCH_SCTMATCH_SPEC>;
202#[doc = "SCT match value register of match channels"]
203pub mod cap_match_sctmatch;
204#[doc = "CAPCTRL_MATCHREL_SCTCAPCTRL register accessor: an alias for `Reg<CAPCTRL_MATCHREL_SCTCAPCTRL_SPEC>`"]
205pub type CAPCTRL_MATCHREL_SCTCAPCTRL =
206    crate::Reg<capctrl_matchrel_sctcapctrl::CAPCTRL_MATCHREL_SCTCAPCTRL_SPEC>;
207#[doc = "SCT capture control register"]
208pub mod capctrl_matchrel_sctcapctrl;
209#[doc = "CAPCTRL_MATCHREL_SCTMATCHREL register accessor: an alias for `Reg<CAPCTRL_MATCHREL_SCTMATCHREL_SPEC>`"]
210pub type CAPCTRL_MATCHREL_SCTMATCHREL =
211    crate::Reg<capctrl_matchrel_sctmatchrel::CAPCTRL_MATCHREL_SCTMATCHREL_SPEC>;
212#[doc = "SCT match reload value register"]
213pub mod capctrl_matchrel_sctmatchrel;