diff options
Diffstat (limited to 'examples/rp/src')
| -rw-r--r-- | examples/rp/src/bin/pio_async.rs | 9 | ||||
| -rw-r--r-- | examples/rp/src/bin/pio_hd44780.rs | 7 |
2 files changed, 10 insertions, 6 deletions
diff --git a/examples/rp/src/bin/pio_async.rs b/examples/rp/src/bin/pio_async.rs index 11b290869..3d76a7d7b 100644 --- a/examples/rp/src/bin/pio_async.rs +++ b/examples/rp/src/bin/pio_async.rs | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | use defmt::info; | 4 | use defmt::info; |
| 5 | use embassy_executor::Spawner; | 5 | use embassy_executor::Spawner; |
| 6 | use embassy_rp::peripherals::PIO0; | 6 | use embassy_rp::peripherals::PIO0; |
| 7 | use embassy_rp::pio::{Pio, PioCommon, PioPin, PioStateMachine, ShiftDirection}; | 7 | use embassy_rp::pio::{Pio, PioCommon, PioIrq, PioPin, PioStateMachine, ShiftDirection}; |
| 8 | use embassy_rp::pio_instr_util; | 8 | use embassy_rp::pio_instr_util; |
| 9 | use embassy_rp::relocate::RelocatedProgram; | 9 | use embassy_rp::relocate::RelocatedProgram; |
| 10 | use {defmt_rtt as _, panic_probe as _}; | 10 | use {defmt_rtt as _, panic_probe as _}; |
| @@ -99,10 +99,10 @@ fn setup_pio_task_sm2(pio: &mut PioCommon<PIO0>, sm: &mut PioStateMachine<PIO0, | |||
| 99 | } | 99 | } |
| 100 | 100 | ||
| 101 | #[embassy_executor::task] | 101 | #[embassy_executor::task] |
| 102 | async fn pio_task_sm2(mut sm: PioStateMachine<'static, PIO0, 2>) { | 102 | async fn pio_task_sm2(mut irq: PioIrq<'static, PIO0, 3>, mut sm: PioStateMachine<'static, PIO0, 2>) { |
| 103 | sm.set_enable(true); | 103 | sm.set_enable(true); |
| 104 | loop { | 104 | loop { |
| 105 | sm.wait_irq(3).await; | 105 | irq.wait().await; |
| 106 | info!("IRQ trigged"); | 106 | info!("IRQ trigged"); |
| 107 | } | 107 | } |
| 108 | } | 108 | } |
| @@ -114,6 +114,7 @@ async fn main(spawner: Spawner) { | |||
| 114 | 114 | ||
| 115 | let Pio { | 115 | let Pio { |
| 116 | mut common, | 116 | mut common, |
| 117 | irq3, | ||
| 117 | mut sm0, | 118 | mut sm0, |
| 118 | mut sm1, | 119 | mut sm1, |
| 119 | mut sm2, | 120 | mut sm2, |
| @@ -125,5 +126,5 @@ async fn main(spawner: Spawner) { | |||
| 125 | setup_pio_task_sm2(&mut common, &mut sm2); | 126 | setup_pio_task_sm2(&mut common, &mut sm2); |
| 126 | spawner.spawn(pio_task_sm0(sm0)).unwrap(); | 127 | spawner.spawn(pio_task_sm0(sm0)).unwrap(); |
| 127 | spawner.spawn(pio_task_sm1(sm1)).unwrap(); | 128 | spawner.spawn(pio_task_sm1(sm1)).unwrap(); |
| 128 | spawner.spawn(pio_task_sm2(sm2)).unwrap(); | 129 | spawner.spawn(pio_task_sm2(irq3, sm2)).unwrap(); |
| 129 | } | 130 | } |
diff --git a/examples/rp/src/bin/pio_hd44780.rs b/examples/rp/src/bin/pio_hd44780.rs index bc51d43c4..7c1d7acfe 100644 --- a/examples/rp/src/bin/pio_hd44780.rs +++ b/examples/rp/src/bin/pio_hd44780.rs | |||
| @@ -85,7 +85,10 @@ impl<'l> HD44780<'l> { | |||
| 85 | 85 | ||
| 86 | let db7pin = db7.pin(); | 86 | let db7pin = db7.pin(); |
| 87 | let Pio { | 87 | let Pio { |
| 88 | mut common, mut sm0, .. | 88 | mut common, |
| 89 | mut irq0, | ||
| 90 | mut sm0, | ||
| 91 | .. | ||
| 89 | } = Pio::new(pio); | 92 | } = Pio::new(pio); |
| 90 | 93 | ||
| 91 | // takes command words (<wait:24> <command:4> <0:4>) | 94 | // takes command words (<wait:24> <command:4> <0:4>) |
| @@ -145,7 +148,7 @@ impl<'l> HD44780<'l> { | |||
| 145 | sm0.push_tx((50 << 8) | 0x20); | 148 | sm0.push_tx((50 << 8) | 0x20); |
| 146 | sm0.push_tx(0b1100_0000); | 149 | sm0.push_tx(0b1100_0000); |
| 147 | 150 | ||
| 148 | sm0.wait_irq(0).await; | 151 | irq0.wait().await; |
| 149 | sm0.set_enable(false); | 152 | sm0.set_enable(false); |
| 150 | 153 | ||
| 151 | // takes command sequences (<rs:1> <count:7>, data...) | 154 | // takes command sequences (<rs:1> <count:7>, data...) |
