First somewhat working version

This commit is contained in:
Sebastian 2020-12-21 15:12:13 +01:00
parent 9afa0ae91f
commit 930d004e32
1 changed files with 4 additions and 11 deletions

View File

@ -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);