DPPI HAL

group nrf_dppi_hal

Hardware access layer for managing the Distributed Programmable Peripheral Interconnect Controller (DPPIC).

Defines

NRF_DPPI_ENDPOINT_SETUP(task_or_event, dppi_chan)

Macro for setting publish/subscribe register corresponding to specified event/task.

Parameters:
  • task_or_event[in] Address of the event or task for which publish/subscribe register is to be set.

  • dppi_chan[in] DPPIC channel number.

NRF_DPPI_ENDPOINT_CLEAR(task_or_event)

Macro for clearing publish/subscribe register corresponding to specified event/task.

Parameters:
  • task_or_event[in] Address of the event or task for which publish/subscribe register is to be cleared.

Enums

enum nrf_dppi_channel_group_t

DPPI channel groups.

Values:

enumerator NRF_DPPI_CHANNEL_GROUP0

Channel group 0.

enumerator NRF_DPPI_CHANNEL_GROUP1

Channel group 1.

enumerator NRF_DPPI_CHANNEL_GROUP2

Channel group 2.

enumerator NRF_DPPI_CHANNEL_GROUP3

Channel group 3.

enumerator NRF_DPPI_CHANNEL_GROUP4

Channel group 4.

enumerator NRF_DPPI_CHANNEL_GROUP5

Channel group 5.

enum nrf_dppi_task_t

DPPI tasks.

Values:

enumerator NRF_DPPI_TASK_CHG0_EN

Enable channel group 0.

enumerator NRF_DPPI_TASK_CHG0_DIS

Disable channel group 0.

enumerator NRF_DPPI_TASK_CHG1_EN

Enable channel group 1.

enumerator NRF_DPPI_TASK_CHG1_DIS

Disable channel group 1.

enumerator NRF_DPPI_TASK_CHG2_EN

Enable channel group 2.

enumerator NRF_DPPI_TASK_CHG2_DIS

Disable channel group 2.

enumerator NRF_DPPI_TASK_CHG3_EN

Enable channel group 3.

enumerator NRF_DPPI_TASK_CHG3_DIS

Disable channel group 3.

enumerator NRF_DPPI_TASK_CHG4_EN

Enable channel group 4.

enumerator NRF_DPPI_TASK_CHG4_DIS

Disable channel group 4.

enumerator NRF_DPPI_TASK_CHG5_EN

Enable channel group 5.

enumerator NRF_DPPI_TASK_CHG5_DIS

Disable channel group 5.

Functions

NRF_STATIC_INLINE uint8_t nrf_dppi_channel_number_get(NRF_DPPIC_Type const *p_reg)

Function for getting the total number of available channels for the given DPPIC instance.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Number of available channels.

NRF_STATIC_INLINE uint8_t nrf_dppi_group_number_get(NRF_DPPIC_Type const *p_reg)

Function for getting the total number of available groups for the given DPPIC instance.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Number of available groups.

NRF_STATIC_INLINE void nrf_dppi_task_trigger(NRF_DPPIC_Type *p_reg, nrf_dppi_task_t dppi_task)

Function for activating a DPPI task.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • dppi_task[in] Task to be activated.

NRF_STATIC_INLINE uint32_t nrf_dppi_task_address_get(NRF_DPPIC_Type const *p_reg, nrf_dppi_task_t task)

Function for getting the address of the specified DPPI task register.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • task[in] Requested task.

Returns:

Address of the specified task register.

NRF_STATIC_INLINE bool nrf_dppi_channel_check(NRF_DPPIC_Type const *p_reg, uint8_t channel)

Function for checking the state of a specific DPPI channel.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • channel[in] Channel to be checked.

Return values:
  • true – The channel is enabled.

  • false – The channel is not enabled.

NRF_STATIC_INLINE void nrf_dppi_channels_enable(NRF_DPPIC_Type *p_reg, uint32_t mask)

Function for enabling multiple DPPI channels.

The bits in mask value correspond to particular channels. It means that writing 1 to bit 0 enables channel 0, writing 1 to bit 1 enables channel 1 etc.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • mask[in] Channel mask.

NRF_STATIC_INLINE void nrf_dppi_channels_disable(NRF_DPPIC_Type *p_reg, uint32_t mask)

Function for disabling multiple DPPI channels.

