pub struct Transfer<CH1, CH2, FROM, TO, STATE>{ /* private fields */ }Expand description
Instance of a double-buffered DMA transfer
Implementations§
Source§impl<CH1, CH2, FROM, TO, WORD, STATE> Transfer<CH1, CH2, FROM, TO, STATE>where
CH1: SingleChannel,
CH2: SingleChannel,
FROM: ReadTarget<ReceivedWord = WORD>,
TO: WriteTarget<TransmittedWord = WORD>,
impl<CH1, CH2, FROM, TO, WORD, STATE> Transfer<CH1, CH2, FROM, TO, STATE>where
CH1: SingleChannel,
CH2: SingleChannel,
FROM: ReadTarget<ReceivedWord = WORD>,
TO: WriteTarget<TransmittedWord = WORD>,
Sourcepub fn check_irq0(&mut self) -> bool
pub fn check_irq0(&mut self) -> bool
Check if an interrupt is pending for the active channel and clear the corresponding pending bit
Sourcepub fn check_irq1(&mut self) -> bool
pub fn check_irq1(&mut self) -> bool
Check if an interrupt is pending for the active channel and clear the corresponding pending bit
Source§impl<CH1, CH2, FROM, TO, WORD> Transfer<CH1, CH2, FROM, TO, ()>where
CH1: SingleChannel,
CH2: SingleChannel,
FROM: ReadTarget<ReceivedWord = WORD>,
TO: WriteTarget<TransmittedWord = WORD> + EndlessWriteTarget,
impl<CH1, CH2, FROM, TO, WORD> Transfer<CH1, CH2, FROM, TO, ()>where
CH1: SingleChannel,
CH2: SingleChannel,
FROM: ReadTarget<ReceivedWord = WORD>,
TO: WriteTarget<TransmittedWord = WORD> + EndlessWriteTarget,
Sourcepub fn wait(self) -> (CH1, CH2, FROM, TO)
pub fn wait(self) -> (CH1, CH2, FROM, TO)
Block until transfer completed
Source§impl<CH1, CH2, FROM, TO, WORD> Transfer<CH1, CH2, FROM, TO, ()>where
CH1: SingleChannel,
CH2: SingleChannel,
FROM: ReadTarget<ReceivedWord = WORD>,
TO: WriteTarget<TransmittedWord = WORD> + EndlessWriteTarget,
impl<CH1, CH2, FROM, TO, WORD> Transfer<CH1, CH2, FROM, TO, ()>where
CH1: SingleChannel,
CH2: SingleChannel,
FROM: ReadTarget<ReceivedWord = WORD>,
TO: WriteTarget<TransmittedWord = WORD> + EndlessWriteTarget,
Sourcepub fn read_next<BUF>(
self,
buf: BUF,
) -> Transfer<CH1, CH2, FROM, TO, ReadNext<BUF>>where
BUF: ReadTarget<ReceivedWord = WORD>,
pub fn read_next<BUF>(
self,
buf: BUF,
) -> Transfer<CH1, CH2, FROM, TO, ReadNext<BUF>>where
BUF: ReadTarget<ReceivedWord = WORD>,
Perform the next read of a double-buffered sequence
Source§impl<CH1, CH2, FROM, TO, WORD> Transfer<CH1, CH2, FROM, TO, ()>where
CH1: SingleChannel,
CH2: SingleChannel,
FROM: ReadTarget<ReceivedWord = WORD> + EndlessReadTarget,
TO: WriteTarget<TransmittedWord = WORD>,
impl<CH1, CH2, FROM, TO, WORD> Transfer<CH1, CH2, FROM, TO, ()>where
CH1: SingleChannel,
CH2: SingleChannel,
FROM: ReadTarget<ReceivedWord = WORD> + EndlessReadTarget,
TO: WriteTarget<TransmittedWord = WORD>,
Sourcepub fn write_next<BUF>(
self,
buf: BUF,
) -> Transfer<CH1, CH2, FROM, TO, WriteNext<BUF>>where
BUF: WriteTarget<TransmittedWord = WORD>,
pub fn write_next<BUF>(
self,
buf: BUF,
) -> Transfer<CH1, CH2, FROM, TO, WriteNext<BUF>>where
BUF: WriteTarget<TransmittedWord = WORD>,
Perform the next write of a double-buffered sequence
Source§impl<CH1, CH2, FROM, TO, NEXT, WORD> Transfer<CH1, CH2, FROM, TO, ReadNext<NEXT>>where
CH1: SingleChannel,
CH2: SingleChannel,
FROM: ReadTarget<ReceivedWord = WORD>,
TO: WriteTarget<TransmittedWord = WORD> + EndlessWriteTarget,
NEXT: ReadTarget<ReceivedWord = WORD>,
impl<CH1, CH2, FROM, TO, NEXT, WORD> Transfer<CH1, CH2, FROM, TO, ReadNext<NEXT>>where
CH1: SingleChannel,
CH2: SingleChannel,
FROM: ReadTarget<ReceivedWord = WORD>,
TO: WriteTarget<TransmittedWord = WORD> + EndlessWriteTarget,
NEXT: ReadTarget<ReceivedWord = WORD>,
Source§impl<CH1, CH2, FROM, TO, NEXT, WORD> Transfer<CH1, CH2, FROM, TO, WriteNext<NEXT>>where
CH1: SingleChannel,
CH2: SingleChannel,
FROM: ReadTarget<ReceivedWord = WORD> + EndlessReadTarget,
TO: WriteTarget<TransmittedWord = WORD>,
NEXT: WriteTarget<TransmittedWord = WORD>,
impl<CH1, CH2, FROM, TO, NEXT, WORD> Transfer<CH1, CH2, FROM, TO, WriteNext<NEXT>>where
CH1: SingleChannel,
CH2: SingleChannel,
FROM: ReadTarget<ReceivedWord = WORD> + EndlessReadTarget,
TO: WriteTarget<TransmittedWord = WORD>,
NEXT: WriteTarget<TransmittedWord = WORD>,
Auto Trait Implementations§
impl<CH1, CH2, FROM, TO, STATE> Freeze for Transfer<CH1, CH2, FROM, TO, STATE>
impl<CH1, CH2, FROM, TO, STATE> RefUnwindSafe for Transfer<CH1, CH2, FROM, TO, STATE>where
FROM: RefUnwindSafe,
TO: RefUnwindSafe,
STATE: RefUnwindSafe,
CH1: RefUnwindSafe,
CH2: RefUnwindSafe,
impl<CH1, CH2, FROM, TO, STATE> Send for Transfer<CH1, CH2, FROM, TO, STATE>
impl<CH1, CH2, FROM, TO, STATE> Sync for Transfer<CH1, CH2, FROM, TO, STATE>
impl<CH1, CH2, FROM, TO, STATE> Unpin for Transfer<CH1, CH2, FROM, TO, STATE>
impl<CH1, CH2, FROM, TO, STATE> UnwindSafe for Transfer<CH1, CH2, FROM, TO, STATE>
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
Mutably borrows from an owned value. Read more
Source§impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more