aboutsummaryrefslogtreecommitdiff
path: root/examples/rp/src/bin/i2c_async.rs
diff options
context:
space:
mode:
Diffstat (limited to 'examples/rp/src/bin/i2c_async.rs')
-rw-r--r--examples/rp/src/bin/i2c_async.rs12
1 files changed, 8 insertions, 4 deletions
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