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_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.