PPI HAL

nRF5 SDK v12.1.0

Hardware access layer for setting up Programmable Peripheral Interconnect (PPI) channels. More...

Macros

#define NRF_PPI_TASK_SET (1UL)

Enumerations

enum nrf_ppi_channel_t {
NRF_PPI_CHANNEL0 = PPI_CHEN_CH0_Pos,
NRF_PPI_CHANNEL1 = PPI_CHEN_CH1_Pos,
NRF_PPI_CHANNEL2 = PPI_CHEN_CH2_Pos,
NRF_PPI_CHANNEL3 = PPI_CHEN_CH3_Pos,
NRF_PPI_CHANNEL4 = PPI_CHEN_CH4_Pos,
NRF_PPI_CHANNEL5 = PPI_CHEN_CH5_Pos,
NRF_PPI_CHANNEL6 = PPI_CHEN_CH6_Pos,
NRF_PPI_CHANNEL7 = PPI_CHEN_CH7_Pos,
NRF_PPI_CHANNEL8 = PPI_CHEN_CH8_Pos,
NRF_PPI_CHANNEL9 = PPI_CHEN_CH9_Pos,
NRF_PPI_CHANNEL10 = PPI_CHEN_CH10_Pos,
NRF_PPI_CHANNEL11 = PPI_CHEN_CH11_Pos,
NRF_PPI_CHANNEL12 = PPI_CHEN_CH12_Pos,
NRF_PPI_CHANNEL13 = PPI_CHEN_CH13_Pos,
NRF_PPI_CHANNEL14 = PPI_CHEN_CH14_Pos,
NRF_PPI_CHANNEL15 = PPI_CHEN_CH15_Pos,
NRF_PPI_CHANNEL16 = PPI_CHEN_CH16_Pos,
NRF_PPI_CHANNEL17 = PPI_CHEN_CH17_Pos,
NRF_PPI_CHANNEL18 = PPI_CHEN_CH18_Pos,
NRF_PPI_CHANNEL19 = PPI_CHEN_CH19_Pos,
NRF_PPI_CHANNEL20 = PPI_CHEN_CH20_Pos,
NRF_PPI_CHANNEL21 = PPI_CHEN_CH21_Pos,
NRF_PPI_CHANNEL22 = PPI_CHEN_CH22_Pos,
NRF_PPI_CHANNEL23 = PPI_CHEN_CH23_Pos,
NRF_PPI_CHANNEL24 = PPI_CHEN_CH24_Pos,
NRF_PPI_CHANNEL25 = PPI_CHEN_CH25_Pos,
NRF_PPI_CHANNEL26 = PPI_CHEN_CH26_Pos,
NRF_PPI_CHANNEL27 = PPI_CHEN_CH27_Pos,
NRF_PPI_CHANNEL28 = PPI_CHEN_CH28_Pos,
NRF_PPI_CHANNEL29 = PPI_CHEN_CH29_Pos,
NRF_PPI_CHANNEL30 = PPI_CHEN_CH30_Pos,
NRF_PPI_CHANNEL31 = PPI_CHEN_CH31_Pos
}
PPI channels. More...
enum nrf_ppi_channel_group_t {
NRF_PPI_CHANNEL_GROUP0 = 0,
NRF_PPI_CHANNEL_GROUP1 = 1,
NRF_PPI_CHANNEL_GROUP2 = 2,
NRF_PPI_CHANNEL_GROUP3 = 3,
NRF_PPI_CHANNEL_GROUP4 = 4,
NRF_PPI_CHANNEL_GROUP5 = 5
}
PPI channel groups. More...
enum nrf_ppi_channel_include_t {
NRF_PPI_CHANNEL_EXCLUDE = PPI_CHG_CH0_Excluded,
NRF_PPI_CHANNEL_INCLUDE = PPI_CHG_CH0_Included
}
Definition of which PPI channels belong to a group. More...
enum nrf_ppi_channel_enable_t {
NRF_PPI_CHANNEL_DISABLED = PPI_CHEN_CH0_Disabled,
NRF_PPI_CHANNEL_ENABLED = PPI_CHEN_CH0_Enabled
}
Definition if a PPI channel is enabled. More...
enum nrf_ppi_task_t {
NRF_PPI_TASK_CHG0_EN = offsetof(NRF_PPI_Type, TASKS_CHG[0].EN),
NRF_PPI_TASK_CHG0_DIS = offsetof(NRF_PPI_Type, TASKS_CHG[0].DIS),
NRF_PPI_TASK_CHG1_EN = offsetof(NRF_PPI_Type, TASKS_CHG[1].EN),
NRF_PPI_TASK_CHG1_DIS = offsetof(NRF_PPI_Type, TASKS_CHG[1].DIS),
NRF_PPI_TASK_CHG2_EN = offsetof(NRF_PPI_Type, TASKS_CHG[2].EN),
NRF_PPI_TASK_CHG2_DIS = offsetof(NRF_PPI_Type, TASKS_CHG[2].DIS),
NRF_PPI_TASK_CHG3_EN = offsetof(NRF_PPI_Type, TASKS_CHG[3].EN),
NRF_PPI_TASK_CHG3_DIS = offsetof(NRF_PPI_Type, TASKS_CHG[3].DIS),
NRF_PPI_TASK_CHG4_EN = offsetof(NRF_PPI_Type, TASKS_CHG[4].EN),
NRF_PPI_TASK_CHG4_DIS = offsetof(NRF_PPI_Type, TASKS_CHG[4].DIS),
NRF_PPI_TASK_CHG5_EN = offsetof(NRF_PPI_Type, TASKS_CHG[5].EN),
NRF_PPI_TASK_CHG5_DIS = offsetof(NRF_PPI_Type, TASKS_CHG[5].DIS)
}
PPI tasks. More...

