From 429c8e1c5783cefc81e6c41c64956c1c9067f937 Mon Sep 17 00:00:00 2001 From: Tangent 128 Date: Sun, 10 Mar 2019 22:01:04 -0400 Subject: [PATCH] Rainbow! --- hello_gradient/src/main.rs | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/hello_gradient/src/main.rs b/hello_gradient/src/main.rs index 19f2798..e5d35a7 100644 --- a/hello_gradient/src/main.rs +++ b/hello_gradient/src/main.rs @@ -17,16 +17,30 @@ use lights_hal::{boot, delay, entry}; fn main() -> ! { let mut lights = GammaCorrector(boot()); - let mut red = Wrapping(0u8); + let mut t = Wrapping(0u8); loop { - red += Wrapping(1); + t += Wrapping(1); - let start = Rgb(red.0, 0, 0); - let end = Rgb(0, 100, 100u8.saturating_sub(red.0)); + let red = Rgb(150, 0, 0); + let yellow = Rgb(150, 150, 0); + let green = Rgb(0, 150, 0); + let teal = Rgb(0, 75, 150); + let purple = Rgb(75, 0, 150); - (0..20u8).map( - |x| blend(start, end, gray(x.saturating_mul(15))) - ).render_to(&mut lights); - delay(500_000); + (0..16u8).map( + |x| blend(red, yellow, gray(x * 16)) + ).chain((0..16u8).map( + |x| blend(yellow, green, gray(x * 16)) + )).chain((0..16u8).map( + |x| blend(green, teal, gray(x * 16)) + )).chain((0..16u8).map( + |x| blend(teal, purple, gray(x * 16)) + )).chain((0..16u8).map( + |x| blend(purple, red, gray(x * 16)) + )) + .cycle().skip(t.0 as usize).take(20) + .render_to(&mut lights); + + delay(1_000_000); } }