Added movement task and rewired the channels

This commit is contained in:
Sebastian 2022-08-21 18:11:58 +02:00
parent ace48440f3
commit 90768d9bf0
4 changed files with 101 additions and 18 deletions

View file

@ -21,18 +21,29 @@ mod display;
use display::display_task;
mod usb;
use usb::usb_task;
use usb::{usb_task, Gs232Cmd};
#[derive(PartialEq, Format)]
mod movement;
use movement::movement_task;
#[derive(PartialEq, Format, Copy, Clone)]
pub struct AzElPair {
az: u16,
el: u16,
}
#[derive(PartialEq, Format, Copy, Clone)]
pub struct RotorState {
actual_pos: AzElPair,
setpoint_pos: AzElPair,
stopped: bool,
}
#[embassy_executor::main]
async fn main(spawner: Spawner) {
static CMD_CHAN: Channel<ThreadModeRawMutex, AzElPair, 1> = Channel::new();
static CMD_CHAN: Channel<ThreadModeRawMutex, Gs232Cmd, 1> = Channel::new();
static POS_CHAN: Channel<ThreadModeRawMutex, AzElPair, 1> = Channel::new();
static STATE_CHAN: Channel<ThreadModeRawMutex, RotorState, 1> = Channel::new();
let mut config = Config::default();
config.rcc.hse = Some(Hertz(8_000_000));
@ -54,7 +65,15 @@ async fn main(spawner: Spawner) {
spawner
.spawn(usb_task(p.USB, p.PA12, p.PA11, CMD_CHAN.sender()))
.unwrap();
spawner
.spawn(display_task(p.I2C1, p.PB6, p.PB7, CMD_CHAN.receiver()))
.spawn(movement_task(
CMD_CHAN.receiver(),
POS_CHAN.sender(),
STATE_CHAN.sender(),
))
.unwrap();
spawner
.spawn(display_task(p.I2C1, p.PB6, p.PB7, STATE_CHAN.receiver()))
.unwrap();
}