Functions

__STATIC_INLINE void nrf_ppi_channel_enable ( nrf_ppi_channel_t channel)
Function for enabling a given PPI channel. More...
__STATIC_INLINE void nrf_ppi_channel_disable ( nrf_ppi_channel_t channel)
Function for disabling a given PPI channel. More...
__STATIC_INLINE
nrf_ppi_channel_enable_t
nrf_ppi_channel_enable_get ( nrf_ppi_channel_t channel)
Function for checking if a given PPI channel is enabled. More...
__STATIC_INLINE void nrf_ppi_channel_disable_all (void)
Function for disabling all PPI channels.
__STATIC_INLINE void nrf_ppi_channels_disable (uint32_t mask)
Function for disabling multiple PPI channels. More...
__STATIC_INLINE void nrf_ppi_channel_endpoint_setup ( nrf_ppi_channel_t channel, uint32_t eep, uint32_t tep)
Function for setting up event and task endpoints for a given PPI channel. More...
__STATIC_INLINE void nrf_ppi_fork_endpoint_setup ( nrf_ppi_channel_t channel, uint32_t fork_tep)
Function for setting up task endpoint for a given PPI fork. More...
__STATIC_INLINE void nrf_ppi_channel_and_fork_endpoint_setup ( nrf_ppi_channel_t channel, uint32_t eep, uint32_t tep, uint32_t fork_tep)
Function for setting up event and task endpoints for a given PPI channel and fork. More...
__STATIC_INLINE void nrf_ppi_channel_include_in_group ( nrf_ppi_channel_t channel, nrf_ppi_channel_group_t channel_group)
Function for including a PPI channel in a channel group. More...
__STATIC_INLINE void nrf_ppi_channels_include_in_group (uint32_t channel_mask, nrf_ppi_channel_group_t channel_group)
Function for including multiple PPI channels in a channel group. More...
__STATIC_INLINE void nrf_ppi_channel_remove_from_group ( nrf_ppi_channel_t channel, nrf_ppi_channel_group_t channel_group)
Function for removing a PPI channel from a channel group. More...
__STATIC_INLINE void nrf_ppi_channels_remove_from_group (uint32_t channel_mask, nrf_ppi_channel_group_t channel_group)
Function for removing multiple PPI channels from a channel group. More...
__STATIC_INLINE void nrf_ppi_channel_group_clear ( nrf_ppi_channel_group_t group)
Function for removing all PPI channels from a channel group. More...
__STATIC_INLINE void nrf_ppi_group_enable ( nrf_ppi_channel_group_t group)
Function for enabling a channel group. More...
__STATIC_INLINE void nrf_ppi_group_disable ( nrf_ppi_channel_group_t group)
Function for disabling a channel group. More...
__STATIC_INLINE void nrf_ppi_task_trigger ( nrf_ppi_task_t ppi_task)
Function for setting a PPI task. More...
__STATIC_INLINE uint32_t * nrf_ppi_task_address_get ( nrf_ppi_task_t ppi_task)
Function for returning the address of a specific PPI task register. More...
__STATIC_INLINE uint32_t * nrf_ppi_task_group_enable_address_get ( nrf_ppi_channel_group_t group)
Function for returning the PPI enable task address of a specific group. More...
__STATIC_INLINE uint32_t * nrf_ppi_task_group_disable_address_get ( nrf_ppi_channel_group_t group)
Function for returning the PPI disable task address of a specific group. More...

