#[doc = r"Register block"] #[repr(C)] pub struct RegisterBlock { #[doc = "0x00 - Start the ADC and prepare the result buffer in RAM"] pub tasks_start: TASKS_START, #[doc = "0x04 - Take one ADC sample, if scan is enabled all channels are sampled"] pub tasks_sample: TASKS_SAMPLE, #[doc = "0x08 - Stop the ADC and terminate any ongoing conversion"] pub tasks_stop: TASKS_STOP, #[doc = "0x0c - Starts offset auto-calibration"] pub tasks_calibrateoffset: TASKS_CALIBRATEOFFSET, _reserved4: [u8; 0x70], #[doc = "0x80 - Subscribe configuration for task START"] pub subscribe_start: SUBSCRIBE_START, #[doc = "0x84 - Subscribe configuration for task SAMPLE"] pub subscribe_sample: SUBSCRIBE_SAMPLE, #[doc = "0x88 - Subscribe configuration for task STOP"] pub subscribe_stop: SUBSCRIBE_STOP, #[doc = "0x8c - Subscribe configuration for task CALIBRATEOFFSET"] pub subscribe_calibrateoffset: SUBSCRIBE_CALIBRATEOFFSET, _reserved8: [u8; 0x70], #[doc = "0x100 - The ADC has started"] pub events_started: EVENTS_STARTED, #[doc = "0x104 - The ADC has filled up the Result buffer"] pub events_end: EVENTS_END, #[doc = "0x108 - A conversion task has been completed. Depending on the mode, multiple conversions might be needed for a result to be transferred to RAM."] pub events_done: EVENTS_DONE, #[doc = "0x10c - A result is ready to get transferred to RAM"] pub events_resultdone: EVENTS_RESULTDONE, #[doc = "0x110 - Calibration is complete"] pub events_calibratedone: EVENTS_CALIBRATEDONE, #[doc = "0x114 - The ADC has stopped"] pub events_stopped: EVENTS_STOPPED, #[doc = "0x118..0x158 - Peripheral events."] pub events_ch: [EVENTS_CH; 8], _reserved15: [u8; 0x28], #[doc = "0x180 - Publish configuration for event STARTED"] pub publish_started: PUBLISH_STARTED, #[doc = "0x184 - Publish configuration for event END"] pub publish_end: PUBLISH_END, #[doc = "0x188 - Publish configuration for event DONE"] pub publish_done: PUBLISH_DONE, #[doc = "0x18c - Publish configuration for event RESULTDONE"] pub publish_resultdone: PUBLISH_RESULTDONE, #[doc = "0x190 - Publish configuration for event CALIBRATEDONE"] pub publish_calibratedone: PUBLISH_CALIBRATEDONE, #[doc = "0x194 - Publish configuration for event STOPPED"] pub publish_stopped: PUBLISH_STOPPED, #[doc = "0x198..0x1d8 - Publish configuration for events"] pub publish_ch: [PUBLISH_CH; 8], _reserved22: [u8; 0x0128], #[doc = "0x300 - Enable or disable interrupt"] pub inten: INTEN, #[doc = "0x304 - Enable interrupt"] pub intenset: INTENSET, #[doc = "0x308 - Disable interrupt"] pub intenclr: INTENCLR, _reserved25: [u8; 0xf4], #[doc = "0x400 - Status"] pub status: STATUS, _reserved26: [u8; 0xfc], #[doc = "0x500 - Enable or disable ADC"] pub enable: ENABLE, _reserved27: [u8; 0x0c], #[doc = "0x510..0x590 - Unspecified"] pub ch: [CH; 8], _reserved28: [u8; 0x60], #[doc = "0x5f0 - Resolution configuration"] pub resolution: RESOLUTION, #[doc = "0x5f4 - Oversampling configuration. OVERSAMPLE should not be combined with SCAN. The RESOLUTION is applied before averaging, thus for high OVERSAMPLE a higher RESOLUTION should be used."] pub oversample: OVERSAMPLE, #[doc = "0x5f8 - Controls normal or continuous sample rate"] pub samplerate: SAMPLERATE, _reserved31: [u8; 0x30], #[doc = "0x62c..0x638 - RESULT EasyDMA channel"] pub result: RESULT, } #[doc = "TASKS_START (w) register accessor: an alias for `Reg`"] pub type TASKS_START = crate::Reg; #[doc = "Start the ADC and prepare the result buffer in RAM"] pub mod tasks_start; #[doc = "TASKS_SAMPLE (w) register accessor: an alias for `Reg`"] pub type TASKS_SAMPLE = crate::Reg; #[doc = "Take one ADC sample, if scan is enabled all channels are sampled"] pub mod tasks_sample; #[doc = "TASKS_STOP (w) register accessor: an alias for `Reg`"] pub type TASKS_STOP = crate::Reg; #[doc = "Stop the ADC and terminate any ongoing conversion"] pub mod tasks_stop; #[doc = "TASKS_CALIBRATEOFFSET (w) register accessor: an alias for `Reg`"] pub type TASKS_CALIBRATEOFFSET = crate::Reg; #[doc = "Starts offset auto-calibration"] pub mod tasks_calibrateoffset; #[doc = "SUBSCRIBE_START (rw) register accessor: an alias for `Reg`"] pub type SUBSCRIBE_START = crate::Reg; #[doc = "Subscribe configuration for task START"] pub mod subscribe_start; #[doc = "SUBSCRIBE_SAMPLE (rw) register accessor: an alias for `Reg`"] pub type SUBSCRIBE_SAMPLE = crate::Reg; #[doc = "Subscribe configuration for task SAMPLE"] pub mod subscribe_sample; #[doc = "SUBSCRIBE_STOP (rw) register accessor: an alias for `Reg`"] pub type SUBSCRIBE_STOP = crate::Reg; #[doc = "Subscribe configuration for task STOP"] pub mod subscribe_stop; #[doc = "SUBSCRIBE_CALIBRATEOFFSET (rw) register accessor: an alias for `Reg`"] pub type SUBSCRIBE_CALIBRATEOFFSET = crate::Reg; #[doc = "Subscribe configuration for task CALIBRATEOFFSET"] pub mod subscribe_calibrateoffset; #[doc = "EVENTS_STARTED (rw) register accessor: an alias for `Reg`"] pub type EVENTS_STARTED = crate::Reg; #[doc = "The ADC has started"] pub mod events_started; #[doc = "EVENTS_END (rw) register accessor: an alias for `Reg`"] pub type EVENTS_END = crate::Reg; #[doc = "The ADC has filled up the Result buffer"] pub mod events_end; #[doc = "EVENTS_DONE (rw) register accessor: an alias for `Reg`"] pub type EVENTS_DONE = crate::Reg; #[doc = "A conversion task has been completed. Depending on the mode, multiple conversions might be needed for a result to be transferred to RAM."] pub mod events_done; #[doc = "EVENTS_RESULTDONE (rw) register accessor: an alias for `Reg`"] pub type EVENTS_RESULTDONE = crate::Reg; #[doc = "A result is ready to get transferred to RAM"] pub mod events_resultdone; #[doc = "EVENTS_CALIBRATEDONE (rw) register accessor: an alias for `Reg`"] pub type EVENTS_CALIBRATEDONE = crate::Reg; #[doc = "Calibration is complete"] pub mod events_calibratedone; #[doc = "EVENTS_STOPPED (rw) register accessor: an alias for `Reg`"] pub type EVENTS_STOPPED = crate::Reg; #[doc = "The ADC has stopped"] pub mod events_stopped; #[doc = "Peripheral events."] pub use events_ch::EVENTS_CH; #[doc = r"Cluster"] #[doc = "Peripheral events."] pub mod events_ch; #[doc = "PUBLISH_STARTED (rw) register accessor: an alias for `Reg`"] pub type PUBLISH_STARTED = crate::Reg; #[doc = "Publish configuration for event STARTED"] pub mod publish_started; #[doc = "PUBLISH_END (rw) register accessor: an alias for `Reg`"] pub type PUBLISH_END = crate::Reg; #[doc = "Publish configuration for event END"] pub mod publish_end; #[doc = "PUBLISH_DONE (rw) register accessor: an alias for `Reg`"] pub type PUBLISH_DONE = crate::Reg; #[doc = "Publish configuration for event DONE"] pub mod publish_done; #[doc = "PUBLISH_RESULTDONE (rw) register accessor: an alias for `Reg`"] pub type PUBLISH_RESULTDONE = crate::Reg; #[doc = "Publish configuration for event RESULTDONE"] pub mod publish_resultdone; #[doc = "PUBLISH_CALIBRATEDONE (rw) register accessor: an alias for `Reg`"] pub type PUBLISH_CALIBRATEDONE = crate::Reg; #[doc = "Publish configuration for event CALIBRATEDONE"] pub mod publish_calibratedone; #[doc = "PUBLISH_STOPPED (rw) register accessor: an alias for `Reg`"] pub type PUBLISH_STOPPED = crate::Reg; #[doc = "Publish configuration for event STOPPED"] pub mod publish_stopped; #[doc = "Publish configuration for events"] pub use publish_ch::PUBLISH_CH; #[doc = r"Cluster"] #[doc = "Publish configuration for events"] pub mod publish_ch; #[doc = "INTEN (rw) register accessor: an alias for `Reg`"] pub type INTEN = crate::Reg; #[doc = "Enable or disable interrupt"] pub mod inten; #[doc = "INTENSET (rw) register accessor: an alias for `Reg`"] pub type INTENSET = crate::Reg; #[doc = "Enable interrupt"] pub mod intenset; #[doc = "INTENCLR (rw) register accessor: an alias for `Reg`"] pub type INTENCLR = crate::Reg; #[doc = "Disable interrupt"] pub mod intenclr; #[doc = "STATUS (r) register accessor: an alias for `Reg`"] pub type STATUS = crate::Reg; #[doc = "Status"] pub mod status; #[doc = "ENABLE (rw) register accessor: an alias for `Reg`"] pub type ENABLE = crate::Reg; #[doc = "Enable or disable ADC"] pub mod enable; #[doc = "Unspecified"] pub use ch::CH; #[doc = r"Cluster"] #[doc = "Unspecified"] pub mod ch; #[doc = "RESOLUTION (rw) register accessor: an alias for `Reg`"] pub type RESOLUTION = crate::Reg; #[doc = "Resolution configuration"] pub mod resolution; #[doc = "OVERSAMPLE (rw) register accessor: an alias for `Reg`"] pub type OVERSAMPLE = crate::Reg; #[doc = "Oversampling configuration. OVERSAMPLE should not be combined with SCAN. The RESOLUTION is applied before averaging, thus for high OVERSAMPLE a higher RESOLUTION should be used."] pub mod oversample; #[doc = "SAMPLERATE (rw) register accessor: an alias for `Reg`"] pub type SAMPLERATE = crate::Reg; #[doc = "Controls normal or continuous sample rate"] pub mod samplerate; #[doc = "RESULT EasyDMA channel"] pub use result::RESULT; #[doc = r"Cluster"] #[doc = "RESULT EasyDMA channel"] pub mod result;