aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJan Niehusmann <[email protected]>2022-09-06 21:06:47 +0000
committerJan Niehusmann <[email protected]>2022-09-06 21:08:04 +0000
commitea0738c4851cbeb87de0d40ce1e8246368db4c6b (patch)
tree3eeb5843292bb0a26931ade51ad4d54d9696d6d7 /src
parent29145e5f92918f5f6e575e5ccee159c0160c6694 (diff)
Add gpio_set
Example: Blink LED ``` loop { info!("on"); control.gpio_set(0, true).await; Timer::after(Duration::from_millis(200)).await; info!("off"); control.gpio_set(0, false).await; Timer::after(Duration::from_millis(200)).await; } ```
Diffstat (limited to 'src')
-rw-r--r--src/lib.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 5e79e6e40..21b8b2d80 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -397,6 +397,12 @@ impl<'a> Control<'a> {
397 info!("JOINED"); 397 info!("JOINED");
398 } 398 }
399 399
400 pub async fn gpio_set(&mut self, gpio_n: u8, gpio_en: bool) {
401 assert!(gpio_n < 3);
402 self.set_iovar_u32x2("gpioout", 1 << gpio_n, if gpio_en { 1 << gpio_n } else { 0 })
403 .await
404 }
405
400 async fn set_iovar_u32x2(&mut self, name: &str, val1: u32, val2: u32) { 406 async fn set_iovar_u32x2(&mut self, name: &str, val1: u32, val2: u32) {
401 let mut buf = [0; 8]; 407 let mut buf = [0; 8];
402 buf[0..4].copy_from_slice(&val1.to_le_bytes()); 408 buf[0..4].copy_from_slice(&val1.to_le_bytes());