Detailed Description

Hardware access layer for setting up Programmable Peripheral Interconnect (PPI) channels.

Enumeration Type Documentation

Definition if a PPI channel is enabled.

Enumerator
NRF_PPI_CHANNEL_DISABLED

Channel disabled.

NRF_PPI_CHANNEL_ENABLED

Channel enabled.

PPI channel groups.

Enumerator
NRF_PPI_CHANNEL_GROUP0

Channel group 0.

NRF_PPI_CHANNEL_GROUP1

Channel group 1.

NRF_PPI_CHANNEL_GROUP2

Channel group 2.

NRF_PPI_CHANNEL_GROUP3

Channel group 3.

NRF_PPI_CHANNEL_GROUP4

Channel group 4.

NRF_PPI_CHANNEL_GROUP5

Channel group 5.

Definition of which PPI channels belong to a group.

Enumerator
NRF_PPI_CHANNEL_EXCLUDE

Channel excluded from a group.

NRF_PPI_CHANNEL_INCLUDE

Channel included in a group.

PPI channels.

Enumerator
NRF_PPI_CHANNEL0

Channel 0.

NRF_PPI_CHANNEL1

Channel 1.

NRF_PPI_CHANNEL2

Channel 2.

NRF_PPI_CHANNEL3

Channel 3.

NRF_PPI_CHANNEL4

Channel 4.

NRF_PPI_CHANNEL5

Channel 5.

NRF_PPI_CHANNEL6

Channel 6.

NRF_PPI_CHANNEL7

Channel 7.

NRF_PPI_CHANNEL8

Channel 8.

NRF_PPI_CHANNEL9

Channel 9.

NRF_PPI_CHANNEL10

Channel 10.

NRF_PPI_CHANNEL11

Channel 11.

NRF_PPI_CHANNEL12

Channel 12.

NRF_PPI_CHANNEL13

Channel 13.

NRF_PPI_CHANNEL14

Channel 14.

NRF_PPI_CHANNEL15

Channel 15.

NRF_PPI_CHANNEL16

Channel 16.

NRF_PPI_CHANNEL17

Channel 17.

NRF_PPI_CHANNEL18

Channel 18.

NRF_PPI_CHANNEL19

Channel 19.

NRF_PPI_CHANNEL20

Channel 20.

NRF_PPI_CHANNEL21

Channel 21.

NRF_PPI_CHANNEL22

Channel 22.

NRF_PPI_CHANNEL23

Channel 23.

NRF_PPI_CHANNEL24

Channel 24.

NRF_PPI_CHANNEL25

Channel 25.

NRF_PPI_CHANNEL26

Channel 26.

NRF_PPI_CHANNEL27

Channel 27.

NRF_PPI_CHANNEL28

Channel 28.

NRF_PPI_CHANNEL29

Channel 29.

NRF_PPI_CHANNEL30

Channel 30.

NRF_PPI_CHANNEL31

Channel 31.

PPI tasks.

Enumerator
NRF_PPI_TASK_CHG0_EN

Task for enabling channel group 0

NRF_PPI_TASK_CHG0_DIS

Task for disabling channel group 0

NRF_PPI_TASK_CHG1_EN

Task for enabling channel group 1

NRF_PPI_TASK_CHG1_DIS

Task for disabling channel group 1

NRF_PPI_TASK_CHG2_EN

Task for enabling channel group 2

NRF_PPI_TASK_CHG2_DIS

Task for disabling channel group 2

NRF_PPI_TASK_CHG3_EN

Task for enabling channel group 3

NRF_PPI_TASK_CHG3_DIS

Task for disabling channel group 3

NRF_PPI_TASK_CHG4_EN

Task for enabling channel group 4

NRF_PPI_TASK_CHG4_DIS

Task for disabling channel group 4

NRF_PPI_TASK_CHG5_EN

Task for enabling channel group 5

NRF_PPI_TASK_CHG5_DIS

Task for disabling channel group 5

Function Documentation

__STATIC_INLINE void nrf_ppi_channel_and_fork_endpoint_setup ( nrf_ppi_channel_t channel ,
uint32_t eep ,
uint32_t tep ,
uint32_t fork_tep
)

Function for setting up event and task endpoints for a given PPI channel and fork.

