nRF5 SDK v17.1.0
Modules | Macros | Functions
PPI allocator

Programmable Peripheral Interconnect (PPI) allocator. More...

Modules

 PPI peripheral allocator configuration
 

Macros

#define NRFX_PPI_CHANNELS_USED   0
 Bitfield representing PPI channels used by external modules.
 
#define NRFX_PPI_GROUPS_USED   0
 Bitfield representing PPI groups used by external modules.
 
#define NRFX_PPI_ALL_APP_CHANNELS_MASK   ((uint32_t)0xFFFFFFFFuL & ~(NRFX_PPI_CHANNELS_USED))
 Bitfield representing all PPI channels available to the application.
 
#define NRFX_PPI_PROG_APP_CHANNELS_MASK   ((uint32_t)0x000FFFFFuL & ~(NRFX_PPI_CHANNELS_USED))
 Bitfield representing programmable PPI channels available to the application.
 
#define NRFX_PPI_ALL_APP_GROUPS_MASK   (((1uL << PPI_GROUP_NUM) - 1) & ~(NRFX_PPI_GROUPS_USED))
 Bitfield representing all PPI groups available to the application.
 

Functions

void nrfx_ppi_free_all (void)
 Function for uninitializing the PPI module. More...
 
nrfx_err_t nrfx_ppi_channel_alloc (nrf_ppi_channel_t *p_channel)
 Function for allocating a PPI channel. More...
 
nrfx_err_t nrfx_ppi_channel_free (nrf_ppi_channel_t channel)
 Function for freeing a PPI channel. More...
 
nrfx_err_t nrfx_ppi_channel_assign (nrf_ppi_channel_t channel, uint32_t eep, uint32_t tep)
 Function for assigning task and event endpoints to the PPI channel. More...
 
nrfx_err_t nrfx_ppi_channel_fork_assign (nrf_ppi_channel_t channel, uint32_t fork_tep)
 Function for assigning fork endpoint to the PPI channel or clearing it. More...
 
nrfx_err_t nrfx_ppi_channel_enable (nrf_ppi_channel_t channel)
 Function for enabling a PPI channel. More...
 
nrfx_err_t nrfx_ppi_channel_disable (nrf_ppi_channel_t channel)
 Function for disabling a PPI channel. More...
 
nrfx_err_t nrfx_ppi_group_alloc (nrf_ppi_channel_group_t *p_group)
 Function for allocating a PPI channel group. More...
 
nrfx_err_t nrfx_ppi_group_free (nrf_ppi_channel_group_t group)
 Function for freeing a PPI channel group. More...
 
__STATIC_INLINE uint32_t nrfx_ppi_channel_to_mask (nrf_ppi_channel_t channel)
 Compute a channel mask for NRF_PPI registers. More...
 
nrfx_err_t nrfx_ppi_channels_include_in_group (uint32_t channel_mask, nrf_ppi_channel_group_t group)
 Function for including multiple PPI channels in a channel group. More...
 
__STATIC_INLINE nrfx_err_t nrfx_ppi_channel_include_in_group (nrf_ppi_channel_t channel, nrf_ppi_channel_group_t group)
 Function for including a PPI channel in a channel group. More...
 
nrfx_err_t nrfx_ppi_channels_remove_from_group (uint32_t channel_mask, nrf_ppi_channel_group_t group)
 Function for removing multiple PPI channels from a channel group. More...
 
__STATIC_INLINE nrfx_err_t nrfx_ppi_channel_remove_from_group (nrf_ppi_channel_t channel, nrf_ppi_channel_group_t group)
 Function for removing a single PPI channel from a channel group. More...
 
__STATIC_INLINE nrfx_err_t nrfx_ppi_group_clear (nrf_ppi_channel_group_t group)
 Function for clearing a PPI channel group. More...
 
nrfx_err_t nrfx_ppi_group_enable (nrf_ppi_channel_group_t group)
 Function for enabling a PPI channel group. More...
 
nrfx_err_t nrfx_ppi_group_disable (nrf_ppi_channel_group_t group)
 Function for disabling a PPI channel group. More...
 
__STATIC_INLINE uint32_t nrfx_ppi_task_addr_get (nrf_ppi_task_t task)
 Function for getting the address of a PPI task. More...
 
