send receive nrz working

This commit is contained in:
Priec
2026-05-18 00:04:46 +02:00
parent a93965eccf
commit c7d790f474
2 changed files with 102 additions and 74 deletions

View File

@@ -9,10 +9,10 @@ use embassy_stm32::gpio;
use embassy_stm32::gpio::{Output, Pull};
use embassy_sync::blocking_mutex::raw::CriticalSectionRawMutex;
use embassy_sync::channel::Channel;
use embassy_time::{Duration, Timer};
use heapless::Vec;
use semestralka2::receive::{bit_decode, bit_receive_and_decode};
use semestralka2::send::*;
use embassy_time::Duration;
use semestralka2::receive::bit_receive_and_decode;
use semestralka2::send::nrz;
use semestralka2::send::Tx;
use {defmt_rtt as _, panic_probe as _};
@@ -28,29 +28,21 @@ async fn main(spawner: Spawner) {
let tx = Output::new(p.PF2, gpio::Level::High, gpio::Speed::VeryHigh);
let rx = ExtiInput::new(p.PA3, p.EXTI3, Pull::Up);
// let config = Config::default();
let sender = PIPE.sender();
let sender_receiver = PIPE.receiver();
let receiver_sender = PIPE_REC.sender();
let receiver_reader = PIPE_REC.receiver();
// let receiver = PIPE.receiver();
let receiver = PIPE.receiver();
spawner.spawn(bit_send(tx, sender_receiver)).unwrap();
spawner.spawn(bit_send(tx, receiver)).unwrap();
spawner.spawn(bit_receive_and_decode(rx)).unwrap();
// spawner.spawn(bit_decode(receiver_reader)).unwrap();
info!("starting echo");
let mut v: Vec<u8, 38, u8> = Vec::new();
info!("starting loop");
loop {
let slovko = "ahoj";
info!("slovo: {}", slovko);
let vektorik = encode(slovko, &mut v);
info!("slovo: {:#?}", vektorik);
nrz(b"ahoj", &sender).await;
nrz(b"hello", &sender).await;
info!("enkodovane, posielame do pipy...");
nrz(&v, &sender).await;
let data = [0x01, 0x02, 0x03, 0x04];
nrz(&data, &sender).await;
Timer::after(Duration::from_millis(1000)).await;
info!("frame sent");
embassy_time::Timer::after(Duration::from_secs(1)).await;
}
}