use fugit::NanosDurationU32 as Nanoseconds;
use crate::{
color::{LedChannels, RgbChannels},
driver::ClocklessLed,
};
pub struct Ws2812;
impl Ws2812 {
pub const fn frame_buffer_size(pixel_count: usize) -> usize {
super::clockless_frame_buffer_size::<Self>(pixel_count)
}
}
impl ClocklessLed for Ws2812 {
type Word = u8;
const T_0H: Nanoseconds = Nanoseconds::nanos(400);
const T_0L: Nanoseconds = Nanoseconds::nanos(850);
const T_1H: Nanoseconds = Nanoseconds::nanos(800);
const T_1L: Nanoseconds = Nanoseconds::nanos(450);
const T_RESET: Nanoseconds = Nanoseconds::micros(50);
const LED_CHANNELS: LedChannels = LedChannels::Rgb(RgbChannels::GRB);
}