__STATIC_INLINE uint32_t nrfx_ppi_task_addr_group_enable_get (nrf_ppi_channel_group_t group)
 Function for getting the address of the enable task of a PPI group. More...
 
__STATIC_INLINE uint32_t nrfx_ppi_task_addr_group_disable_get (nrf_ppi_channel_group_t group)
 Function for getting the address of the enable task of a PPI group. More...
 

Detailed Description

Programmable Peripheral Interconnect (PPI) allocator.

Function Documentation

nrfx_err_t nrfx_ppi_channel_alloc ( nrf_ppi_channel_t p_channel)

Function for allocating a PPI channel.

This function allocates the first unused PPI channel.

Parameters
[out]p_channelPointer to the PPI channel that has been allocated.
Return values
NRFX_SUCCESSThe channel was successfully allocated.
NRFX_ERROR_NO_MEMThere is no available channel to be used.
nrfx_err_t nrfx_ppi_channel_assign ( nrf_ppi_channel_t  channel,
uint32_t  eep,
uint32_t  tep 
)

Function for assigning task and event endpoints to the PPI channel.

Parameters
[in]channelPPI channel to be assigned endpoints.
[in]eepEvent endpoint address.
[in]tepTask endpoint address.
Return values
NRFX_SUCCESSThe channel was successfully assigned.
NRFX_ERROR_INVALID_STATEThe channel is not allocated for the user.
NRFX_ERROR_INVALID_PARAMThe channel is not user-configurable.
nrfx_err_t nrfx_ppi_channel_disable ( nrf_ppi_channel_t  channel)

Function for disabling a PPI channel.

Parameters
[in]channelPPI channel to be disabled.
Return values
NRFX_SUCCESSThe channel was successfully disabled.
NRFX_ERROR_INVALID_STATEThe user-configurable channel is not allocated.
NRFX_ERROR_INVALID_PARAMThe channel cannot be disabled by the user.
nrfx_err_t nrfx_ppi_channel_enable ( nrf_ppi_channel_t  channel)

Function for enabling a PPI channel.

Parameters
[in]channelPPI channel to be enabled.
Return values
NRFX_SUCCESSThe channel was successfully enabled.
NRFX_ERROR_INVALID_STATEThe user-configurable channel is not allocated.
NRFX_ERROR_INVALID_PARAMThe channel cannot be enabled by the user.
nrfx_err_t nrfx_ppi_channel_fork_assign ( nrf_ppi_channel_t  channel,
uint32_t  fork_tep 
)

Function for assigning fork endpoint to the PPI channel or clearing it.

Parameters
[in]channelPPI channel to be assigned endpoints.
[in]fork_tepFork task endpoint address or 0 to clear.
Return values
NRFX_SUCCESSThe channel was successfully assigned.
NRFX_ERROR_INVALID_STATEThe channel is not allocated for the user.
NRFX_ERROR_NOT_SUPPORTEDFunction is not supported.
nrfx_err_t nrfx_ppi_channel_free ( nrf_ppi_channel_t  channel)

Function for freeing a PPI channel.

This function also disables the chosen channel.

Parameters
[in]channelPPI channel to be freed.
Return values
NRFX_SUCCESSThe channel was successfully freed.
NRFX_ERROR_INVALID_PARAMThe channel is not user-configurable.
__STATIC_INLINE nrfx_err_t nrfx_ppi_channel_include_in_group ( nrf_ppi_channel_t  channel,
nrf_ppi_channel_group_t  group 
)

Function for including a PPI channel in a channel group.

Parameters
[in]channelPPI channel to be added.
[in]groupChannel group in which to include the channel.
Return values
NRFX_SUCCESSThe channel was successfully included.
NRFX_ERROR_INVALID_PARAMGroup is not an application group or channel is not an application channel.
NRFX_ERROR_INVALID_STATEGroup is not an allocated group.
__STATIC_INLINE nrfx_err_t nrfx_ppi_channel_remove_from_group ( nrf_ppi_channel_t  channel,
nrf_ppi_channel_group_t  group 
)

Function for removing a single PPI channel from a channel group.

Parameters
[in]channelPPI channel to be removed.
[in]groupChannel group from which to remove the channel.
Return values
NRFX_SUCCESSThe channel was successfully removed.
NRFX_ERROR_INVALID_PARAMGroup is not an application group or channel is not an application channel.
NRFX_ERROR_INVALID_STATEGroup is not an allocated group.
__STATIC_INLINE uint32_t nrfx_ppi_channel_to_mask ( nrf_ppi_channel_t  channel)

