From 02d06b8f4523f2d07ec7daacdbd9bc89b73b872c Mon Sep 17 00:00:00 2001 From: Astro <astro@spaceboyz.net> Date: Mon, 22 Jul 2019 01:44:17 +0200 Subject: [PATCH] add card10::leds --- card10/src/leds.rs | 30 ++++++++++++++++++++++++++++++ card10/src/lib.rs | 1 + watchapp/src/main.rs | 8 +++++++- 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 card10/src/leds.rs diff --git a/card10/src/leds.rs b/card10/src/leds.rs new file mode 100644 index 00000000..053bdd66 --- /dev/null +++ b/card10/src/leds.rs @@ -0,0 +1,30 @@ +#[link(name = "card10")] +extern { + fn leds_init(); + fn leds_update(); + fn leds_set_dim(led: u8,dim: u8); + fn leds_set(led: u8,r: u8,g: u8,b: u8); + fn leds_set_hsv(led: u8, h: f32, s: f32, v: f32); +} + +pub const LEDS: u8 = 15; + +pub fn init() { + unsafe { leds_init(); } +} + +pub fn update() { + unsafe { leds_update(); } +} + +pub fn set_dim(led: u8,dim: u8) { + unsafe { leds_set_dim(led, dim); } +} + +pub fn set(led: u8,r: u8,g: u8,b: u8) { + unsafe { leds_set(led, r, g, b); } +} + +pub fn set_hsv(led: u8, h: f32, s: f32, v: f32) { + unsafe { leds_set_hsv(led, h, s, v); } +} diff --git a/card10/src/lib.rs b/card10/src/lib.rs index e738d466..163ce14d 100644 --- a/card10/src/lib.rs +++ b/card10/src/lib.rs @@ -5,6 +5,7 @@ pub use cortex_m_rt as _; pub use cortex_m_rt::entry; pub mod lcd; +pub mod leds; #[link(name = "card10")] extern { diff --git a/watchapp/src/main.rs b/watchapp/src/main.rs index 478bd4c7..7d8a6458 100644 --- a/watchapp/src/main.rs +++ b/watchapp/src/main.rs @@ -2,12 +2,13 @@ #![no_main] use panic_abort as _; -use card10::{entry, lcd}; +use card10::{entry, lcd, leds}; #[entry] fn main() -> ! { card10::init(); + leds::init(); lcd::set_backlight(1000); let mut t = 0; @@ -23,6 +24,11 @@ fn main() -> ! { } lcd::update(); + for led in 0..leds::LEDS { + leds::set(led, ((t << 2) & 0xFF) as u8, ((t << 1) & 0xFF) as u8, ((t >> 2) & 0xFF) as u8); + } + leds::update(); + t += 1; } } -- GitLab