Skip to content

Commit 9af1fa0

Browse files
committed
fix stopwatch
1 parent 1355bc8 commit 9af1fa0

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

examples/stopwatch.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,22 +31,24 @@ fn main() -> ! {
3131
#[cfg(feature = "stm32g0x0")]
3232
let mut stopwatch = dp.TIM3.stopwatch(&mut rcc);
3333

34+
stopwatch.set_prescaler(1);
35+
3436
let elapsed_us = stopwatch.trace(|| {
35-
delay.delay(10.us());
37+
delay.delay(100.us());
3638
});
37-
hprintln!("Delay: 10us -> {}us", elapsed_us.0).unwrap();
39+
hprintln!("Delay: 100 us -> {} us", elapsed_us.0).unwrap();
3840

39-
timer.start(10.us());
41+
timer.start(100.us());
4042
let elapsed_us = stopwatch.trace(|| {
4143
block!(timer.wait()).unwrap();
4244
});
43-
hprintln!("Timer: 10us -> {}us", elapsed_us.0).unwrap();
45+
hprintln!("Timer: 100 us -> {} us", elapsed_us.0).unwrap();
4446

4547
let elapsed_us = stopwatch.trace(|| {
4648
let x = calc_something();
4749
assert!(x > 0);
4850
});
49-
hprintln!("Calc @ 16MHz: {}us", elapsed_us.0).unwrap();
51+
hprintln!("Calc @ 16 MHz: {} us", elapsed_us.0).unwrap();
5052

5153
let rcc = rcc.freeze(Config::new(SysClockSrc::PLL));
5254
stopwatch.set_clock(rcc.clocks.apb_tim_clk);
@@ -55,7 +57,7 @@ fn main() -> ! {
5557
let x = calc_something();
5658
assert!(x > 0);
5759
});
58-
hprintln!("Calc @ 64MHz: {}us", elapsed_us.0).unwrap();
60+
hprintln!("Calc @ 64 MHz: {} us", elapsed_us.0).unwrap();
5961

6062
loop {}
6163
}

src/timer/stopwatch.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ macro_rules! stopwatches {
7171
pub fn elapsed(&self, ts: Instant) -> MicroSecond {
7272
let now = self.now().0;
7373
let cycles = now.wrapping_sub(ts.0);
74-
self.clk.duration(cycles)
74+
self.clk.duration(cycles << self.tim.psc.read().bits())
7575
}
7676

7777
pub fn trace<F>(&self, mut closure: F) -> MicroSecond
@@ -81,7 +81,7 @@ macro_rules! stopwatches {
8181
let started = self.now().0;
8282
closure();
8383
let now = self.now().0;
84-
self.clk.duration(now.wrapping_sub(started))
84+
self.clk.duration(now.wrapping_sub(started) << self.tim.psc.read().bits())
8585
}
8686
}
8787

0 commit comments

Comments
 (0)