semi working quadrature output
This commit is contained in:
parent
15fc7d5602
commit
603113d9ed
17
src/main.rs
17
src/main.rs
@ -94,10 +94,11 @@ fn main() -> ! {
|
||||
}
|
||||
|
||||
fn main_loop<T: Clockable, U: _esp_hal_uart_Instance>(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<T: Clockable, U: _esp_hal_uart_Instance>(mut clock: T, mut serial:
|
||||
|
||||
trait Clockable {
|
||||
fn set_freq(&mut self, freq: u32) -> Result<(), ()>;
|
||||
fn set_quad(&mut self, freq: u32) -> Result<f32, ()>;
|
||||
}
|
||||
|
||||
impl Clockable for LEDC<'_> {
|
||||
fn set_quad(&mut self, _freq: u32) -> Result<f32, ()> {
|
||||
Err(())
|
||||
}
|
||||
fn set_freq(&mut self, freq: u32) -> Result<(), ()> {
|
||||
let mut hstimer0 = self.get_timer::<HighSpeed>(timer::Number::Timer0);
|
||||
|
||||
@ -129,6 +134,9 @@ impl<T> Clockable for Si5351Device<T>
|
||||
where
|
||||
Si5351Device<T>: Si5351,
|
||||
{
|
||||
fn set_quad(&mut self, freq: u32) -> Result<f32, ()> {
|
||||
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();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user