nrf/ppi: nrf52805 only has 10 configurable channels.
This commit is contained in:
parent
6e7abba9ff
commit
cf13dd7df8
8 changed files with 230 additions and 44 deletions
|
@ -159,6 +159,29 @@ impl_pin!(P0_29, 0, 29);
|
|||
impl_pin!(P0_30, 0, 30);
|
||||
impl_pin!(P0_31, 0, 31);
|
||||
|
||||
impl_ppi_channel!(PPI_CH0, 0, configurable);
|
||||
impl_ppi_channel!(PPI_CH1, 1, configurable);
|
||||
impl_ppi_channel!(PPI_CH2, 2, configurable);
|
||||
impl_ppi_channel!(PPI_CH3, 3, configurable);
|
||||
impl_ppi_channel!(PPI_CH4, 4, configurable);
|
||||
impl_ppi_channel!(PPI_CH5, 5, configurable);
|
||||
impl_ppi_channel!(PPI_CH6, 6, configurable);
|
||||
impl_ppi_channel!(PPI_CH7, 7, configurable);
|
||||
impl_ppi_channel!(PPI_CH8, 8, configurable);
|
||||
impl_ppi_channel!(PPI_CH9, 9, configurable);
|
||||
impl_ppi_channel!(PPI_CH20, 20);
|
||||
impl_ppi_channel!(PPI_CH21, 21);
|
||||
impl_ppi_channel!(PPI_CH22, 22);
|
||||
impl_ppi_channel!(PPI_CH23, 23);
|
||||
impl_ppi_channel!(PPI_CH24, 24);
|
||||
impl_ppi_channel!(PPI_CH25, 25);
|
||||
impl_ppi_channel!(PPI_CH26, 26);
|
||||
impl_ppi_channel!(PPI_CH27, 27);
|
||||
impl_ppi_channel!(PPI_CH28, 28);
|
||||
impl_ppi_channel!(PPI_CH29, 29);
|
||||
impl_ppi_channel!(PPI_CH30, 30);
|
||||
impl_ppi_channel!(PPI_CH31, 31);
|
||||
|
||||
pub mod irqs {
|
||||
use crate::pac::Interrupt as InterruptEnum;
|
||||
use embassy_macros::interrupt_declare as declare;
|
||||
|
|
|
@ -164,6 +164,39 @@ impl_pin!(P0_29, 0, 29);
|
|||
impl_pin!(P0_30, 0, 30);
|
||||
impl_pin!(P0_31, 0, 31);
|
||||
|
||||
impl_ppi_channel!(PPI_CH0, 0, configurable);
|
||||
impl_ppi_channel!(PPI_CH1, 1, configurable);
|
||||
impl_ppi_channel!(PPI_CH2, 2, configurable);
|
||||
impl_ppi_channel!(PPI_CH3, 3, configurable);
|
||||
impl_ppi_channel!(PPI_CH4, 4, configurable);
|
||||
impl_ppi_channel!(PPI_CH5, 5, configurable);
|
||||
impl_ppi_channel!(PPI_CH6, 6, configurable);
|
||||
impl_ppi_channel!(PPI_CH7, 7, configurable);
|
||||
impl_ppi_channel!(PPI_CH8, 8, configurable);
|
||||
impl_ppi_channel!(PPI_CH9, 9, configurable);
|
||||
impl_ppi_channel!(PPI_CH10, 10, configurable);
|
||||
impl_ppi_channel!(PPI_CH11, 11, configurable);
|
||||
impl_ppi_channel!(PPI_CH12, 12, configurable);
|
||||
impl_ppi_channel!(PPI_CH13, 13, configurable);
|
||||
impl_ppi_channel!(PPI_CH14, 14, configurable);
|
||||
impl_ppi_channel!(PPI_CH15, 15, configurable);
|
||||
impl_ppi_channel!(PPI_CH16, 16, configurable);
|
||||
impl_ppi_channel!(PPI_CH17, 17, configurable);
|
||||
impl_ppi_channel!(PPI_CH18, 18, configurable);
|
||||
impl_ppi_channel!(PPI_CH19, 19, configurable);
|
||||
impl_ppi_channel!(PPI_CH20, 20);
|
||||
impl_ppi_channel!(PPI_CH21, 21);
|
||||
impl_ppi_channel!(PPI_CH22, 22);
|
||||
impl_ppi_channel!(PPI_CH23, 23);
|
||||
impl_ppi_channel!(PPI_CH24, 24);
|
||||
impl_ppi_channel!(PPI_CH25, 25);
|
||||
impl_ppi_channel!(PPI_CH26, 26);
|
||||
impl_ppi_channel!(PPI_CH27, 27);
|
||||
impl_ppi_channel!(PPI_CH28, 28);
|
||||
impl_ppi_channel!(PPI_CH29, 29);
|
||||
impl_ppi_channel!(PPI_CH30, 30);
|
||||
impl_ppi_channel!(PPI_CH31, 31);
|
||||
|
||||
pub mod irqs {
|
||||
use crate::pac::Interrupt as InterruptEnum;
|
||||
use embassy_macros::interrupt_declare as declare;
|
||||
|
|
|
@ -165,6 +165,39 @@ impl_pin!(P0_29, 0, 29);
|
|||
impl_pin!(P0_30, 0, 30);
|
||||
impl_pin!(P0_31, 0, 31);
|
||||
|
||||
impl_ppi_channel!(PPI_CH0, 0, configurable);
|
||||
impl_ppi_channel!(PPI_CH1, 1, configurable);
|
||||
impl_ppi_channel!(PPI_CH2, 2, configurable);
|
||||
impl_ppi_channel!(PPI_CH3, 3, configurable);
|
||||
impl_ppi_channel!(PPI_CH4, 4, configurable);
|
||||
impl_ppi_channel!(PPI_CH5, 5, configurable);
|
||||
impl_ppi_channel!(PPI_CH6, 6, configurable);
|
||||
impl_ppi_channel!(PPI_CH7, 7, configurable);
|
||||
impl_ppi_channel!(PPI_CH8, 8, configurable);
|
||||
impl_ppi_channel!(PPI_CH9, 9, configurable);
|
||||
impl_ppi_channel!(PPI_CH10, 10, configurable);
|
||||
impl_ppi_channel!(PPI_CH11, 11, configurable);
|
||||
impl_ppi_channel!(PPI_CH12, 12, configurable);
|
||||
impl_ppi_channel!(PPI_CH13, 13, configurable);
|
||||
impl_ppi_channel!(PPI_CH14, 14, configurable);
|
||||
impl_ppi_channel!(PPI_CH15, 15, configurable);
|
||||
impl_ppi_channel!(PPI_CH16, 16, configurable);
|
||||
impl_ppi_channel!(PPI_CH17, 17, configurable);
|
||||
impl_ppi_channel!(PPI_CH18, 18, configurable);
|
||||
impl_ppi_channel!(PPI_CH19, 19, configurable);
|
||||
impl_ppi_channel!(PPI_CH20, 20);
|
||||
impl_ppi_channel!(PPI_CH21, 21);
|
||||
impl_ppi_channel!(PPI_CH22, 22);
|
||||
impl_ppi_channel!(PPI_CH23, 23);
|
||||
impl_ppi_channel!(PPI_CH24, 24);
|
||||
impl_ppi_channel!(PPI_CH25, 25);
|
||||
impl_ppi_channel!(PPI_CH26, 26);
|
||||
impl_ppi_channel!(PPI_CH27, 27);
|
||||
impl_ppi_channel!(PPI_CH28, 28);
|
||||
impl_ppi_channel!(PPI_CH29, 29);
|
||||
impl_ppi_channel!(PPI_CH30, 30);
|
||||
impl_ppi_channel!(PPI_CH31, 31);
|
||||
|
||||
pub mod irqs {
|
||||
use crate::pac::Interrupt as InterruptEnum;
|
||||
use embassy_macros::interrupt_declare as declare;
|
||||
|
|
|
@ -160,6 +160,39 @@ impl_pin!(P0_29, 0, 29);
|
|||
impl_pin!(P0_30, 0, 30);
|
||||
impl_pin!(P0_31, 0, 31);
|
||||
|
||||
impl_ppi_channel!(PPI_CH0, 0, configurable);
|
||||
impl_ppi_channel!(PPI_CH1, 1, configurable);
|
||||
impl_ppi_channel!(PPI_CH2, 2, configurable);
|
||||
impl_ppi_channel!(PPI_CH3, 3, configurable);
|
||||
impl_ppi_channel!(PPI_CH4, 4, configurable);
|
||||
impl_ppi_channel!(PPI_CH5, 5, configurable);
|
||||
impl_ppi_channel!(PPI_CH6, 6, configurable);
|
||||
impl_ppi_channel!(PPI_CH7, 7, configurable);
|
||||
impl_ppi_channel!(PPI_CH8, 8, configurable);
|
||||
impl_ppi_channel!(PPI_CH9, 9, configurable);
|
||||
impl_ppi_channel!(PPI_CH10, 10, configurable);
|
||||
impl_ppi_channel!(PPI_CH11, 11, configurable);
|
||||
impl_ppi_channel!(PPI_CH12, 12, configurable);
|
||||
impl_ppi_channel!(PPI_CH13, 13, configurable);
|
||||
impl_ppi_channel!(PPI_CH14, 14, configurable);
|
||||
impl_ppi_channel!(PPI_CH15, 15, configurable);
|
||||
impl_ppi_channel!(PPI_CH16, 16, configurable);
|
||||
impl_ppi_channel!(PPI_CH17, 17, configurable);
|
||||
impl_ppi_channel!(PPI_CH18, 18, configurable);
|
||||
impl_ppi_channel!(PPI_CH19, 19, configurable);
|
||||
impl_ppi_channel!(PPI_CH20, 20);
|
||||
impl_ppi_channel!(PPI_CH21, 21);
|
||||
impl_ppi_channel!(PPI_CH22, 22);
|
||||
impl_ppi_channel!(PPI_CH23, 23);
|
||||
impl_ppi_channel!(PPI_CH24, 24);
|
||||
impl_ppi_channel!(PPI_CH25, 25);
|
||||
impl_ppi_channel!(PPI_CH26, 26);
|
||||
impl_ppi_channel!(PPI_CH27, 27);
|
||||
impl_ppi_channel!(PPI_CH28, 28);
|
||||
impl_ppi_channel!(PPI_CH29, 29);
|
||||
impl_ppi_channel!(PPI_CH30, 30);
|
||||
impl_ppi_channel!(PPI_CH31, 31);
|
||||
|
||||
pub mod irqs {
|
||||
use crate::pac::Interrupt as InterruptEnum;
|
||||
use embassy_macros::interrupt_declare as declare;
|
||||
|
|
|
@ -178,6 +178,39 @@ impl_pin!(P0_29, 0, 29);
|
|||
impl_pin!(P0_30, 0, 30);
|
||||
impl_pin!(P0_31, 0, 31);
|
||||
|
||||
impl_ppi_channel!(PPI_CH0, 0, configurable);
|
||||
impl_ppi_channel!(PPI_CH1, 1, configurable);
|
||||
impl_ppi_channel!(PPI_CH2, 2, configurable);
|
||||
impl_ppi_channel!(PPI_CH3, 3, configurable);
|
||||
impl_ppi_channel!(PPI_CH4, 4, configurable);
|
||||
impl_ppi_channel!(PPI_CH5, 5, configurable);
|
||||
impl_ppi_channel!(PPI_CH6, 6, configurable);
|
||||
impl_ppi_channel!(PPI_CH7, 7, configurable);
|
||||
impl_ppi_channel!(PPI_CH8, 8, configurable);
|
||||
impl_ppi_channel!(PPI_CH9, 9, configurable);
|
||||
impl_ppi_channel!(PPI_CH10, 10, configurable);
|
||||
impl_ppi_channel!(PPI_CH11, 11, configurable);
|
||||
impl_ppi_channel!(PPI_CH12, 12, configurable);
|
||||
impl_ppi_channel!(PPI_CH13, 13, configurable);
|
||||
impl_ppi_channel!(PPI_CH14, 14, configurable);
|
||||
impl_ppi_channel!(PPI_CH15, 15, configurable);
|
||||
impl_ppi_channel!(PPI_CH16, 16, configurable);
|
||||
impl_ppi_channel!(PPI_CH17, 17, configurable);
|
||||
impl_ppi_channel!(PPI_CH18, 18, configurable);
|
||||
impl_ppi_channel!(PPI_CH19, 19, configurable);
|
||||
impl_ppi_channel!(PPI_CH20, 20);
|
||||
impl_ppi_channel!(PPI_CH21, 21);
|
||||
impl_ppi_channel!(PPI_CH22, 22);
|
||||
impl_ppi_channel!(PPI_CH23, 23);
|
||||
impl_ppi_channel!(PPI_CH24, 24);
|
||||
impl_ppi_channel!(PPI_CH25, 25);
|
||||
impl_ppi_channel!(PPI_CH26, 26);
|
||||
impl_ppi_channel!(PPI_CH27, 27);
|
||||
impl_ppi_channel!(PPI_CH28, 28);
|
||||
impl_ppi_channel!(PPI_CH29, 29);
|
||||
impl_ppi_channel!(PPI_CH30, 30);
|
||||
impl_ppi_channel!(PPI_CH31, 31);
|
||||
|
||||
pub mod irqs {
|
||||
use crate::pac::Interrupt as InterruptEnum;
|
||||
use embassy_macros::interrupt_declare as declare;
|
||||
|
|
|
@ -218,6 +218,39 @@ impl_pin!(P1_13, 1, 13);
|
|||
impl_pin!(P1_14, 1, 14);
|
||||
impl_pin!(P1_15, 1, 15);
|
||||
|
||||
impl_ppi_channel!(PPI_CH0, 0, configurable);
|
||||
impl_ppi_channel!(PPI_CH1, 1, configurable);
|
||||
impl_ppi_channel!(PPI_CH2, 2, configurable);
|
||||
impl_ppi_channel!(PPI_CH3, 3, configurable);
|
||||
impl_ppi_channel!(PPI_CH4, 4, configurable);
|
||||
impl_ppi_channel!(PPI_CH5, 5, configurable);
|
||||
impl_ppi_channel!(PPI_CH6, 6, configurable);
|
||||
impl_ppi_channel!(PPI_CH7, 7, configurable);
|
||||
impl_ppi_channel!(PPI_CH8, 8, configurable);
|
||||
impl_ppi_channel!(PPI_CH9, 9, configurable);
|
||||
impl_ppi_channel!(PPI_CH10, 10, configurable);
|
||||
impl_ppi_channel!(PPI_CH11, 11, configurable);
|
||||
impl_ppi_channel!(PPI_CH12, 12, configurable);
|
||||
impl_ppi_channel!(PPI_CH13, 13, configurable);
|
||||
impl_ppi_channel!(PPI_CH14, 14, configurable);
|
||||
impl_ppi_channel!(PPI_CH15, 15, configurable);
|
||||
impl_ppi_channel!(PPI_CH16, 16, configurable);
|
||||
impl_ppi_channel!(PPI_CH17, 17, configurable);
|
||||
impl_ppi_channel!(PPI_CH18, 18, configurable);
|
||||
impl_ppi_channel!(PPI_CH19, 19, configurable);
|
||||
impl_ppi_channel!(PPI_CH20, 20);
|
||||
impl_ppi_channel!(PPI_CH21, 21);
|
||||
impl_ppi_channel!(PPI_CH22, 22);
|
||||
impl_ppi_channel!(PPI_CH23, 23);
|
||||
impl_ppi_channel!(PPI_CH24, 24);
|
||||
impl_ppi_channel!(PPI_CH25, 25);
|
||||
impl_ppi_channel!(PPI_CH26, 26);
|
||||
impl_ppi_channel!(PPI_CH27, 27);
|
||||
impl_ppi_channel!(PPI_CH28, 28);
|
||||
impl_ppi_channel!(PPI_CH29, 29);
|
||||
impl_ppi_channel!(PPI_CH30, 30);
|
||||
impl_ppi_channel!(PPI_CH31, 31);
|
||||
|
||||
pub mod irqs {
|
||||
use crate::pac::Interrupt as InterruptEnum;
|
||||
use embassy_macros::interrupt_declare as declare;
|
||||
|
|
|
@ -223,6 +223,39 @@ impl_pin!(P1_13, 1, 13);
|
|||
impl_pin!(P1_14, 1, 14);
|
||||
impl_pin!(P1_15, 1, 15);
|
||||
|
||||
impl_ppi_channel!(PPI_CH0, 0, configurable);
|
||||
impl_ppi_channel!(PPI_CH1, 1, configurable);
|
||||
impl_ppi_channel!(PPI_CH2, 2, configurable);
|
||||
impl_ppi_channel!(PPI_CH3, 3, configurable);
|
||||
impl_ppi_channel!(PPI_CH4, 4, configurable);
|
||||
impl_ppi_channel!(PPI_CH5, 5, configurable);
|
||||
impl_ppi_channel!(PPI_CH6, 6, configurable);
|
||||
impl_ppi_channel!(PPI_CH7, 7, configurable);
|
||||
impl_ppi_channel!(PPI_CH8, 8, configurable);
|
||||
impl_ppi_channel!(PPI_CH9, 9, configurable);
|
||||
impl_ppi_channel!(PPI_CH10, 10, configurable);
|
||||
impl_ppi_channel!(PPI_CH11, 11, configurable);
|
||||
impl_ppi_channel!(PPI_CH12, 12, configurable);
|
||||
impl_ppi_channel!(PPI_CH13, 13, configurable);
|
||||
impl_ppi_channel!(PPI_CH14, 14, configurable);
|
||||
impl_ppi_channel!(PPI_CH15, 15, configurable);
|
||||
impl_ppi_channel!(PPI_CH16, 16, configurable);
|
||||
impl_ppi_channel!(PPI_CH17, 17, configurable);
|
||||
impl_ppi_channel!(PPI_CH18, 18, configurable);
|
||||
impl_ppi_channel!(PPI_CH19, 19, configurable);
|
||||
impl_ppi_channel!(PPI_CH20, 20);
|
||||
impl_ppi_channel!(PPI_CH21, 21);
|
||||
impl_ppi_channel!(PPI_CH22, 22);
|
||||
impl_ppi_channel!(PPI_CH23, 23);
|
||||
impl_ppi_channel!(PPI_CH24, 24);
|
||||
impl_ppi_channel!(PPI_CH25, 25);
|
||||
impl_ppi_channel!(PPI_CH26, 26);
|
||||
impl_ppi_channel!(PPI_CH27, 27);
|
||||
impl_ppi_channel!(PPI_CH28, 28);
|
||||
impl_ppi_channel!(PPI_CH29, 29);
|
||||
impl_ppi_channel!(PPI_CH30, 30);
|
||||
impl_ppi_channel!(PPI_CH31, 31);
|
||||
|
||||
pub mod irqs {
|
||||
use crate::pac::Interrupt as InterruptEnum;
|
||||
use embassy_macros::interrupt_declare as declare;
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
#![macro_use]
|
||||
|
||||
//! HAL interface for the PPI peripheral.
|
||||
//!
|
||||
//! The Programmable Peripheral Interconnect interface allows for an autonomous interoperability
|
||||
|
@ -109,7 +111,7 @@ impl Event {
|
|||
}
|
||||
}
|
||||
|
||||
mod sealed {
|
||||
pub(crate) mod sealed {
|
||||
pub trait ConfigurableChannel {}
|
||||
pub trait Channel {}
|
||||
pub trait Group {}
|
||||
|
@ -167,15 +169,15 @@ impl Channel for AnyConfigurableChannel {
|
|||
}
|
||||
}
|
||||
|
||||
macro_rules! impl_channel {
|
||||
macro_rules! impl_ppi_channel {
|
||||
($type:ident, $number:expr, configurable) => {
|
||||
impl_channel!($type, $number);
|
||||
impl sealed::ConfigurableChannel for peripherals::$type {}
|
||||
impl ConfigurableChannel for peripherals::$type {}
|
||||
impl_ppi_channel!($type, $number);
|
||||
impl crate::ppi::sealed::ConfigurableChannel for peripherals::$type {}
|
||||
impl crate::ppi::ConfigurableChannel for peripherals::$type {}
|
||||
};
|
||||
($type:ident, $number:expr) => {
|
||||
impl sealed::Channel for peripherals::$type {}
|
||||
impl Channel for peripherals::$type {
|
||||
impl crate::ppi::sealed::Channel for peripherals::$type {}
|
||||
impl crate::ppi::Channel for peripherals::$type {
|
||||
fn number(&self) -> usize {
|
||||
$number
|
||||
}
|
||||
|
@ -183,43 +185,6 @@ macro_rules! impl_channel {
|
|||
};
|
||||
}
|
||||
|
||||
impl_channel!(PPI_CH0, 0, configurable);
|
||||
impl_channel!(PPI_CH1, 1, configurable);
|
||||
impl_channel!(PPI_CH2, 2, configurable);
|
||||
impl_channel!(PPI_CH3, 3, configurable);
|
||||
impl_channel!(PPI_CH4, 4, configurable);
|
||||
impl_channel!(PPI_CH5, 5, configurable);
|
||||
impl_channel!(PPI_CH6, 6, configurable);
|
||||
impl_channel!(PPI_CH7, 7, configurable);
|
||||
impl_channel!(PPI_CH8, 8, configurable);
|
||||
impl_channel!(PPI_CH9, 9, configurable);
|
||||
impl_channel!(PPI_CH10, 10, configurable);
|
||||
impl_channel!(PPI_CH11, 11, configurable);
|
||||
impl_channel!(PPI_CH12, 12, configurable);
|
||||
impl_channel!(PPI_CH13, 13, configurable);
|
||||
impl_channel!(PPI_CH14, 14, configurable);
|
||||
impl_channel!(PPI_CH15, 15, configurable);
|
||||
#[cfg(not(feature = "nrf51"))]
|
||||
impl_channel!(PPI_CH16, 16, configurable);
|
||||
#[cfg(not(feature = "nrf51"))]
|
||||
impl_channel!(PPI_CH17, 17, configurable);
|
||||
#[cfg(not(feature = "nrf51"))]
|
||||
impl_channel!(PPI_CH18, 18, configurable);
|
||||
#[cfg(not(feature = "nrf51"))]
|
||||
impl_channel!(PPI_CH19, 19, configurable);
|
||||
impl_channel!(PPI_CH20, 20);
|
||||
impl_channel!(PPI_CH21, 21);
|
||||
impl_channel!(PPI_CH22, 22);
|
||||
impl_channel!(PPI_CH23, 23);
|
||||
impl_channel!(PPI_CH24, 24);
|
||||
impl_channel!(PPI_CH25, 25);
|
||||
impl_channel!(PPI_CH26, 26);
|
||||
impl_channel!(PPI_CH27, 27);
|
||||
impl_channel!(PPI_CH28, 28);
|
||||
impl_channel!(PPI_CH29, 29);
|
||||
impl_channel!(PPI_CH30, 30);
|
||||
impl_channel!(PPI_CH31, 31);
|
||||
|
||||
// ======================
|
||||
// groups
|
||||
|
||||
|
|
Loading…
Reference in a new issue