From a3c8d663b52bb243ddaedcda516c979cbbf9ccd7 Mon Sep 17 00:00:00 2001
From: Per Lindgren <per.lindgren@ltu.se>
Date: Tue, 12 Jan 2021 00:07:43 +0100
Subject: [PATCH] pwm saw

---
 examples/rtt-pwm-dma.rs | 31 ++++++++++++++++++-------------
 1 file changed, 18 insertions(+), 13 deletions(-)

diff --git a/examples/rtt-pwm-dma.rs b/examples/rtt-pwm-dma.rs
index 36b5477..dc9cc7f 100644
--- a/examples/rtt-pwm-dma.rs
+++ b/examples/rtt-pwm-dma.rs
@@ -8,7 +8,7 @@
 
 use cortex_m::{asm, peripheral::DWT};
 use panic_halt as _;
-use rtt_target::{rprintln, rtt_init_print};
+use rtt_target::{rprint, rprintln, rtt_init_print};
 use stm32f4xx_hal::{bb, dma, gpio::Speed, prelude::*, pwm, stm32};
 
 #[rtic::app(device = stm32f4xx_hal::stm32, peripherals = true)]
@@ -123,19 +123,24 @@ const APP: () = {
         tim1.cr2.write(|w| w.ccpc().set_bit());
 
         tim1.dier.write(|w| w.uie().enabled());
+        tim1.sr.modify(|_, w| w.uif().clear());
 
-        // loop {
-        //     for i in 0..255 {
-        //         tim1.ccr1.write(|w| unsafe { w.ccr().bits(i) });
-        //         tim1.ccr2.write(|w| unsafe { w.ccr().bits(i) });
-        //         // rprintln!("-");
-        //         //while tim1.sr.read().uif().is_clear() {
-        //         while !tim1.sr.read().uif().is_clear() {
-        //             rprintln!("-");
-        //         }
-        //         // rprintln!("!");
-        //     }
-        // }
+        while tim1.sr.read().uif().is_clear() {
+            rprint!("-");
+        }
+        rprintln!("here");
+        tim1.sr.modify(|_, w| w.uif().clear());
+
+        loop {
+            for i in 0..256 {
+                // wait until next update event
+                while tim1.sr.read().uif().is_clear() {}
+                tim1.sr.modify(|_, w| w.uif().clear());
+
+                tim1.ccr1.write(|w| unsafe { w.ccr().bits(i) });
+                tim1.ccr2.write(|w| unsafe { w.ccr().bits(i) });
+            }
+        }
     }
 
     #[idle]
-- 
GitLab