From 930d004e32589e57f83c38cae14964371beb19b5 Mon Sep 17 00:00:00 2001 From: LongHairedHacker Date: Mon, 21 Dec 2020 15:12:13 +0100 Subject: [PATCH] First somewhat working version --- src/main.rs | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/src/main.rs b/src/main.rs index 5a8c53a..492f0f9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -121,8 +121,8 @@ fn main() -> ! { let mut last_ic = 0u32; let mut avg = 10f64; - let max_pwm = pwm.get_max_duty() as f64; - let mut cur_pwm = max_pwm / 2.0; + let max_pwm = pwm.get_max_duty() as u32; + let mut cur_pwm = max_pwm / 2; // Skip the first measurement, it will be garbage while !tim1.sr.read().cc1if().bit_is_set() || !tim2.sr.read().cc1if().bit_is_set() { @@ -159,15 +159,8 @@ fn main() -> ! { avg = avg * 0.99 + freq * 0.01; - let error = target_freq - avg; - cur_pwm += error * 100000.0; - cur_pwm = if cur_pwm < 0.0 { - 0.0 - } else if cur_pwm > max_pwm { - max_pwm - } else { - cur_pwm - }; + cur_pwm += 10_000_000 - diff_ic; + cur_pwm = if cur_pwm > max_pwm { max_pwm } else { cur_pwm }; pwm.set_duty(cur_pwm as u16);