mirror of
https://github.com/hubaldv/bioz-firmware-rs.git
synced 2025-12-06 05:01:18 +00:00
Updated library.
This commit is contained in:
16
src/main.rs
16
src/main.rs
@@ -4,6 +4,7 @@
|
||||
use defmt::info;
|
||||
use embassy_executor::Spawner;
|
||||
use embassy_stm32::exti::ExtiInput;
|
||||
use embassy_sync::mutex::Mutex;
|
||||
use embassy_time::{Timer, Duration};
|
||||
use embassy_futures::{select::select, select::Either};
|
||||
use embassy_stm32::gpio::{Level, Output, Speed};
|
||||
@@ -37,7 +38,7 @@ use communication::{init_communication, LED_FREQUENCY_SIGNAL};
|
||||
use impedance::IMPEDANCE_CHANNEL;
|
||||
|
||||
mod impedance;
|
||||
use impedance::ImpedanceSetup;
|
||||
use impedance::{ImpedanceSetup, ImpedanceSetupType, IMPEDANCE_SETUP};
|
||||
|
||||
bind_interrupts!(struct Irqs {
|
||||
USB_DRD_FS => usb::InterruptHandler<peripherals::USB>;
|
||||
@@ -93,7 +94,9 @@ async fn main(spawner: Spawner) {
|
||||
// ad5940.init_waveform().await.unwrap();
|
||||
let mut impedance_setup = ImpedanceSetup::new(ad5940);
|
||||
impedance_setup.init().await.unwrap();
|
||||
impedance_setup.init_measurement().await;
|
||||
let mut impedance_setup = IMPEDANCE_SETUP.init(Mutex::new(impedance_setup));
|
||||
|
||||
// impedance_setup.lock().await.init_single_frequency_measurement().await;
|
||||
|
||||
// // Set up I2C for ADG2128
|
||||
// let i2c = i2c::I2c::new_blocking(
|
||||
@@ -117,13 +120,13 @@ async fn main(spawner: Spawner) {
|
||||
|
||||
// Create USB driver and start postcard-rpc server
|
||||
let driver = Driver::new(p.USB, Irqs, p.PA12, p.PA11);
|
||||
init_communication(driver, spawner);
|
||||
init_communication(driver, impedance_setup, spawner);
|
||||
|
||||
// Green led task
|
||||
// spawner.must_spawn(green_led(led));
|
||||
|
||||
// Trigger the sequencer
|
||||
impedance_setup.start_measurement().await;
|
||||
// impedance_setup.start_measurement().await;
|
||||
|
||||
// Set up interrupt at GPIO for AD5940
|
||||
let ad5940_gpio_0 = ExtiInput::new(p.PC8, p.EXTI8, embassy_stm32::gpio::Pull::Up);
|
||||
@@ -169,11 +172,14 @@ async fn green_led(mut led: Output<'static>) {
|
||||
}
|
||||
|
||||
#[embassy_executor::task]
|
||||
async fn impedance_setup_readout_task(mut pin: ExtiInput<'static>, mut impedance_setup: ImpedanceSetup) {
|
||||
async fn impedance_setup_readout_task(mut pin: ExtiInput<'static>, impedance_setup: &'static ImpedanceSetupType) {
|
||||
loop {
|
||||
// Wait untill sequence is done
|
||||
pin.wait_for_rising_edge().await;
|
||||
|
||||
// Lock the impedance setup
|
||||
let mut impedance_setup = impedance_setup.lock().await;
|
||||
|
||||
// Trigger the sequencer again
|
||||
impedance_setup.start_measurement().await;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user