Ws2812

Struct Ws2812 

Source
pub struct Ws2812<SPI, DEVICE = Ws2812> { /* private fields */ }

Implementations§

Source§

impl<SPI, E> Ws2812<SPI>
where SPI: SpiBus<u8, Error = E>,

Source

pub fn new(spi: SPI) -> Self

Use ws2812 devices via spi

The SPI bus should run within 2 MHz to 3.8 MHz

You may need to look at the datasheet and your own hal to verify this.

Please ensure that the mcu is pretty fast, otherwise weird timing issues will occur

Source§

impl<SPI, E> Ws2812<SPI, Sk6812w>
where SPI: SpiBus<u8, Error = E>,

Source

pub fn new_sk6812w(spi: SPI) -> Self

Use sk6812w devices via spi

The SPI bus should run within 2.3 MHz to 3.8 MHz at least.

You may need to look at the datasheet and your own hal to verify this.

Please ensure that the mcu is pretty fast, otherwise weird timing issues will occur

Trait Implementations§

Source§

impl<SPI, E> SmartLedsWrite for Ws2812<SPI>
where SPI: SpiBus<u8, Error = E>,

Source§

fn write<T, I>(&mut self, iterator: T) -> Result<(), E>
where T: IntoIterator<Item = I>, I: Into<Self::Color>,

Write all the items of an iterator to a ws2812 strip

Source§

type Error = E

Source§

type Color = Rgb<u8>

Source§

impl<SPI, E> SmartLedsWrite for Ws2812<SPI, Sk6812w>
where SPI: SpiBus<u8, Error = E>,

Source§

fn write<T, I>(&mut self, iterator: T) -> Result<(), E>
where T: IntoIterator<Item = I>, I: Into<Self::Color>,

Write all the items of an iterator to a ws2812 strip

Source§

type Error = E

Source§

type Color = Rgba<u8, White<u8>>

Auto Trait Implementations§

§

impl<SPI, DEVICE> Freeze for Ws2812<SPI, DEVICE>
where SPI: Freeze,

§

impl<SPI, DEVICE> RefUnwindSafe for Ws2812<SPI, DEVICE>
where SPI: RefUnwindSafe, DEVICE: RefUnwindSafe,

§

impl<SPI, DEVICE> Send for Ws2812<SPI, DEVICE>
where SPI: Send, DEVICE: Send,

§

impl<SPI, DEVICE> Sync for Ws2812<SPI, DEVICE>
where SPI: Sync, DEVICE: Sync,

§

impl<SPI, DEVICE> Unpin for Ws2812<SPI, DEVICE>
where SPI: Unpin, DEVICE: Unpin,

§

impl<SPI, DEVICE> UnwindSafe for Ws2812<SPI, DEVICE>
where SPI: UnwindSafe, DEVICE: 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> 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<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<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.