42 lines
987 B
Rust
42 lines
987 B
Rust
#![no_std]
|
|
#![no_main]
|
|
|
|
use core::iter::repeat;
|
|
use lights::{
|
|
gamma::GammaCorrector,
|
|
PixelIterator,
|
|
rgb::{
|
|
gray,
|
|
linear_gradient,
|
|
Rgb
|
|
}
|
|
};
|
|
use lights_hal::{boot, delay, entry};
|
|
|
|
#[entry]
|
|
fn main() -> ! {
|
|
let mut lights = GammaCorrector(boot());
|
|
|
|
let red = Rgb(255, 0, 0);
|
|
let yellow = Rgb(255, 255, 0);
|
|
let green = Rgb(0, 255, 0);
|
|
let teal = Rgb(0, 128, 255);
|
|
let purple = Rgb(128, 0, 255);
|
|
|
|
let segment_length = 60;
|
|
|
|
let mut gradient = linear_gradient(red, yellow, segment_length)
|
|
.chain(linear_gradient(yellow, green, segment_length))
|
|
.chain(linear_gradient(green, teal, segment_length))
|
|
.chain(linear_gradient(teal, purple, segment_length))
|
|
.chain(linear_gradient(purple, gray(0), segment_length))
|
|
.chain(repeat(gray(255)).take(60)).cycle();
|
|
|
|
loop {
|
|
gradient.clone().take(60).render_to(&mut lights);
|
|
|
|
gradient.next();
|
|
delay(1_000_000);
|
|
}
|
|
}
|