diff --git a/hello_gradient/src/bin/july4.rs b/hello_gradient/src/bin/july4.rs new file mode 100644 index 0000000..57e1299 --- /dev/null +++ b/hello_gradient/src/bin/july4.rs @@ -0,0 +1,45 @@ +#![no_std] +#![no_main] + +use core::iter::repeat; +use lights::{ + gamma::GammaCorrector, + PixelIterator, + rgb::{ + Rgb + } +}; +use lights_hal::{boot, delay, entry}; + +#[entry] +fn main() -> ! { + let mut lights = GammaCorrector(boot()); + + let pattern = + repeat(&Rgb(255,0,0)).take(5) + .chain( + repeat(&Rgb(255,255,255)).take(5) + ).cycle().take(60) + .chain( + repeat(&Rgb(255,0,0)).take(5) + ) + .chain( + [ + Rgb(0,0,255), + Rgb(255,255,255), + Rgb(0,0,255), + ].iter().cycle().take(85) + ); + + let mut buffer = [Rgb(255,0,255); 150]; + loop { + for (i, pixel) in pattern.clone().take(150).enumerate() { + buffer[i] = *pixel; + } + + buffer.iter().render_to(&mut lights); + + //pattern.next(); + delay(1_000_000); + } +}