atsam4lc8b_pac/
adcife.rs

1#[doc = r"Register block"]
2#[repr(C)]
3pub struct RegisterBlock {
4    #[doc = "0x00 - Control Register"]
5    pub cr: CR,
6    #[doc = "0x04 - Configuration Register"]
7    pub cfg: CFG,
8    #[doc = "0x08 - Status Register"]
9    pub sr: SR,
10    #[doc = "0x0c - Status Clear Register"]
11    pub scr: SCR,
12    #[doc = "0x10 - Resistive Touch Screen Register"]
13    pub rts: RTS,
14    #[doc = "0x14 - Sequencer Configuration Register"]
15    pub seqcfg: SEQCFG,
16    _reserved_6_first_dma_word_cdma: [u8; 0x04],
17    #[doc = "0x1c - Timing Configuration Register"]
18    pub tim: TIM,
19    #[doc = "0x20 - Internal Timer Register"]
20    pub itimer: ITIMER,
21    #[doc = "0x24 - Window Monitor Configuration Register"]
22    pub wcfg: WCFG,
23    #[doc = "0x28 - Window Monitor Threshold Configuration Register"]
24    pub wth: WTH,
25    #[doc = "0x2c - Sequencer Last Converted Value Register"]
26    pub lcv: LCV,
27    #[doc = "0x30 - Interrupt Enable Register"]
28    pub ier: IER,
29    #[doc = "0x34 - Interrupt Disable Register"]
30    pub idr: IDR,
31    #[doc = "0x38 - Interrupt Mask Register"]
32    pub imr: IMR,
33    #[doc = "0x3c - Calibration Register"]
34    pub calib: CALIB,
35    #[doc = "0x40 - Version Register"]
36    pub version: VERSION,
37    #[doc = "0x44 - Parameter Register"]
38    pub parameter: PARAMETER,
39}
40impl RegisterBlock {
41    #[doc = "0x18 - Configuration Direct Memory Access Register"]
42    #[inline(always)]
43    pub const fn second_dma_word_cdma_alt(&self) -> &SECOND_DMA_WORD_CDMA_ALT {
44        unsafe { &*(self as *const Self).cast::<u8>().add(24usize).cast() }
45    }
46    #[doc = "0x18 - Configuration Direct Memory Access Register"]
47    #[inline(always)]
48    pub const fn first_dma_word_cdma(&self) -> &FIRST_DMA_WORD_CDMA {
49        unsafe { &*(self as *const Self).cast::<u8>().add(24usize).cast() }
50    }
51}
52#[doc = "CALIB (rw) register accessor: an alias for `Reg<CALIB_SPEC>`"]
53pub type CALIB = crate::Reg<calib::CALIB_SPEC>;
54#[doc = "Calibration Register"]
55pub mod calib;
56#[doc = "FIRST_DMA_WORD_CDMA (w) register accessor: an alias for `Reg<FIRST_DMA_WORD_CDMA_SPEC>`"]
57pub type FIRST_DMA_WORD_CDMA = crate::Reg<first_dma_word_cdma::FIRST_DMA_WORD_CDMA_SPEC>;
58#[doc = "Configuration Direct Memory Access Register"]
59pub mod first_dma_word_cdma;
60#[doc = "SECOND_DMA_WORD_CDMA_ALT (w) register accessor: an alias for `Reg<SECOND_DMA_WORD_CDMA_ALT_SPEC>`"]
61pub type SECOND_DMA_WORD_CDMA_ALT =
62    crate::Reg<second_dma_word_cdma_alt::SECOND_DMA_WORD_CDMA_ALT_SPEC>;
63#[doc = "Configuration Direct Memory Access Register"]
64pub mod second_dma_word_cdma_alt;
65#[doc = "CFG (rw) register accessor: an alias for `Reg<CFG_SPEC>`"]
66pub type CFG = crate::Reg<cfg::CFG_SPEC>;
67#[doc = "Configuration Register"]
68pub mod cfg;
69#[doc = "CR (w) register accessor: an alias for `Reg<CR_SPEC>`"]
70pub type CR = crate::Reg<cr::CR_SPEC>;
71#[doc = "Control Register"]
72pub mod cr;
73#[doc = "IDR (w) register accessor: an alias for `Reg<IDR_SPEC>`"]
74pub type IDR = crate::Reg<idr::IDR_SPEC>;
75#[doc = "Interrupt Disable Register"]
76pub mod idr;
77#[doc = "IER (w) register accessor: an alias for `Reg<IER_SPEC>`"]
78pub type IER = crate::Reg<ier::IER_SPEC>;
79#[doc = "Interrupt Enable Register"]
80pub mod ier;
81#[doc = "IMR (r) register accessor: an alias for `Reg<IMR_SPEC>`"]
82pub type IMR = crate::Reg<imr::IMR_SPEC>;
83#[doc = "Interrupt Mask Register"]
84pub mod imr;
85#[doc = "ITIMER (rw) register accessor: an alias for `Reg<ITIMER_SPEC>`"]
86pub type ITIMER = crate::Reg<itimer::ITIMER_SPEC>;
87#[doc = "Internal Timer Register"]
88pub mod itimer;
89#[doc = "LCV (r) register accessor: an alias for `Reg<LCV_SPEC>`"]
90pub type LCV = crate::Reg<lcv::LCV_SPEC>;
91#[doc = "Sequencer Last Converted Value Register"]
92pub mod lcv;
93#[doc = "PARAMETER (r) register accessor: an alias for `Reg<PARAMETER_SPEC>`"]
94pub type PARAMETER = crate::Reg<parameter::PARAMETER_SPEC>;
95#[doc = "Parameter Register"]
96pub mod parameter;
97#[doc = "RTS (rw) register accessor: an alias for `Reg<RTS_SPEC>`"]
98pub type RTS = crate::Reg<rts::RTS_SPEC>;
99#[doc = "Resistive Touch Screen Register"]
100pub mod rts;
101#[doc = "SCR (w) register accessor: an alias for `Reg<SCR_SPEC>`"]
102pub type SCR = crate::Reg<scr::SCR_SPEC>;
103#[doc = "Status Clear Register"]
104pub mod scr;
105#[doc = "SEQCFG (rw) register accessor: an alias for `Reg<SEQCFG_SPEC>`"]
106pub type SEQCFG = crate::Reg<seqcfg::SEQCFG_SPEC>;
107#[doc = "Sequencer Configuration Register"]
108pub mod seqcfg;
109#[doc = "SR (r) register accessor: an alias for `Reg<SR_SPEC>`"]
110pub type SR = crate::Reg<sr::SR_SPEC>;
111#[doc = "Status Register"]
112pub mod sr;
113#[doc = "TIM (rw) register accessor: an alias for `Reg<TIM_SPEC>`"]
114pub type TIM = crate::Reg<tim::TIM_SPEC>;
115#[doc = "Timing Configuration Register"]
116pub mod tim;
117#[doc = "VERSION (r) register accessor: an alias for `Reg<VERSION_SPEC>`"]
118pub type VERSION = crate::Reg<version::VERSION_SPEC>;
119#[doc = "Version Register"]
120pub mod version;
121#[doc = "WCFG (rw) register accessor: an alias for `Reg<WCFG_SPEC>`"]
122pub type WCFG = crate::Reg<wcfg::WCFG_SPEC>;
123#[doc = "Window Monitor Configuration Register"]
124pub mod wcfg;
125#[doc = "WTH (rw) register accessor: an alias for `Reg<WTH_SPEC>`"]
126pub type WTH = crate::Reg<wth::WTH_SPEC>;
127#[doc = "Window Monitor Threshold Configuration Register"]
128pub mod wth;