pub struct DmaController<I = NoneT> { /* private fields */ }
Expand description
Initialized DMA Controller
Implementations§
Source§impl DmaController
impl DmaController
Source§impl<T> DmaController<T>
impl<T> DmaController<T>
Sourcepub fn enable_levels(&mut self, mask: PriorityLevelMask)
pub fn enable_levels(&mut self, mask: PriorityLevelMask)
Enable multiple priority levels simultaneously
Sourcepub fn disable_levels(&mut self, mask: PriorityLevelMask)
pub fn disable_levels(&mut self, mask: PriorityLevelMask)
Disable multiple priority levels simultaneously
Sourcepub fn round_robin_arbitration(&mut self, mask: RoundRobinMask)
pub fn round_robin_arbitration(&mut self, mask: RoundRobinMask)
Enable round-robin arbitration for multiple priority levels simultaneously
Sourcepub fn static_arbitration(&mut self, mask: RoundRobinMask)
pub fn static_arbitration(&mut self, mask: RoundRobinMask)
Disable round-robin arbitration (ie, enable static priorities) for multiple priority levels simultaneously
Sourcepub fn into_future<I>(self, _interrupts: I) -> DmaController<I>
pub fn into_future<I>(self, _interrupts: I) -> DmaController<I>
Use the DmaController
in async mode. You are required to provide the
struct created by the
bind_interrupts
macro to prove
that the interrupt sources have been correctly configured. This function
will automatically enable the relevant NVIC interrupt sources. However,
you are required to configure the desired interrupt priorities prior to
calling this method. Consult crate::async_hal::interrupts
module-level documentation for more information.
bind_interrupts
.
Source§impl<I> DmaController<I>
impl<I> DmaController<I>
Sourcepub fn free(self, _channels: FutureChannels, _pm: &mut Pm) -> Dmac
pub fn free(self, _channels: FutureChannels, _pm: &mut Pm) -> Dmac
Source§impl DmaController
impl DmaController
Source§impl<I> DmaController<I>
impl<I> DmaController<I>
Sourcepub fn split(&mut self) -> FutureChannels
pub fn split(&mut self) -> FutureChannels
Split the DMAC into individual channels