async ioctls working.

This commit is contained in:
Dario Nieuwenhuis
2022-07-11 00:25:35 +02:00
parent e560415fde
commit 069a57fcf8
4 changed files with 202 additions and 98 deletions

View File

@ -6,11 +6,12 @@ use core::slice;
use defmt::{assert, assert_eq, panic, *};
use embassy::executor::Spawner;
use embassy::util::Forever;
use embassy_rp::gpio::{Flex, Level, Output, Pin};
use embassy_rp::peripherals::{PIN_23, PIN_24, PIN_25, PIN_29};
use embassy_rp::Peripherals;
use {defmt_rtt as _, panic_probe as _};
macro_rules! forever {
($val:expr) => {{
type T = impl Sized;
@ -19,21 +20,29 @@ macro_rules! forever {
}};
}
#[embassy::task]
async fn wifi_task(runner: cyw43::Runner<'static, PIN_23, PIN_25, PIN_29, PIN_24>) -> ! {
runner.run().await
}
#[embassy::main]
async fn main(_spawner: Spawner, p: Peripherals) {
async fn main(spawner: Spawner, p: Peripherals) {
info!("Hello World!");
let (pwr, cs, clk, dio) = (p.PIN_23, p.PIN_25, p.PIN_29, p.PIN_24);
//let (pwr, cs, clk, dio) = (p.PIN_23, p.PIN_0, p.PIN_1, p.PIN_2);
let mut driver = cyw43::Driver::new(
let state = forever!(cyw43::State::new());
let (mut control, runner) = cyw43::new(
state,
Output::new(pwr, Level::Low),
Output::new(cs, Level::High),
Output::new(clk, Level::Low),
Flex::new(dio),
);
)
.await;
driver.init().await;
spawner.spawn(wifi_task(runner)).unwrap();
loop {}
control.init().await;
}