From 65628e1f1538f003c114d97c98970631953e7d6e Mon Sep 17 00:00:00 2001 From: Dion Dokter Date: Wed, 13 Oct 2021 16:35:05 +0200 Subject: - Added _ppi and _dppi to distinguish between the new and the old peripheral. - Removed ConfigurableChannel and added capacity numbers to the channels - Replaced the PPI api with a new one using the DPPI terminology (publish & subscribe) - Updated all tasks and event registers for DPPI --- examples/nrf/src/bin/ppi.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'examples') diff --git a/examples/nrf/src/bin/ppi.rs b/examples/nrf/src/bin/ppi.rs index 6ea03ebd0..550893968 100644 --- a/examples/nrf/src/bin/ppi.rs +++ b/examples/nrf/src/bin/ppi.rs @@ -52,24 +52,24 @@ async fn main(_spawner: Spawner, p: Peripherals) { ); let mut ppi = Ppi::new(p.PPI_CH0); - ppi.set_event(button1.event_in()); - ppi.set_task(led1.task_out()); + ppi.publish(button1.event_in()).unwrap(); + ppi.subscribe(led1.task_out()).unwrap(); ppi.enable(); let mut ppi = Ppi::new(p.PPI_CH1); - ppi.set_event(button2.event_in()); - ppi.set_task(led1.task_clr()); + ppi.publish(button2.event_in()).unwrap(); + ppi.subscribe(led1.task_clr()).unwrap(); ppi.enable(); let mut ppi = Ppi::new(p.PPI_CH2); - ppi.set_event(button3.event_in()); - ppi.set_task(led1.task_set()); + ppi.publish(button3.event_in()).unwrap(); + ppi.subscribe(led1.task_set()).unwrap(); ppi.enable(); let mut ppi = Ppi::new(p.PPI_CH3); - ppi.set_event(button4.event_in()); - ppi.set_task(led1.task_out()); - ppi.set_fork_task(led2.task_out()); + ppi.publish(button4.event_in()).unwrap(); + ppi.subscribe(led1.task_out()).unwrap(); + ppi.subscribe(led2.task_out()).unwrap(); ppi.enable(); info!("PPI setup!"); -- cgit From e6ec81b999541cca847b50075ac0d5d826f97dcd Mon Sep 17 00:00:00 2001 From: Dion Dokter Date: Thu, 14 Oct 2021 15:13:45 +0200 Subject: Fixed examples and added defmt format to the new error types --- examples/nrf/src/bin/buffered_uart.rs | 4 ++-- examples/nrf/src/bin/uart_idle.rs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'examples') diff --git a/examples/nrf/src/bin/buffered_uart.rs b/examples/nrf/src/bin/buffered_uart.rs index 69c7de93b..b01c83ce3 100644 --- a/examples/nrf/src/bin/buffered_uart.rs +++ b/examples/nrf/src/bin/buffered_uart.rs @@ -26,7 +26,7 @@ async fn main(_spawner: Spawner, p: Peripherals) { let irq = interrupt::take!(UARTE0_UART0); let mut state = State::new(); let u = unsafe { - BufferedUarte::new( + unwrap!(BufferedUarte::new( &mut state, p.UARTE0, p.TIMER0, @@ -40,7 +40,7 @@ async fn main(_spawner: Spawner, p: Peripherals) { config, &mut rx_buffer, &mut tx_buffer, - ) + )) }; pin_mut!(u); diff --git a/examples/nrf/src/bin/uart_idle.rs b/examples/nrf/src/bin/uart_idle.rs index e9f4a285a..e04e5cf04 100644 --- a/examples/nrf/src/bin/uart_idle.rs +++ b/examples/nrf/src/bin/uart_idle.rs @@ -21,9 +21,9 @@ async fn main(_spawner: Spawner, p: Peripherals) { let irq = interrupt::take!(UARTE0_UART0); let mut uart = unsafe { - uarte::UarteWithIdle::new( + unwrap!(uarte::UarteWithIdle::new( p.UARTE0, p.TIMER0, p.PPI_CH0, p.PPI_CH1, irq, p.P0_08, p.P0_06, NoPin, NoPin, config, - ) + )) }; info!("uarte initialized!"); -- cgit From 11655af034538b463ff8220714e9b97cf53f8f56 Mon Sep 17 00:00:00 2001 From: Dion Dokter Date: Mon, 18 Oct 2021 16:23:39 +0200 Subject: Another redo using the feedback. PPI is now split up into PPI and DPPI under the name 'interconnect'. The tasks and events are tracked and reset in the drop function. --- examples/nrf/src/bin/buffered_uart.rs | 4 ++-- examples/nrf/src/bin/ppi.rs | 24 ++++++++++-------------- examples/nrf/src/bin/uart_idle.rs | 4 ++-- 3 files changed, 14 insertions(+), 18 deletions(-) (limited to 'examples') diff --git a/examples/nrf/src/bin/buffered_uart.rs b/examples/nrf/src/bin/buffered_uart.rs index b01c83ce3..69c7de93b 100644 --- a/examples/nrf/src/bin/buffered_uart.rs +++ b/examples/nrf/src/bin/buffered_uart.rs @@ -26,7 +26,7 @@ async fn main(_spawner: Spawner, p: Peripherals) { let irq = interrupt::take!(UARTE0_UART0); let mut state = State::new(); let u = unsafe { - unwrap!(BufferedUarte::new( + BufferedUarte::new( &mut state, p.UARTE0, p.TIMER0, @@ -40,7 +40,7 @@ async fn main(_spawner: Spawner, p: Peripherals) { config, &mut rx_buffer, &mut tx_buffer, - )) + ) }; pin_mut!(u); diff --git a/examples/nrf/src/bin/ppi.rs b/examples/nrf/src/bin/ppi.rs index 550893968..4edb5d7c0 100644 --- a/examples/nrf/src/bin/ppi.rs +++ b/examples/nrf/src/bin/ppi.rs @@ -10,7 +10,7 @@ use core::future::pending; use embassy::executor::Spawner; use embassy_nrf::gpio::{Input, Level, Output, OutputDrive, Pull}; use embassy_nrf::gpiote::{self, InputChannel, InputChannelPolarity}; -use embassy_nrf::ppi::Ppi; +use embassy_nrf::interconnect::Ppi; use embassy_nrf::Peripherals; use gpiote::{OutputChannel, OutputChannelPolarity}; @@ -51,25 +51,21 @@ async fn main(_spawner: Spawner, p: Peripherals) { OutputChannelPolarity::Toggle, ); - let mut ppi = Ppi::new(p.PPI_CH0); - ppi.publish(button1.event_in()).unwrap(); - ppi.subscribe(led1.task_out()).unwrap(); + let mut ppi = Ppi::new_one_to_one(p.PPI_CH0, button1.event_in(), led1.task_out()); ppi.enable(); - let mut ppi = Ppi::new(p.PPI_CH1); - ppi.publish(button2.event_in()).unwrap(); - ppi.subscribe(led1.task_clr()).unwrap(); + let mut ppi = Ppi::new_one_to_one(p.PPI_CH1, button2.event_in(), led1.task_clr()); ppi.enable(); - let mut ppi = Ppi::new(p.PPI_CH2); - ppi.publish(button3.event_in()).unwrap(); - ppi.subscribe(led1.task_set()).unwrap(); + let mut ppi = Ppi::new_one_to_one(p.PPI_CH2, button3.event_in(), led1.task_set()); ppi.enable(); - let mut ppi = Ppi::new(p.PPI_CH3); - ppi.publish(button4.event_in()).unwrap(); - ppi.subscribe(led1.task_out()).unwrap(); - ppi.subscribe(led2.task_out()).unwrap(); + let mut ppi = Ppi::new_one_to_two( + p.PPI_CH3, + button4.event_in(), + led1.task_out(), + led2.task_out(), + ); ppi.enable(); info!("PPI setup!"); diff --git a/examples/nrf/src/bin/uart_idle.rs b/examples/nrf/src/bin/uart_idle.rs index e04e5cf04..e9f4a285a 100644 --- a/examples/nrf/src/bin/uart_idle.rs +++ b/examples/nrf/src/bin/uart_idle.rs @@ -21,9 +21,9 @@ async fn main(_spawner: Spawner, p: Peripherals) { let irq = interrupt::take!(UARTE0_UART0); let mut uart = unsafe { - unwrap!(uarte::UarteWithIdle::new( + uarte::UarteWithIdle::new( p.UARTE0, p.TIMER0, p.PPI_CH0, p.PPI_CH1, irq, p.P0_08, p.P0_06, NoPin, NoPin, config, - )) + ) }; info!("uarte initialized!"); -- cgit From 4d3341dbb980131762d714cb5b5d8dfb11060119 Mon Sep 17 00:00:00 2001 From: Dion Dokter Date: Tue, 19 Oct 2021 10:27:49 +0200 Subject: Fixed examples --- examples/nrf/src/bin/ppi.rs | 2 +- examples/nrf/src/bin/saadc_continuous.rs | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) (limited to 'examples') diff --git a/examples/nrf/src/bin/ppi.rs b/examples/nrf/src/bin/ppi.rs index 4edb5d7c0..99246eeda 100644 --- a/examples/nrf/src/bin/ppi.rs +++ b/examples/nrf/src/bin/ppi.rs @@ -10,7 +10,7 @@ use core::future::pending; use embassy::executor::Spawner; use embassy_nrf::gpio::{Input, Level, Output, OutputDrive, Pull}; use embassy_nrf::gpiote::{self, InputChannel, InputChannelPolarity}; -use embassy_nrf::interconnect::Ppi; +use embassy_nrf::ppi::Ppi; use embassy_nrf::Peripherals; use gpiote::{OutputChannel, OutputChannelPolarity}; diff --git a/examples/nrf/src/bin/saadc_continuous.rs b/examples/nrf/src/bin/saadc_continuous.rs index 149b9c60c..a06a01e91 100644 --- a/examples/nrf/src/bin/saadc_continuous.rs +++ b/examples/nrf/src/bin/saadc_continuous.rs @@ -32,9 +32,7 @@ async fn main(_spawner: Spawner, mut p: Peripherals) { timer.cc(0).write(100); // We want to sample at 10KHz timer.cc(0).short_compare_clear(); - let mut ppi = Ppi::new(p.PPI_CH0); - ppi.set_event(timer.cc(0).event_compare()); - ppi.set_task(saadc.task_sample()); + let mut ppi = Ppi::new_one_to_one(p.PPI_CH0, timer.cc(0).event_compare(), saadc.task_sample()); ppi.enable(); timer.start(); -- cgit