holiday_lights/hello_gradient/src/bin/door_light.rs

38 lines
821 B
Rust

#![no_std]
#![no_main]
use core::iter::repeat;
use house::Harrogate;
use lights::rgb::{linear_gradient, Rgb};
use lights_hal::{boot, delay, entry};
const OFF: Rgb = Rgb(0, 0, 0);
const ON: Rgb = Rgb(255, 255, 255);
/*
* 20 fade + 25 ON + 20 fade = 65 dots
* 85 OFF + 65 door = 150 dots
*/
#[entry]
fn main() -> ! {
let mut lights = boot();
lights.heartbeat();
loop {
// blink light to demonstrate loop is still running
lights.heartbeat();
let door_highlight = linear_gradient(OFF, ON, 20)
.chain(repeat(ON).take(25))
.chain(linear_gradient(ON, OFF, 20));
Harrogate {
porch_back: repeat(OFF).take(85).chain(door_highlight),
porch_front: repeat(OFF),
}.render_to(&mut lights);
delay(48_000_000);
}
}