diff options
Diffstat (limited to 'examples/rp/src/bin')
| -rw-r--r-- | examples/rp/src/bin/adc.rs | 11 | ||||
| -rw-r--r-- | examples/rp/src/bin/i2c_async.rs | 12 | ||||
| -rw-r--r-- | examples/rp/src/bin/uart_buffered_split.rs | 11 | ||||
| -rw-r--r-- | examples/rp/src/bin/uart_unidir.rs | 16 | ||||
| -rw-r--r-- | examples/rp/src/bin/usb_ethernet.rs | 12 | ||||
| -rw-r--r-- | examples/rp/src/bin/usb_logger.rs | 11 | ||||
| -rw-r--r-- | examples/rp/src/bin/usb_serial.rs | 12 |
7 files changed, 52 insertions, 33 deletions
diff --git a/examples/rp/src/bin/adc.rs b/examples/rp/src/bin/adc.rs index 4202fd394..7c2ca19f7 100644 --- a/examples/rp/src/bin/adc.rs +++ b/examples/rp/src/bin/adc.rs | |||
| @@ -4,16 +4,19 @@ | |||
| 4 | 4 | ||
| 5 | use defmt::*; | 5 | use defmt::*; |
| 6 | use embassy_executor::Spawner; | 6 | use embassy_executor::Spawner; |
| 7 | use embassy_rp::adc::{Adc, Config}; | 7 | use embassy_rp::adc::{Adc, Config, InterruptHandler}; |
| 8 | use embassy_rp::interrupt; | 8 | use embassy_rp::bind_interrupts; |
| 9 | use embassy_time::{Duration, Timer}; | 9 | use embassy_time::{Duration, Timer}; |
| 10 | use {defmt_rtt as _, panic_probe as _}; | 10 | use {defmt_rtt as _, panic_probe as _}; |
| 11 | 11 | ||
| 12 | bind_interrupts!(struct Irqs { | ||
| 13 | ADC_IRQ_FIFO => InterruptHandler; | ||
| 14 | }); | ||
| 15 | |||
| 12 | #[embassy_executor::main] | 16 | #[embassy_executor::main] |
| 13 | async fn main(_spawner: Spawner) { | 17 | async fn main(_spawner: Spawner) { |
| 14 | let p = embassy_rp::init(Default::default()); | 18 | let p = embassy_rp::init(Default::default()); |
| 15 | let irq = interrupt::take!(ADC_IRQ_FIFO); | 19 | let mut adc = Adc::new(p.ADC, Irqs, Config::default()); |
| 16 | let mut adc = Adc::new(p.ADC, irq, Config::default()); | ||
| 17 | 20 | ||
| 18 | let mut p26 = p.PIN_26; | 21 | let mut p26 = p.PIN_26; |
| 19 | let mut p27 = p.PIN_27; | 22 | let mut p27 = p.PIN_27; |
diff --git a/examples/rp/src/bin/i2c_async.rs b/examples/rp/src/bin/i2c_async.rs index d1a2e3cd7..cf3cf742c 100644 --- a/examples/rp/src/bin/i2c_async.rs +++ b/examples/rp/src/bin/i2c_async.rs | |||
| @@ -4,12 +4,17 @@ | |||
| 4 | 4 | ||
| 5 | use defmt::*; | 5 | use defmt::*; |
| 6 | use embassy_executor::Spawner; | 6 | use embassy_executor::Spawner; |
| 7 | use embassy_rp::i2c::{self, Config}; | 7 | use embassy_rp::bind_interrupts; |
| 8 | use embassy_rp::interrupt; | 8 | use embassy_rp::i2c::{self, Config, InterruptHandler}; |
| 9 | use embassy_rp::peripherals::I2C1; | ||
| 9 | use embassy_time::{Duration, Timer}; | 10 | use embassy_time::{Duration, Timer}; |
| 10 | use embedded_hal_async::i2c::I2c; | 11 | use embedded_hal_async::i2c::I2c; |
| 11 | use {defmt_rtt as _, panic_probe as _}; | 12 | use {defmt_rtt as _, panic_probe as _}; |
| 12 | 13 | ||
| 14 | bind_interrupts!(struct Irqs { | ||
| 15 | I2C1_IRQ => InterruptHandler<I2C1>; | ||
| 16 | }); | ||
| 17 | |||
| 13 | #[allow(dead_code)] | 18 | #[allow(dead_code)] |
| 14 | mod mcp23017 { | 19 | mod mcp23017 { |
| 15 | pub const ADDR: u8 = 0x20; // default addr | 20 | pub const ADDR: u8 = 0x20; // default addr |
| @@ -64,10 +69,9 @@ async fn main(_spawner: Spawner) { | |||
| 64 | 69 | ||
| 65 | let sda = p.PIN_14; | 70 | let sda = p.PIN_14; |
| 66 | let scl = p.PIN_15; | 71 | let scl = p.PIN_15; |
| 67 | let irq = interrupt::take!(I2C1_IRQ); | ||
| 68 | 72 | ||
| 69 | info!("set up i2c "); | 73 | info!("set up i2c "); |
| 70 | let mut i2c = i2c::I2c::new_async(p.I2C1, scl, sda, irq, Config::default()); | 74 | let mut i2c = i2c::I2c::new_async(p.I2C1, scl, sda, Irqs, Config::default()); |
| 71 | 75 | ||
| 72 | use mcp23017::*; | 76 | use mcp23017::*; |
| 73 | 77 | ||
diff --git a/examples/rp/src/bin/uart_buffered_split.rs b/examples/rp/src/bin/uart_buffered_split.rs index a8a682274..d6f01b4de 100644 --- a/examples/rp/src/bin/uart_buffered_split.rs +++ b/examples/rp/src/bin/uart_buffered_split.rs | |||
| @@ -5,13 +5,17 @@ | |||
| 5 | use defmt::*; | 5 | use defmt::*; |
| 6 | use embassy_executor::Spawner; | 6 | use embassy_executor::Spawner; |
| 7 | use embassy_executor::_export::StaticCell; | 7 | use embassy_executor::_export::StaticCell; |
| 8 | use embassy_rp::interrupt; | 8 | use embassy_rp::bind_interrupts; |
| 9 | use embassy_rp::peripherals::UART0; | 9 | use embassy_rp::peripherals::UART0; |
| 10 | use embassy_rp::uart::{BufferedUart, BufferedUartRx, Config}; | 10 | use embassy_rp::uart::{BufferedInterruptHandler, BufferedUart, BufferedUartRx, Config}; |
| 11 | use embassy_time::{Duration, Timer}; | 11 | use embassy_time::{Duration, Timer}; |
| 12 | use embedded_io::asynch::{Read, Write}; | 12 | use embedded_io::asynch::{Read, Write}; |
| 13 | use {defmt_rtt as _, panic_probe as _}; | 13 | use {defmt_rtt as _, panic_probe as _}; |
| 14 | 14 | ||
| 15 | bind_interrupts!(struct Irqs { | ||
| 16 | UART0_IRQ => BufferedInterruptHandler<UART0>; | ||
| 17 | }); | ||
| 18 | |||
| 15 | macro_rules! singleton { | 19 | macro_rules! singleton { |
| 16 | ($val:expr) => {{ | 20 | ($val:expr) => {{ |
| 17 | type T = impl Sized; | 21 | type T = impl Sized; |
| @@ -26,10 +30,9 @@ async fn main(spawner: Spawner) { | |||
| 26 | let p = embassy_rp::init(Default::default()); | 30 | let p = embassy_rp::init(Default::default()); |
| 27 | let (tx_pin, rx_pin, uart) = (p.PIN_0, p.PIN_1, p.UART0); | 31 | let (tx_pin, rx_pin, uart) = (p.PIN_0, p.PIN_1, p.UART0); |
| 28 | 32 | ||
| 29 | let irq = interrupt::take!(UART0_IRQ); | ||
| 30 | let tx_buf = &mut singleton!([0u8; 16])[..]; | 33 | let tx_buf = &mut singleton!([0u8; 16])[..]; |
| 31 | let rx_buf = &mut singleton!([0u8; 16])[..]; | 34 | let rx_buf = &mut singleton!([0u8; 16])[..]; |
| 32 | let uart = BufferedUart::new(uart, irq, tx_pin, rx_pin, tx_buf, rx_buf, Config::default()); | 35 | let uart = BufferedUart::new(uart, Irqs, tx_pin, rx_pin, tx_buf, rx_buf, Config::default()); |
| 33 | let (rx, mut tx) = uart.split(); | 36 | let (rx, mut tx) = uart.split(); |
| 34 | 37 | ||
| 35 | unwrap!(spawner.spawn(reader(rx))); | 38 | unwrap!(spawner.spawn(reader(rx))); |
diff --git a/examples/rp/src/bin/uart_unidir.rs b/examples/rp/src/bin/uart_unidir.rs index 4119a309f..c0943a1b8 100644 --- a/examples/rp/src/bin/uart_unidir.rs +++ b/examples/rp/src/bin/uart_unidir.rs | |||
| @@ -7,24 +7,22 @@ | |||
| 7 | 7 | ||
| 8 | use defmt::*; | 8 | use defmt::*; |
| 9 | use embassy_executor::Spawner; | 9 | use embassy_executor::Spawner; |
| 10 | use embassy_rp::interrupt; | 10 | use embassy_rp::bind_interrupts; |
| 11 | use embassy_rp::peripherals::UART1; | 11 | use embassy_rp::peripherals::UART1; |
| 12 | use embassy_rp::uart::{Async, Config, UartRx, UartTx}; | 12 | use embassy_rp::uart::{Async, Config, InterruptHandler, UartRx, UartTx}; |
| 13 | use embassy_time::{Duration, Timer}; | 13 | use embassy_time::{Duration, Timer}; |
| 14 | use {defmt_rtt as _, panic_probe as _}; | 14 | use {defmt_rtt as _, panic_probe as _}; |
| 15 | 15 | ||
| 16 | bind_interrupts!(struct Irqs { | ||
| 17 | UART1_IRQ => InterruptHandler<UART1>; | ||
| 18 | }); | ||
| 19 | |||
| 16 | #[embassy_executor::main] | 20 | #[embassy_executor::main] |
| 17 | async fn main(spawner: Spawner) { | 21 | async fn main(spawner: Spawner) { |
| 18 | let p = embassy_rp::init(Default::default()); | 22 | let p = embassy_rp::init(Default::default()); |
| 19 | 23 | ||
| 20 | let mut uart_tx = UartTx::new(p.UART0, p.PIN_0, p.DMA_CH0, Config::default()); | 24 | let mut uart_tx = UartTx::new(p.UART0, p.PIN_0, p.DMA_CH0, Config::default()); |
| 21 | let uart_rx = UartRx::new( | 25 | let uart_rx = UartRx::new(p.UART1, p.PIN_5, Irqs, p.DMA_CH1, Config::default()); |
| 22 | p.UART1, | ||
| 23 | p.PIN_5, | ||
| 24 | interrupt::take!(UART1_IRQ), | ||
| 25 | p.DMA_CH1, | ||
| 26 | Config::default(), | ||
| 27 | ); | ||
| 28 | 26 | ||
| 29 | unwrap!(spawner.spawn(reader(uart_rx))); | 27 | unwrap!(spawner.spawn(reader(uart_rx))); |
| 30 | 28 | ||
diff --git a/examples/rp/src/bin/usb_ethernet.rs b/examples/rp/src/bin/usb_ethernet.rs index 431db63eb..38ff1620d 100644 --- a/examples/rp/src/bin/usb_ethernet.rs +++ b/examples/rp/src/bin/usb_ethernet.rs | |||
| @@ -6,8 +6,9 @@ use defmt::*; | |||
| 6 | use embassy_executor::Spawner; | 6 | use embassy_executor::Spawner; |
| 7 | use embassy_net::tcp::TcpSocket; | 7 | use embassy_net::tcp::TcpSocket; |
| 8 | use embassy_net::{Stack, StackResources}; | 8 | use embassy_net::{Stack, StackResources}; |
| 9 | use embassy_rp::usb::Driver; | 9 | use embassy_rp::peripherals::USB; |
| 10 | use embassy_rp::{interrupt, peripherals}; | 10 | use embassy_rp::usb::{Driver, InterruptHandler}; |
| 11 | use embassy_rp::{bind_interrupts, peripherals}; | ||
| 11 | use embassy_usb::class::cdc_ncm::embassy_net::{Device, Runner, State as NetState}; | 12 | use embassy_usb::class::cdc_ncm::embassy_net::{Device, Runner, State as NetState}; |
| 12 | use embassy_usb::class::cdc_ncm::{CdcNcmClass, State}; | 13 | use embassy_usb::class::cdc_ncm::{CdcNcmClass, State}; |
| 13 | use embassy_usb::{Builder, Config, UsbDevice}; | 14 | use embassy_usb::{Builder, Config, UsbDevice}; |
| @@ -15,6 +16,10 @@ use embedded_io::asynch::Write; | |||
| 15 | use static_cell::StaticCell; | 16 | use static_cell::StaticCell; |
| 16 | use {defmt_rtt as _, panic_probe as _}; | 17 | use {defmt_rtt as _, panic_probe as _}; |
| 17 | 18 | ||
| 19 | bind_interrupts!(struct Irqs { | ||
| 20 | USBCTRL_IRQ => InterruptHandler<USB>; | ||
| 21 | }); | ||
| 22 | |||
| 18 | type MyDriver = Driver<'static, peripherals::USB>; | 23 | type MyDriver = Driver<'static, peripherals::USB>; |
| 19 | 24 | ||
| 20 | macro_rules! singleton { | 25 | macro_rules! singleton { |
| @@ -48,8 +53,7 @@ async fn main(spawner: Spawner) { | |||
| 48 | let p = embassy_rp::init(Default::default()); | 53 | let p = embassy_rp::init(Default::default()); |
| 49 | 54 | ||
| 50 | // Create the driver, from the HAL. | 55 | // Create the driver, from the HAL. |
| 51 | let irq = interrupt::take!(USBCTRL_IRQ); | 56 | let driver = Driver::new(p.USB, Irqs); |
| 52 | let driver = Driver::new(p.USB, irq); | ||
| 53 | 57 | ||
| 54 | // Create embassy-usb Config | 58 | // Create embassy-usb Config |
| 55 | let mut config = Config::new(0xc0de, 0xcafe); | 59 | let mut config = Config::new(0xc0de, 0xcafe); |
diff --git a/examples/rp/src/bin/usb_logger.rs b/examples/rp/src/bin/usb_logger.rs index 52417a02e..7c90d0ca3 100644 --- a/examples/rp/src/bin/usb_logger.rs +++ b/examples/rp/src/bin/usb_logger.rs | |||
| @@ -3,12 +3,16 @@ | |||
| 3 | #![feature(type_alias_impl_trait)] | 3 | #![feature(type_alias_impl_trait)] |
| 4 | 4 | ||
| 5 | use embassy_executor::Spawner; | 5 | use embassy_executor::Spawner; |
| 6 | use embassy_rp::interrupt; | 6 | use embassy_rp::bind_interrupts; |
| 7 | use embassy_rp::peripherals::USB; | 7 | use embassy_rp::peripherals::USB; |
| 8 | use embassy_rp::usb::Driver; | 8 | use embassy_rp::usb::{Driver, InterruptHandler}; |
| 9 | use embassy_time::{Duration, Timer}; | 9 | use embassy_time::{Duration, Timer}; |
| 10 | use {defmt_rtt as _, panic_probe as _}; | 10 | use {defmt_rtt as _, panic_probe as _}; |
| 11 | 11 | ||
| 12 | bind_interrupts!(struct Irqs { | ||
| 13 | USBCTRL_IRQ => InterruptHandler<USB>; | ||
| 14 | }); | ||
| 15 | |||
| 12 | #[embassy_executor::task] | 16 | #[embassy_executor::task] |
| 13 | async fn logger_task(driver: Driver<'static, USB>) { | 17 | async fn logger_task(driver: Driver<'static, USB>) { |
| 14 | embassy_usb_logger::run!(1024, log::LevelFilter::Info, driver); | 18 | embassy_usb_logger::run!(1024, log::LevelFilter::Info, driver); |
| @@ -17,8 +21,7 @@ async fn logger_task(driver: Driver<'static, USB>) { | |||
| 17 | #[embassy_executor::main] | 21 | #[embassy_executor::main] |
| 18 | async fn main(spawner: Spawner) { | 22 | async fn main(spawner: Spawner) { |
| 19 | let p = embassy_rp::init(Default::default()); | 23 | let p = embassy_rp::init(Default::default()); |
| 20 | let irq = interrupt::take!(USBCTRL_IRQ); | 24 | let driver = Driver::new(p.USB, Irqs); |
| 21 | let driver = Driver::new(p.USB, irq); | ||
| 22 | spawner.spawn(logger_task(driver)).unwrap(); | 25 | spawner.spawn(logger_task(driver)).unwrap(); |
| 23 | 26 | ||
| 24 | let mut counter = 0; | 27 | let mut counter = 0; |
diff --git a/examples/rp/src/bin/usb_serial.rs b/examples/rp/src/bin/usb_serial.rs index 8160a1875..ca728536c 100644 --- a/examples/rp/src/bin/usb_serial.rs +++ b/examples/rp/src/bin/usb_serial.rs | |||
| @@ -5,13 +5,18 @@ | |||
| 5 | use defmt::{info, panic}; | 5 | use defmt::{info, panic}; |
| 6 | use embassy_executor::Spawner; | 6 | use embassy_executor::Spawner; |
| 7 | use embassy_futures::join::join; | 7 | use embassy_futures::join::join; |
| 8 | use embassy_rp::interrupt; | 8 | use embassy_rp::bind_interrupts; |
| 9 | use embassy_rp::usb::{Driver, Instance}; | 9 | use embassy_rp::peripherals::USB; |
| 10 | use embassy_rp::usb::{Driver, Instance, InterruptHandler}; | ||
| 10 | use embassy_usb::class::cdc_acm::{CdcAcmClass, State}; | 11 | use embassy_usb::class::cdc_acm::{CdcAcmClass, State}; |
| 11 | use embassy_usb::driver::EndpointError; | 12 | use embassy_usb::driver::EndpointError; |
| 12 | use embassy_usb::{Builder, Config}; | 13 | use embassy_usb::{Builder, Config}; |
| 13 | use {defmt_rtt as _, panic_probe as _}; | 14 | use {defmt_rtt as _, panic_probe as _}; |
| 14 | 15 | ||
| 16 | bind_interrupts!(struct Irqs { | ||
| 17 | USBCTRL_IRQ => InterruptHandler<USB>; | ||
| 18 | }); | ||
| 19 | |||
| 15 | #[embassy_executor::main] | 20 | #[embassy_executor::main] |
| 16 | async fn main(_spawner: Spawner) { | 21 | async fn main(_spawner: Spawner) { |
| 17 | info!("Hello there!"); | 22 | info!("Hello there!"); |
| @@ -19,8 +24,7 @@ async fn main(_spawner: Spawner) { | |||
| 19 | let p = embassy_rp::init(Default::default()); | 24 | let p = embassy_rp::init(Default::default()); |
| 20 | 25 | ||
| 21 | // Create the driver, from the HAL. | 26 | // Create the driver, from the HAL. |
| 22 | let irq = interrupt::take!(USBCTRL_IRQ); | 27 | let driver = Driver::new(p.USB, Irqs); |
| 23 | let driver = Driver::new(p.USB, irq); | ||
| 24 | 28 | ||
| 25 | // Create embassy-usb Config | 29 | // Create embassy-usb Config |
| 26 | let mut config = Config::new(0xc0de, 0xcafe); | 30 | let mut config = Config::new(0xc0de, 0xcafe); |
