Compare commits
1 Commits
quadrature
...
414e7f0041
| Author | SHA1 | Date | |
|---|---|---|---|
| 414e7f0041 |
@@ -14,4 +14,4 @@ rustflags = [
|
|||||||
target = "xtensa-esp32-none-elf"
|
target = "xtensa-esp32-none-elf"
|
||||||
|
|
||||||
[unstable]
|
[unstable]
|
||||||
build-std = ["core"]
|
build-std = ["alloc", "core"]
|
||||||
|
|||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,7 +2,6 @@
|
|||||||
# will have compiled files and executables
|
# will have compiled files and executables
|
||||||
debug/
|
debug/
|
||||||
target/
|
target/
|
||||||
Cargo.lock
|
|
||||||
|
|
||||||
# These are backup files generated by rustfmt
|
# These are backup files generated by rustfmt
|
||||||
**/*.rs.bk
|
**/*.rs.bk
|
||||||
|
|||||||
@@ -10,5 +10,5 @@ hal = { package = "esp32-hal", version = "0.15.0" }
|
|||||||
esp-backtrace = { version = "0.8.0", features = ["esp32", "panic-handler", "exception-handler", "print-uart"] }
|
esp-backtrace = { version = "0.8.0", features = ["esp32", "panic-handler", "exception-handler", "print-uart"] }
|
||||||
esp-println = { version = "0.6.0", features = ["esp32","log"] }
|
esp-println = { version = "0.6.0", features = ["esp32","log"] }
|
||||||
log = { version = "0.4.18" }
|
log = { version = "0.4.18" }
|
||||||
si5351 = { git = "http://192.168.1.41:3000/lks/si5351.git" }
|
si5351 = "0.2.0"
|
||||||
embedded-hal = "0.2.7"
|
embedded-hal = "0.2.7"
|
||||||
|
|||||||
18
src/main.rs
18
src/main.rs
@@ -1,6 +1,7 @@
|
|||||||
#![no_std]
|
#![no_std]
|
||||||
#![no_main]
|
#![no_main]
|
||||||
|
|
||||||
|
extern crate alloc;
|
||||||
use esp_backtrace as _;
|
use esp_backtrace as _;
|
||||||
|
|
||||||
use embedded_hal::serial::Read;
|
use embedded_hal::serial::Read;
|
||||||
@@ -94,11 +95,10 @@ fn main() -> ! {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn main_loop<T: Clockable, U: _esp_hal_uart_Instance>(mut clock: T, mut serial: Uart<'_, U>) -> ! {
|
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 {
|
loop {
|
||||||
let freq = read_freq(&mut serial);
|
let freq = read_freq(&mut serial);
|
||||||
log::info!("Got Freq: {}", freq);
|
log::info!("Got Freq: {}", freq);
|
||||||
match clock.set_quad(freq) {
|
match clock.set_freq(freq) {
|
||||||
Ok(_) => log::info!("Set frequency to {}", freq),
|
Ok(_) => log::info!("Set frequency to {}", freq),
|
||||||
Err(_) => log::warn!("Could not set frequency to {}", freq),
|
Err(_) => log::warn!("Could not set frequency to {}", freq),
|
||||||
}
|
}
|
||||||
@@ -107,13 +107,9 @@ fn main_loop<T: Clockable, U: _esp_hal_uart_Instance>(mut clock: T, mut serial:
|
|||||||
|
|
||||||
trait Clockable {
|
trait Clockable {
|
||||||
fn set_freq(&mut self, freq: u32) -> Result<(), ()>;
|
fn set_freq(&mut self, freq: u32) -> Result<(), ()>;
|
||||||
fn set_quad(&mut self, freq: u32) -> Result<f32, ()>;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Clockable for LEDC<'_> {
|
impl Clockable for LEDC<'_> {
|
||||||
fn set_quad(&mut self, _freq: u32) -> Result<f32, ()> {
|
|
||||||
Err(())
|
|
||||||
}
|
|
||||||
fn set_freq(&mut self, freq: u32) -> Result<(), ()> {
|
fn set_freq(&mut self, freq: u32) -> Result<(), ()> {
|
||||||
let mut hstimer0 = self.get_timer::<HighSpeed>(timer::Number::Timer0);
|
let mut hstimer0 = self.get_timer::<HighSpeed>(timer::Number::Timer0);
|
||||||
|
|
||||||
@@ -134,9 +130,6 @@ impl<T> Clockable for Si5351Device<T>
|
|||||||
where
|
where
|
||||||
Si5351Device<T>: Si5351,
|
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<(), ()> {
|
fn set_freq(&mut self, freq: u32) -> Result<(), ()> {
|
||||||
match self.set_frequency(si5351::PLL::A, si5351::ClockOutput::Clk0, freq) {
|
match self.set_frequency(si5351::PLL::A, si5351::ClockOutput::Clk0, freq) {
|
||||||
Ok(_) => Ok(()),
|
Ok(_) => Ok(()),
|
||||||
@@ -144,6 +137,13 @@ 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;
|
// bool inval = false;
|
||||||
// char c = serial.read();
|
// char c = serial.read();
|
||||||
|
|||||||
Reference in New Issue
Block a user