Struct Display

Source
pub struct Display<T>
where T: Instance,
{ /* private fields */ }
Expand description

Non-blocking interface to the on board 5x5 LED display

Implementations§

Source§

impl<T> Display<T>
where T: Instance,

Source

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.

Source

pub fn free(self) -> (T, DisplayPins)

Release the timer and pins

Source

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 may be called at any time, so long as the code calling it is not interrupting, or interruptable by tiny_led_matrix::Display::handle_event(). Within safe code, the borrow checker ensures that this requirement is fulfilled. When writing unsafe code, this method should be called from within a critical section.

Source

pub fn show<R>(&mut self, image: &R)
where R: Render,

Show a new image

This may be called at any time, so long as the code calling it is not interrupting, or interruptable by tiny_led_matrix::Display::handle_event(). Within safe code, the borrow checker ensures that this requirement is fulfilled. When writing unsafe code, this method should 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],
]));
Source

pub fn clear(&mut self)

Clear the display

This may be called at any time, so long as the code calling it is not interrupting, or interruptable by tiny_led_matrix::Display::handle_event(). Within safe code, the borrow checker ensures that this requirement is fulfilled. When writing unsafe code, this method should be called from within a critical section.

Source

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 may be called at any time, so long as the code calling it is not interrupting, or interruptable by tiny_led_matrix::Display::handle_event(). Within safe code, the borrow checker ensures that this requirement is fulfilled. When writing unsafe code, this method should 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> Freeze for Display<T>
where T: Freeze,

§

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§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Az for T

Source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

Source§

fn cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> CheckedAs for T

Source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

Source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<Src, Dst> LosslessTryInto<Dst> for Src
where Dst: LosslessTryFrom<Src>,

Source§

fn lossless_try_into(self) -> Option<Dst>

Performs the conversion.
Source§

impl<Src, Dst> LossyInto<Dst> for Src
where Dst: LossyFrom<Src>,

Source§

fn lossy_into(self) -> Dst

Performs the conversion.
Source§

impl<T> OverflowingAs for T

Source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

Source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> SaturatingAs for T

Source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

Source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> UnwrappedAs for T

Source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

Source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> WrappingAs for T

Source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

Source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.