Parameters
[in] eep Event register address.
[in] tep Task register address.
[in] fork_tep Fork task register address (register value).
[in] channel Channel to which the given endpoints are assigned.
__STATIC_INLINE void nrf_ppi_channel_disable ( nrf_ppi_channel_t channel )

Function for disabling a given PPI channel.

This function disables only one channel.

Parameters
[in] channel Channel to disable.
__STATIC_INLINE void nrf_ppi_channel_enable ( nrf_ppi_channel_t channel )

Function for enabling a given PPI channel.

This function enables only one channel.

Parameters
[in] channel Channel to enable.
__STATIC_INLINE nrf_ppi_channel_enable_t nrf_ppi_channel_enable_get ( nrf_ppi_channel_t channel )

Function for checking if a given PPI channel is enabled.

This function checks only one channel.

Parameters
[in] channel Channel to check.
Return values
NRF_PPI_CHANNEL_ENABLED If the channel is enabled.
NRF_PPI_CHANNEL_DISABLED If the channel is not enabled.
__STATIC_INLINE void nrf_ppi_channel_endpoint_setup ( nrf_ppi_channel_t channel ,
uint32_t eep ,
uint32_t tep
)

Function for setting up event and task endpoints for a given PPI channel.

Parameters
[in] eep Event register address.
[in] tep Task register address.
[in] channel Channel to which the given endpoints are assigned.
__STATIC_INLINE void nrf_ppi_channel_group_clear ( nrf_ppi_channel_group_t group )

Function for removing all PPI channels from a channel group.

Parameters
[in] group Channel group.
__STATIC_INLINE void nrf_ppi_channel_include_in_group ( nrf_ppi_channel_t channel ,
nrf_ppi_channel_group_t channel_group
)

Function for including a PPI channel in a channel group.

This function adds only one channel to the group.

Parameters
[in] channel Channel to be included in the group.
[in] channel_group Channel group.
__STATIC_INLINE void nrf_ppi_channel_remove_from_group ( nrf_ppi_channel_t channel ,
nrf_ppi_channel_group_t channel_group
)

Function for removing a PPI channel from a channel group.

This function removes only one channel from the group.

Parameters
[in] channel Channel to be removed from the group.
[in] channel_group Channel group.
__STATIC_INLINE void nrf_ppi_channels_disable ( uint32_t mask )

Function for disabling multiple PPI channels.

Parameters
[in] mask Channel mask.
__STATIC_INLINE void nrf_ppi_channels_include_in_group ( uint32_t channel_mask ,
nrf_ppi_channel_group_t channel_group
)

Function for including multiple PPI channels in a channel group.

This function adds all specified channels to the group.

Parameters
[in] channel_mask Channels to be included in the group.
[in] channel_group Channel group.
__STATIC_INLINE void nrf_ppi_channels_remove_from_group ( uint32_t channel_mask ,
nrf_ppi_channel_group_t channel_group
)

Function for removing multiple PPI channels from a channel group.

This function removes all specified channels from the group.

Parameters
[in] channel_mask Channels to be removed from the group.
[in] channel_group Channel group.
__STATIC_INLINE void nrf_ppi_fork_endpoint_setup ( nrf_ppi_channel_t channel ,
uint32_t fork_tep
)

Function for setting up task endpoint for a given PPI fork.

Parameters
[in] fork_tep Task register address.
[in] channel Channel to which the given fork endpoint is assigned.
__STATIC_INLINE void nrf_ppi_group_disable ( nrf_ppi_channel_group_t group )

Function for disabling a channel group.

Parameters
[in] group Channel group.
__STATIC_INLINE void nrf_ppi_group_enable ( nrf_ppi_channel_group_t group )

Function for enabling a channel group.

Parameters
[in] group Channel group.
__STATIC_INLINE uint32_t* nrf_ppi_task_address_get ( nrf_ppi_task_t ppi_task )

Function for returning the address of a specific PPI task register.

Parameters
[in] ppi_task PPI task.
__STATIC_INLINE uint32_t* nrf_ppi_task_group_disable_address_get ( nrf_ppi_channel_group_t group )

Function for returning the PPI disable task address of a specific group.

Parameters
[in] group PPI group.
__STATIC_INLINE uint32_t* nrf_ppi_task_group_enable_address_get ( nrf_ppi_channel_group_t group )

Function for returning the PPI enable task address of a specific group.

Parameters
[in] group PPI group.
__STATIC_INLINE void nrf_ppi_task_trigger ( nrf_ppi_task_t ppi_task )

Function for setting a PPI task.

Parameters
[in] ppi_task PPI task to set.