From 84c2a8d28a7dbce04d8cc714da95cc795a90d546 Mon Sep 17 00:00:00 2001
From: Josef Utbult <josutb-7@student.ltu.se>
Date: Thu, 18 Mar 2021 14:20:17 +0100
Subject: [PATCH] bare7_1

---
 examples/rtic_bare7.rs | 22 +++++++++++++++-------
 1 file changed, 15 insertions(+), 7 deletions(-)

diff --git a/examples/rtic_bare7.rs b/examples/rtic_bare7.rs
index 0f2dea1..0d86a7f 100644
--- a/examples/rtic_bare7.rs
+++ b/examples/rtic_bare7.rs
@@ -17,7 +17,7 @@ use stm32f4xx_hal::{
     gpio::{gpioa::PA5, Output, PushPull},
     prelude::*,
 };
-;
+
 use embedded_hal::digital::v2::{OutputPin, ToggleableOutputPin};
 
 const OFFSET: u32 = 8_000_000;
@@ -26,8 +26,10 @@ const OFFSET: u32 = 8_000_000;
 const APP: () = {
     struct Resources {
         // late resources
-        GPIOA: stm32::GPIOA,
-        // led: PA5<Output<PushPull>>,
+        // GPIOA: stm32::GPIOA,
+
+        // Add led as a resource
+        led: PA5<Output<PushPull>>,
     }
     #[init(schedule = [toggle])]
     fn init(cx: init::Context) -> init::LateResources {
@@ -55,7 +57,10 @@ const APP: () = {
 
         // pass on late resources
         init::LateResources {
-            GPIOA: device.GPIOA,
+            // GPIOA: device.GPIOA,
+
+            // Init led as a late resource, while destroying GPIO as a variable
+            led: device.GPIOA.split().pa5.into_push_pull_output()
         }
     }
 
@@ -67,15 +72,18 @@ const APP: () = {
         }
     }
 
-    #[task(resources = [GPIOA], schedule = [toggle])]
+    #[task(resources = [led], schedule = [toggle])]
     fn toggle(cx: toggle::Context) {
         static mut TOGGLE: bool = false;
         rprintln!("toggle  @ {:?}", Instant::now());
 
+        // Use led from resources
         if *TOGGLE {
-            cx.resources.GPIOA.bsrr.write(|w| w.bs5().set_bit());
+            cx.resources.led.set_high();
+            // cx.resources.GPIOA.bsrr.write(|w| w.bs5().set_bit());
         } else {
-            cx.resources.GPIOA.bsrr.write(|w| w.br5().set_bit());
+            cx.resources.led.set_low();
+            // cx.resources.GPIOA.bsrr.write(|w| w.br5().set_bit());
         }
 
         *TOGGLE = !*TOGGLE;
-- 
GitLab