Struct rp_pac::dma::regs::ChTransCount
source · #[repr(transparent)]pub struct ChTransCount(pub u32);
Expand description
DMA Channel 3 Transfer Count
Tuple Fields§
§0: u32
Implementations§
source§impl ChTransCount
impl ChTransCount
sourcepub const fn count(&self) -> u32
pub const fn count(&self) -> u32
28-bit transfer count (256 million transfers maximum). Program the number of bus transfers a channel will perform before halting. Note that, if transfers are larger than one byte in size, this is not equal to the number of bytes transferred (see CTRL_DATA_SIZE). When the channel is active, reading this register shows the number of transfers remaining, updating automatically each time a write transfer completes. Writing this register sets the RELOAD value for the transfer counter. Each time this channel is triggered, the RELOAD value is copied into the live transfer counter. The channel can be started multiple times, and will perform the same number of transfers each time, as programmed by most recent write. The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT is used as a trigger, the written value is used immediately as the length of the new transfer sequence, as well as being written to RELOAD.
sourcepub fn set_count(&mut self, val: u32)
pub fn set_count(&mut self, val: u32)
28-bit transfer count (256 million transfers maximum). Program the number of bus transfers a channel will perform before halting. Note that, if transfers are larger than one byte in size, this is not equal to the number of bytes transferred (see CTRL_DATA_SIZE). When the channel is active, reading this register shows the number of transfers remaining, updating automatically each time a write transfer completes. Writing this register sets the RELOAD value for the transfer counter. Each time this channel is triggered, the RELOAD value is copied into the live transfer counter. The channel can be started multiple times, and will perform the same number of transfers each time, as programmed by most recent write. The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT is used as a trigger, the written value is used immediately as the length of the new transfer sequence, as well as being written to RELOAD.
sourcepub const fn mode(&self) -> TransCountMode
pub const fn mode(&self) -> TransCountMode
When MODE is 0x0, the transfer count decrements with each transfer until 0, and then the channel triggers the next channel indicated by CTRL_CHAIN_TO. When MODE is 0x1, the transfer count decrements with each transfer until 0, and then the channel re-triggers itself, in addition to the trigger indicated by CTRL_CHAIN_TO. This is useful for e.g. an endless ring-buffer DMA with periodic interrupts. When MODE is 0xf, the transfer count does not decrement. The DMA channel performs an endless sequence of transfers, never triggering other channels or raising interrupts, until an ABORT is raised. All other values are reserved.
sourcepub fn set_mode(&mut self, val: TransCountMode)
pub fn set_mode(&mut self, val: TransCountMode)
When MODE is 0x0, the transfer count decrements with each transfer until 0, and then the channel triggers the next channel indicated by CTRL_CHAIN_TO. When MODE is 0x1, the transfer count decrements with each transfer until 0, and then the channel re-triggers itself, in addition to the trigger indicated by CTRL_CHAIN_TO. This is useful for e.g. an endless ring-buffer DMA with periodic interrupts. When MODE is 0xf, the transfer count does not decrement. The DMA channel performs an endless sequence of transfers, never triggering other channels or raising interrupts, until an ABORT is raised. All other values are reserved.
Trait Implementations§
source§impl Clone for ChTransCount
impl Clone for ChTransCount
source§fn clone(&self) -> ChTransCount
fn clone(&self) -> ChTransCount
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Default for ChTransCount
impl Default for ChTransCount
source§fn default() -> ChTransCount
fn default() -> ChTransCount
source§impl PartialEq for ChTransCount
impl PartialEq for ChTransCount
impl Copy for ChTransCount
impl Eq for ChTransCount
impl StructuralPartialEq for ChTransCount
Auto Trait Implementations§
impl Freeze for ChTransCount
impl RefUnwindSafe for ChTransCount
impl Send for ChTransCount
impl Sync for ChTransCount
impl Unpin for ChTransCount
impl UnwindSafe for ChTransCount
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)