The bits in mask value correspond to particular channels. It means that writing 1 to bit 0 disables channel 0, writing 1 to bit 1 disables channel 1 etc.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • mask[in] Channel mask.

NRF_STATIC_INLINE void nrf_dppi_channels_disable_all(NRF_DPPIC_Type *p_reg)

Function for disabling all DPPI channels.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

NRF_STATIC_INLINE void nrf_dppi_subscribe_set(NRF_DPPIC_Type *p_reg, nrf_dppi_task_t task, uint8_t channel)

Function for setting the subscribe configuration for a given DPPI task.

Warning

After setting the subscription for a given task, channel group configuration associated with this task cannot be modified until nrf_dppi_subscribe_clear is used.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • task[in] Task for which to set the configuration.

  • channel[in] Channel through which to subscribe events.

NRF_STATIC_INLINE void nrf_dppi_subscribe_clear(NRF_DPPIC_Type *p_reg, nrf_dppi_task_t task)

Function for clearing the subscribe configuration for a given DPPI task.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • task[in] Task for which to clear the configuration.

NRF_STATIC_INLINE void nrf_dppi_channels_group_set(NRF_DPPIC_Type *p_reg, uint32_t channel_mask, nrf_dppi_channel_group_t channel_group)

Function for setting multiple DPPI channels in a channel group.

This function assigns all specified channels to the group. The bits in channel_mask value correspond to particular channels. It means that writing 1 to bit 0 includes channel 0, writing 1 to bit 1 includes channel 1, and so on.

Warning

All channels included previously will be overwritten.

Warning

Channel group configuration can be modified only if subscriptions for tasks associated with this group are disabled.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • channel_mask[in] Channels to be assigned in the group.

  • channel_group[in] Channel group.

NRF_STATIC_INLINE void nrf_dppi_channels_include_in_group(NRF_DPPIC_Type *p_reg, uint32_t channel_mask, nrf_dppi_channel_group_t channel_group)

Function for including multiple DPPI channels in a channel group.

This function adds all specified channels to the group. The bits in channel_mask value correspond to particular channels. It means that writing 1 to bit 0 includes channel 0, writing 1 to bit 1 includes channel 1 etc.

Warning

Channel group configuration can be modified only if subscriptions for tasks associated with this group are disabled.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • channel_mask[in] Channels to be included in the group.

  • channel_group[in] Channel group.

NRF_STATIC_INLINE void nrf_dppi_channels_remove_from_group(NRF_DPPIC_Type *p_reg, uint32_t channel_mask, nrf_dppi_channel_group_t channel_group)

Function for removing multiple DPPI channels from a channel group.

This function removes all specified channels from the group. The bits in channel_mask value correspond to particular channels. It means that writing 1 to bit 0 removes channel 0, writing 1 to bit 1 removes channel 1 etc.

Warning

Channel group configuration can be modified only if subscriptions for tasks associated with this group are disabled.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • channel_mask[in] Channels to be removed from the group.

  • channel_group[in] Channel group.

NRF_STATIC_INLINE void nrf_dppi_group_clear(NRF_DPPIC_Type *p_reg, nrf_dppi_channel_group_t group)

Function for removing all DPPI channels from a channel group.

Warning

Channel group configuration can be modified only if subscriptions for tasks associated with this group are disabled.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • group[in] Channel group.

NRF_STATIC_INLINE void nrf_dppi_group_enable(NRF_DPPIC_Type *p_reg, nrf_dppi_channel_group_t group)

Function for enabling a channel group.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • group[in] Channel group.

NRF_STATIC_INLINE void nrf_dppi_group_disable(NRF_DPPIC_Type *p_reg, nrf_dppi_channel_group_t group)

Function for disabling a channel group.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • group[in] Channel group.

NRF_STATIC_INLINE nrf_dppi_task_t nrf_dppi_group_enable_task_get(uint8_t index)

Function for getting the ENABLE task associated with the specified channel group.

Parameters:
  • index[in] Channel group index.

Returns:

Requested ENABLE task.

NRF_STATIC_INLINE nrf_dppi_task_t nrf_dppi_group_disable_task_get(uint8_t index)

Function for getting the DISABLE task associated with the specified channel group.

Parameters:
  • index[in] Channel group index.

Returns:

Requested DISABLE task.