diff options
Diffstat (limited to 'examples/rp/src/bin/i2c_async.rs')
| -rw-r--r-- | examples/rp/src/bin/i2c_async.rs | 12 |
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 | ||
| 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 | ||