Compute a channel mask for NRF_PPI registers.

Parameters
[in]channelChannel number to transform to a mask.
Returns
Channel mask.
nrfx_err_t nrfx_ppi_channels_include_in_group ( uint32_t  channel_mask,
nrf_ppi_channel_group_t  group 
)

Function for including multiple PPI channels in a channel group.

Parameters
[in]channel_maskPPI channels to be added.
[in]groupChannel group in which to include the channels.
Return values
NRFX_SUCCESSThe channels was successfully included.
NRFX_ERROR_INVALID_PARAMGroup is not an application group or channels are not an application channels.
NRFX_ERROR_INVALID_STATEGroup is not an allocated group.
nrfx_err_t nrfx_ppi_channels_remove_from_group ( uint32_t  channel_mask,
nrf_ppi_channel_group_t  group 
)

Function for removing multiple PPI channels from a channel group.

Parameters
[in]channel_maskPPI channels to be removed.
[in]groupChannel group from which to remove the channels.
Return values
NRFX_SUCCESSThe channel was successfully removed.
NRFX_ERROR_INVALID_PARAMGroup is not an application group or channels are not an application channels.
NRFX_ERROR_INVALID_STATEGroup is not an allocated group.
void nrfx_ppi_free_all ( void  )

Function for uninitializing the PPI module.

This function disables all channels and clears the channel groups.

nrfx_err_t nrfx_ppi_group_alloc ( nrf_ppi_channel_group_t p_group)

Function for allocating a PPI channel group.

This function allocates the first unused PPI group.

Parameters
[out]p_groupPointer to the PPI channel group that has been allocated.
Return values
NRFX_SUCCESSThe channel group was successfully allocated.
NRFX_ERROR_NO_MEMThere is no available channel group to be used.
__STATIC_INLINE nrfx_err_t nrfx_ppi_group_clear ( nrf_ppi_channel_group_t  group)

Function for clearing a PPI channel group.

Parameters
[in]groupChannel group to be cleared.
Return values
NRFX_SUCCESSThe group was successfully cleared.
NRFX_ERROR_INVALID_PARAMGroup is not an application group.
NRFX_ERROR_INVALID_STATEGroup is not an allocated group.
nrfx_err_t nrfx_ppi_group_disable ( nrf_ppi_channel_group_t  group)

Function for disabling a PPI channel group.

Parameters
[in]groupChannel group to be disabled.
Return values
NRFX_SUCCESSThe group was successfully disabled.
NRFX_ERROR_INVALID_PARAMGroup is not an application group.
NRFX_ERROR_INVALID_STATEGroup is not an allocated group.
nrfx_err_t nrfx_ppi_group_enable ( nrf_ppi_channel_group_t  group)

Function for enabling a PPI channel group.

Parameters
[in]groupChannel group to be enabled.
Return values
NRFX_SUCCESSThe group was successfully enabled.
NRFX_ERROR_INVALID_PARAMGroup is not an application group.
NRFX_ERROR_INVALID_STATEGroup is not an allocated group.
nrfx_err_t nrfx_ppi_group_free ( nrf_ppi_channel_group_t  group)

Function for freeing a PPI channel group.

This function also disables the chosen group.

Parameters
[in]groupPPI channel group to be freed.
Return values
NRFX_SUCCESSThe channel group was successfully freed.
NRFX_ERROR_INVALID_PARAMThe channel group is not user-configurable.
__STATIC_INLINE uint32_t nrfx_ppi_task_addr_get ( nrf_ppi_task_t  task)

Function for getting the address of a PPI task.

Parameters
[in]taskTask.
Returns
Task address.
__STATIC_INLINE uint32_t nrfx_ppi_task_addr_group_disable_get ( nrf_ppi_channel_group_t  group)

Function for getting the address of the enable task of a PPI group.

Parameters
[in]groupPPI channel group
Returns
Task address.
__STATIC_INLINE uint32_t nrfx_ppi_task_addr_group_enable_get ( nrf_ppi_channel_group_t  group)

Function for getting the address of the enable task of a PPI group.

Parameters
[in]groupPPI channel group
Returns
Task address.

Documentation feedback | Developer Zone | Subscribe | Updated