diff --git a/src/main.rs b/src/main.rs index 399d2ce..6063078 100644 --- a/src/main.rs +++ b/src/main.rs @@ -94,10 +94,11 @@ fn main() -> ! { } fn main_loop(mut clock: T, mut serial: Uart<'_, U>) -> ! { + clock.set_freq(1_000_000).unwrap(); loop { let freq = read_freq(&mut serial); log::info!("Got Freq: {}", freq); - match clock.set_freq(freq) { + match clock.set_quad(freq) { Ok(_) => log::info!("Set frequency to {}", freq), Err(_) => log::warn!("Could not set frequency to {}", freq), } @@ -106,9 +107,13 @@ fn main_loop(mut clock: T, mut serial: trait Clockable { fn set_freq(&mut self, freq: u32) -> Result<(), ()>; + fn set_quad(&mut self, freq: u32) -> Result; } impl Clockable for LEDC<'_> { + fn set_quad(&mut self, _freq: u32) -> Result { + Err(()) + } fn set_freq(&mut self, freq: u32) -> Result<(), ()> { let mut hstimer0 = self.get_timer::(timer::Number::Timer0); @@ -129,6 +134,9 @@ impl Clockable for Si5351Device where Si5351Device: Si5351, { + fn set_quad(&mut self, freq: u32) -> Result { + Si5351::set_quad(self, freq).map_err(|_| ()) + } fn set_freq(&mut self, freq: u32) -> Result<(), ()> { match self.set_frequency(si5351::PLL::A, si5351::ClockOutput::Clk0, freq) { Ok(_) => Ok(()), @@ -136,13 +144,6 @@ where } } } -struct Dummy; -impl Clockable for Dummy { - fn set_freq(&mut self, freq: u32) -> Result<(), ()> { - log::info!("Dummy set freq: {}", freq); - Ok(()) - } -} // bool inval = false; // char c = serial.read();