pub struct Display<T> where
T: Instance, { /* private fields */ }
Expand description
Non-blocking interface to the on board 5x5 LED display
Implementations
sourceimpl<T> Display<T> where
T: Instance,
impl<T> Display<T> where
T: Instance,
sourcepub fn new(timer: T, pins: DisplayPins) -> Display<T>
pub fn new(timer: T, pins: DisplayPins) -> Display<T>
Create and initialise the display driver
DisplayPins
can be used from Board::display_pins
or the display_pins!
macro can be used is manually.
sourcepub fn free(self) -> (T, DisplayPins)
pub fn free(self) -> (T, DisplayPins)
Release the timer and pins
sourcepub fn handle_display_event(&mut self)
pub fn handle_display_event(&mut self)
Update the LED display and timer state
Call this in an interrupt handler for the timer you’re using. This method takes care of updating the LED display and clearing the timer’s event registers
This must be called from within a critical section.
sourcepub fn show<R>(&mut self, image: &R) where
R: Render,
pub fn show<R>(&mut self, image: &R) where
R: Render,
Show a new image
This must be called from within a critical section.
Example
display.show(&GreyscaleImage::new(&[
[0, 7, 0, 7, 0],
[7, 0, 7, 0, 7],
[7, 0, 0, 0, 7],
[0, 7, 0, 7, 0],
[0, 0, 7, 0, 0],
]));
sourcepub fn clear(&mut self)
pub fn clear(&mut self)
Clear the display
This must be called from within a critical section.
sourcepub fn show_frame(&mut self, frame: &MicrobitFrame)
pub fn show_frame(&mut self, frame: &MicrobitFrame)
Show a new frame
This is similar to show
but accepts a MicrobitFrame
instead.
This may be useful if performance is a concern as calling set
on the frame
can be done outside the critical section.
This must be called from within a critical section.
Example
FRAME = MicrobitFrame::default();
FRAME.set(&GreyscaleImage::new(&[
[0, 7, 0, 7, 0],
[7, 0, 7, 0, 7],
[7, 0, 0, 0, 7],
[0, 7, 0, 7, 0],
[0, 0, 7, 0, 0],
]));
// only this needs to be in a critical section
display.show_frame(&FRAME);
Auto Trait Implementations
impl<T> RefUnwindSafe for Display<T> where
T: RefUnwindSafe,
impl<T> Send for Display<T> where
T: Send,
impl<T> Sync for Display<T> where
T: Sync,
impl<T> Unpin for Display<T> where
T: Unpin,
impl<T> UnwindSafe for Display<T> where
T: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> CheckedAs for T
impl<T> CheckedAs for T
sourcefn checked_as<Dst>(self) -> Option<Dst> where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst> where
T: CheckedCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> CheckedCastFrom<Src> for Dst where
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dst where
Src: CheckedCast<Dst>,
sourcefn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Casts the value.
sourceimpl<Src, Dst> LosslessTryInto<Dst> for Src where
Dst: LosslessTryFrom<Src>,
impl<Src, Dst> LosslessTryInto<Dst> for Src where
Dst: LosslessTryFrom<Src>,
sourcefn lossless_try_into(self) -> Option<Dst>
fn lossless_try_into(self) -> Option<Dst>
Performs the conversion.
sourceimpl<Src, Dst> LossyInto<Dst> for Src where
Dst: LossyFrom<Src>,
impl<Src, Dst> LossyInto<Dst> for Src where
Dst: LossyFrom<Src>,
sourcefn lossy_into(self) -> Dst
fn lossy_into(self) -> Dst
Performs the conversion.
sourceimpl<T> OverflowingAs for T
impl<T> OverflowingAs for T
sourcefn overflowing_as<Dst>(self) -> (Dst, bool) where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool) where
T: OverflowingCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> OverflowingCastFrom<Src> for Dst where
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dst where
Src: OverflowingCast<Dst>,
sourcefn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
OverflowingCasts the value.
sourceimpl<T> SaturatingAs for T
impl<T> SaturatingAs for T
sourcefn saturating_as<Dst>(self) -> Dst where
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dst where
T: SaturatingCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> SaturatingCastFrom<Src> for Dst where
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dst where
Src: SaturatingCast<Dst>,
sourcefn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Casts the value.
sourceimpl<T> UnwrappedAs for T
impl<T> UnwrappedAs for T
sourcefn unwrapped_as<Dst>(self) -> Dst where
T: UnwrappedCast<Dst>,
fn unwrapped_as<Dst>(self) -> Dst where
T: UnwrappedCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> UnwrappedCastFrom<Src> for Dst where
Src: UnwrappedCast<Dst>,
impl<Src, Dst> UnwrappedCastFrom<Src> for Dst where
Src: UnwrappedCast<Dst>,
sourcefn unwrapped_cast_from(src: Src) -> Dst
fn unwrapped_cast_from(src: Src) -> Dst
UnwrappedCasts the value.
sourceimpl<T> WrappingAs for T
impl<T> WrappingAs for T
sourcefn wrapping_as<Dst>(self) -> Dst where
T: WrappingCast<Dst>,
fn wrapping_as<Dst>(self) -> Dst where
T: WrappingCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> WrappingCastFrom<Src> for Dst where
Src: WrappingCast<Dst>,
impl<Src, Dst> WrappingCastFrom<Src> for Dst where
Src: WrappingCast<Dst>,
sourcefn wrapping_cast_from(src: Src) -> Dst
fn wrapping_cast_from(src: Src) -> Dst
WrappingCasts the value.