atsamd51n/
dac.rs

1#[repr(C)]
2#[doc = "Register block"]
3pub struct RegisterBlock {
4    ctrla: Ctrla,
5    ctrlb: Ctrlb,
6    evctrl: Evctrl,
7    _reserved3: [u8; 0x01],
8    intenclr: Intenclr,
9    intenset: Intenset,
10    intflag: Intflag,
11    status: Status,
12    syncbusy: Syncbusy,
13    dacctrl: [Dacctrl; 2],
14    data: [Data; 2],
15    databuf: [Databuf; 2],
16    dbgctrl: Dbgctrl,
17    _reserved12: [u8; 0x03],
18    result: [Result; 2],
19}
20impl RegisterBlock {
21    #[doc = "0x00 - Control A"]
22    #[inline(always)]
23    pub const fn ctrla(&self) -> &Ctrla {
24        &self.ctrla
25    }
26    #[doc = "0x01 - Control B"]
27    #[inline(always)]
28    pub const fn ctrlb(&self) -> &Ctrlb {
29        &self.ctrlb
30    }
31    #[doc = "0x02 - Event Control"]
32    #[inline(always)]
33    pub const fn evctrl(&self) -> &Evctrl {
34        &self.evctrl
35    }
36    #[doc = "0x04 - Interrupt Enable Clear"]
37    #[inline(always)]
38    pub const fn intenclr(&self) -> &Intenclr {
39        &self.intenclr
40    }
41    #[doc = "0x05 - Interrupt Enable Set"]
42    #[inline(always)]
43    pub const fn intenset(&self) -> &Intenset {
44        &self.intenset
45    }
46    #[doc = "0x06 - Interrupt Flag Status and Clear"]
47    #[inline(always)]
48    pub const fn intflag(&self) -> &Intflag {
49        &self.intflag
50    }
51    #[doc = "0x07 - Status"]
52    #[inline(always)]
53    pub const fn status(&self) -> &Status {
54        &self.status
55    }
56    #[doc = "0x08 - Synchronization Busy"]
57    #[inline(always)]
58    pub const fn syncbusy(&self) -> &Syncbusy {
59        &self.syncbusy
60    }
61    #[doc = "0x0c - DAC n Control"]
62    #[inline(always)]
63    pub const fn dacctrl(&self, n: usize) -> &Dacctrl {
64        &self.dacctrl[n]
65    }
66    #[doc = "Iterator for array of:"]
67    #[doc = "0x0c - DAC n Control"]
68    #[inline(always)]
69    pub fn dacctrl_iter(&self) -> impl Iterator<Item = &Dacctrl> {
70        self.dacctrl.iter()
71    }
72    #[doc = "0x10 - DAC n Data"]
73    #[inline(always)]
74    pub const fn data(&self, n: usize) -> &Data {
75        &self.data[n]
76    }
77    #[doc = "Iterator for array of:"]
78    #[doc = "0x10 - DAC n Data"]
79    #[inline(always)]
80    pub fn data_iter(&self) -> impl Iterator<Item = &Data> {
81        self.data.iter()
82    }
83    #[doc = "0x14 - DAC n Data Buffer"]
84    #[inline(always)]
85    pub const fn databuf(&self, n: usize) -> &Databuf {
86        &self.databuf[n]
87    }
88    #[doc = "Iterator for array of:"]
89    #[doc = "0x14 - DAC n Data Buffer"]
90    #[inline(always)]
91    pub fn databuf_iter(&self) -> impl Iterator<Item = &Databuf> {
92        self.databuf.iter()
93    }
94    #[doc = "0x18 - Debug Control"]
95    #[inline(always)]
96    pub const fn dbgctrl(&self) -> &Dbgctrl {
97        &self.dbgctrl
98    }
99    #[doc = "0x1c - Filter Result"]
100    #[inline(always)]
101    pub const fn result(&self, n: usize) -> &Result {
102        &self.result[n]
103    }
104    #[doc = "Iterator for array of:"]
105    #[doc = "0x1c - Filter Result"]
106    #[inline(always)]
107    pub fn result_iter(&self) -> impl Iterator<Item = &Result> {
108        self.result.iter()
109    }
110}
111#[doc = "CTRLA (rw) register accessor: Control A\n\nYou can [`read`](crate::Reg::read) this register and get [`ctrla::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ctrla::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ctrla`]
112module"]
113#[doc(alias = "CTRLA")]
114pub type Ctrla = crate::Reg<ctrla::CtrlaSpec>;
115#[doc = "Control A"]
116pub mod ctrla;
117#[doc = "CTRLB (rw) register accessor: Control B\n\nYou can [`read`](crate::Reg::read) this register and get [`ctrlb::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ctrlb::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ctrlb`]
118module"]
119#[doc(alias = "CTRLB")]
120pub type Ctrlb = crate::Reg<ctrlb::CtrlbSpec>;
121#[doc = "Control B"]
122pub mod ctrlb;
123#[doc = "EVCTRL (rw) register accessor: Event Control\n\nYou can [`read`](crate::Reg::read) this register and get [`evctrl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`evctrl::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@evctrl`]
124module"]
125#[doc(alias = "EVCTRL")]
126pub type Evctrl = crate::Reg<evctrl::EvctrlSpec>;
127#[doc = "Event Control"]
128pub mod evctrl;
129#[doc = "INTENCLR (rw) register accessor: Interrupt Enable Clear\n\nYou can [`read`](crate::Reg::read) this register and get [`intenclr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`intenclr::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@intenclr`]
130module"]
131#[doc(alias = "INTENCLR")]
132pub type Intenclr = crate::Reg<intenclr::IntenclrSpec>;
133#[doc = "Interrupt Enable Clear"]
134pub mod intenclr;
135#[doc = "INTENSET (rw) register accessor: Interrupt Enable Set\n\nYou can [`read`](crate::Reg::read) this register and get [`intenset::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`intenset::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@intenset`]
136module"]
137#[doc(alias = "INTENSET")]
138pub type Intenset = crate::Reg<intenset::IntensetSpec>;
139#[doc = "Interrupt Enable Set"]
140pub mod intenset;
141#[doc = "INTFLAG (rw) register accessor: Interrupt Flag Status and Clear\n\nYou can [`read`](crate::Reg::read) this register and get [`intflag::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`intflag::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@intflag`]
142module"]
143#[doc(alias = "INTFLAG")]
144pub type Intflag = crate::Reg<intflag::IntflagSpec>;
145#[doc = "Interrupt Flag Status and Clear"]
146pub mod intflag;
147#[doc = "STATUS (r) register accessor: Status\n\nYou can [`read`](crate::Reg::read) this register and get [`status::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@status`]
148module"]
149#[doc(alias = "STATUS")]
150pub type Status = crate::Reg<status::StatusSpec>;
151#[doc = "Status"]
152pub mod status;
153#[doc = "SYNCBUSY (r) register accessor: Synchronization Busy\n\nYou can [`read`](crate::Reg::read) this register and get [`syncbusy::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@syncbusy`]
154module"]
155#[doc(alias = "SYNCBUSY")]
156pub type Syncbusy = crate::Reg<syncbusy::SyncbusySpec>;
157#[doc = "Synchronization Busy"]
158pub mod syncbusy;
159#[doc = "DACCTRL (rw) register accessor: DAC n Control\n\nYou can [`read`](crate::Reg::read) this register and get [`dacctrl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dacctrl::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dacctrl`]
160module"]
161#[doc(alias = "DACCTRL")]
162pub type Dacctrl = crate::Reg<dacctrl::DacctrlSpec>;
163#[doc = "DAC n Control"]
164pub mod dacctrl;
165#[doc = "DATA (w) register accessor: DAC n Data\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data`]
166module"]
167#[doc(alias = "DATA")]
168pub type Data = crate::Reg<data::DataSpec>;
169#[doc = "DAC n Data"]
170pub mod data;
171#[doc = "DATABUF (w) register accessor: DAC n Data Buffer\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`databuf::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@databuf`]
172module"]
173#[doc(alias = "DATABUF")]
174pub type Databuf = crate::Reg<databuf::DatabufSpec>;
175#[doc = "DAC n Data Buffer"]
176pub mod databuf;
177#[doc = "DBGCTRL (rw) register accessor: Debug Control\n\nYou can [`read`](crate::Reg::read) this register and get [`dbgctrl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dbgctrl::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dbgctrl`]
178module"]
179#[doc(alias = "DBGCTRL")]
180pub type Dbgctrl = crate::Reg<dbgctrl::DbgctrlSpec>;
181#[doc = "Debug Control"]
182pub mod dbgctrl;
183#[doc = "RESULT (r) register accessor: Filter Result\n\nYou can [`read`](crate::Reg::read) this register and get [`result::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@result`]
184module"]
185#[doc(alias = "RESULT")]
186pub type Result = crate::Reg<result::ResultSpec>;
187#[doc = "Filter Result"]
188pub mod result;