aboutsummaryrefslogtreecommitdiff
path: root/examples/rp/src
diff options
context:
space:
mode:
Diffstat (limited to 'examples/rp/src')
-rw-r--r--examples/rp/src/bin/adc.rs11
-rw-r--r--examples/rp/src/bin/i2c_async.rs12
-rw-r--r--examples/rp/src/bin/uart_buffered_split.rs11
-rw-r--r--examples/rp/src/bin/uart_unidir.rs16
-rw-r--r--examples/rp/src/bin/usb_ethernet.rs12
-rw-r--r--examples/rp/src/bin/usb_logger.rs11
-rw-r--r--examples/rp/src/bin/usb_serial.rs12
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
5use defmt::*; 5use defmt::*;
6use embassy_executor::Spawner; 6use embassy_executor::Spawner;
7use embassy_rp::adc::{Adc, Config}; 7use embassy_rp::adc::{Adc, Config, InterruptHandler};
8use embassy_rp::interrupt; 8use embassy_rp::bind_interrupts;
9use embassy_time::{Duration, Timer}; 9use embassy_time::{Duration, Timer};
10use {defmt_rtt as _, panic_probe as _}; 10use {defmt_rtt as _, panic_probe as _};
11 11
12bind_interrupts!(struct Irqs {
13 ADC_IRQ_FIFO => InterruptHandler;
14});
15
12#[embassy_executor::main] 16#[embassy_executor::main]
13async fn main(_spawner: Spawner) { 17async 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
5use defmt::*; 5use defmt::*;
6use embassy_executor::Spawner; 6use embassy_executor::Spawner;
7use embassy_rp::i2c::{self, Config}; 7use embassy_rp::bind_interrupts;
8use embassy_rp::interrupt; 8use embassy_rp::i2c::{self, Config, InterruptHandler};
9use embassy_rp::peripherals::I2C1;
9use embassy_time::{Duration, Timer}; 10use embassy_time::{Duration, Timer};
10use embedded_hal_async::i2c::I2c; 11use embedded_hal_async::i2c::I2c;
11use {defmt_rtt as _, panic_probe as _}; 12use {defmt_rtt as _, panic_probe as _};
12 13
14bind_interrupts!(struct Irqs {
15 I2C1_IRQ => InterruptHandler<I2C1>;
16});
17
13#[allow(dead_code)] 18#[allow(dead_code)]
14mod mcp23017 { 19mod 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 @@
5use defmt::*; 5use defmt::*;
6use embassy_executor::Spawner; 6use embassy_executor::Spawner;
7use embassy_executor::_export::StaticCell; 7use embassy_executor::_export::StaticCell;
8use embassy_rp::interrupt; 8use embassy_rp::bind_interrupts;
9use embassy_rp::peripherals::UART0; 9use embassy_rp::peripherals::UART0;
10use embassy_rp::uart::{BufferedUart, BufferedUartRx, Config}; 10use embassy_rp::uart::{BufferedInterruptHandler, BufferedUart, BufferedUartRx, Config};
11use embassy_time::{Duration, Timer}; 11use embassy_time::{Duration, Timer};
12use embedded_io::asynch::{Read, Write}; 12use embedded_io::asynch::{Read, Write};
13use {defmt_rtt as _, panic_probe as _}; 13use {defmt_rtt as _, panic_probe as _};
14 14
15bind_interrupts!(struct Irqs {
16 UART0_IRQ => BufferedInterruptHandler<UART0>;
17});
18
15macro_rules! singleton { 19macro_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
8use defmt::*; 8use defmt::*;
9use embassy_executor::Spawner; 9use embassy_executor::Spawner;
10use embassy_rp::interrupt; 10use embassy_rp::bind_interrupts;
11use embassy_rp::peripherals::UART1; 11use embassy_rp::peripherals::UART1;
12use embassy_rp::uart::{Async, Config, UartRx, UartTx}; 12use embassy_rp::uart::{Async, Config, InterruptHandler, UartRx, UartTx};
13use embassy_time::{Duration, Timer}; 13use embassy_time::{Duration, Timer};
14use {defmt_rtt as _, panic_probe as _}; 14use {defmt_rtt as _, panic_probe as _};
15 15
16bind_interrupts!(struct Irqs {
17 UART1_IRQ => InterruptHandler<UART1>;
18});
19
16#[embassy_executor::main] 20#[embassy_executor::main]
17async fn main(spawner: Spawner) { 21async 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 66a6ed4d0..2ddfb6344 100644
--- a/examples/rp/src/bin/usb_ethernet.rs
+++ b/examples/rp/src/bin/usb_ethernet.rs
@@ -6,8 +6,9 @@ use defmt::*;
6use embassy_executor::Spawner; 6use embassy_executor::Spawner;
7use embassy_net::tcp::TcpSocket; 7use embassy_net::tcp::TcpSocket;
8use embassy_net::{Stack, StackResources}; 8use embassy_net::{Stack, StackResources};
9use embassy_rp::usb::Driver; 9use embassy_rp::peripherals::USB;
10use embassy_rp::{interrupt, peripherals}; 10use embassy_rp::usb::{Driver, InterruptHandler};
11use embassy_rp::{bind_interrupts, peripherals};
11use embassy_usb::class::cdc_ncm::embassy_net::{Device, Runner, State as NetState}; 12use embassy_usb::class::cdc_ncm::embassy_net::{Device, Runner, State as NetState};
12use embassy_usb::class::cdc_ncm::{CdcNcmClass, State}; 13use embassy_usb::class::cdc_ncm::{CdcNcmClass, State};
13use embassy_usb::{Builder, Config, UsbDevice}; 14use embassy_usb::{Builder, Config, UsbDevice};
@@ -15,6 +16,10 @@ use embedded_io::asynch::Write;
15use static_cell::StaticCell; 16use static_cell::StaticCell;
16use {defmt_rtt as _, panic_probe as _}; 17use {defmt_rtt as _, panic_probe as _};
17 18
19bind_interrupts!(struct Irqs {
20 USBCTRL_IRQ => InterruptHandler<USB>;
21});
22
18type MyDriver = Driver<'static, peripherals::USB>; 23type MyDriver = Driver<'static, peripherals::USB>;
19 24
20macro_rules! singleton { 25macro_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
5use embassy_executor::Spawner; 5use embassy_executor::Spawner;
6use embassy_rp::interrupt; 6use embassy_rp::bind_interrupts;
7use embassy_rp::peripherals::USB; 7use embassy_rp::peripherals::USB;
8use embassy_rp::usb::Driver; 8use embassy_rp::usb::{Driver, InterruptHandler};
9use embassy_time::{Duration, Timer}; 9use embassy_time::{Duration, Timer};
10use {defmt_rtt as _, panic_probe as _}; 10use {defmt_rtt as _, panic_probe as _};
11 11
12bind_interrupts!(struct Irqs {
13 USBCTRL_IRQ => InterruptHandler<USB>;
14});
15
12#[embassy_executor::task] 16#[embassy_executor::task]
13async fn logger_task(driver: Driver<'static, USB>) { 17async 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]
18async fn main(spawner: Spawner) { 22async 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 @@
5use defmt::{info, panic}; 5use defmt::{info, panic};
6use embassy_executor::Spawner; 6use embassy_executor::Spawner;
7use embassy_futures::join::join; 7use embassy_futures::join::join;
8use embassy_rp::interrupt; 8use embassy_rp::bind_interrupts;
9use embassy_rp::usb::{Driver, Instance}; 9use embassy_rp::peripherals::USB;
10use embassy_rp::usb::{Driver, Instance, InterruptHandler};
10use embassy_usb::class::cdc_acm::{CdcAcmClass, State}; 11use embassy_usb::class::cdc_acm::{CdcAcmClass, State};
11use embassy_usb::driver::EndpointError; 12use embassy_usb::driver::EndpointError;
12use embassy_usb::{Builder, Config}; 13use embassy_usb::{Builder, Config};
13use {defmt_rtt as _, panic_probe as _}; 14use {defmt_rtt as _, panic_probe as _};
14 15
16bind_interrupts!(struct Irqs {
17 USBCTRL_IRQ => InterruptHandler<USB>;
18});
19
15#[embassy_executor::main] 20#[embassy_executor::main]
16async fn main(_spawner: Spawner) { 21async 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);