Programmable Peripheral Interconnect (PPI) driver. More...
Macros |
|
| #define | NRF_PPI_ALL_APP_CHANNELS_MASK ((uint32_t)0xFFF0FFFFuL & ~(NRF_PPI_CHANNELS_USED)) |
| #define | NRF_PPI_PROG_APP_CHANNELS_MASK ((uint32_t)0x0000FFFFuL & ~(NRF_PPI_CHANNELS_USED)) |
| #define | NRF_PPI_ALL_APP_GROUPS_MASK (((1uL << PPI_GROUP_NUM) - 1) & ~(NRF_PPI_GROUPS_USED)) |
Functions |
|
| uint32_t | nrf_drv_ppi_init (void) |
|
Function for initializing PPI module.
More...
|
|
| uint32_t | nrf_drv_ppi_uninit (void) |
|
Function for uninitializing the PPI module.
More...
|
|
| uint32_t | nrf_drv_ppi_channel_alloc ( nrf_ppi_channel_t *p_channel) |
|
Function for allocating a PPI channel.
More...
|
|
| uint32_t | nrf_drv_ppi_channel_free ( nrf_ppi_channel_t channel) |
|
Function for freeing a PPI channel.
More...
|
|
| uint32_t | nrf_drv_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...
|
|
| uint32_t | nrf_drv_ppi_channel_fork_assign ( nrf_ppi_channel_t channel, uint32_t fork_tep) |
|
Function for assigning or clearing fork endpoint to the PPI channel.
More...
|
|
| uint32_t | nrf_drv_ppi_channel_enable ( nrf_ppi_channel_t channel) |
|
Function for enabling a PPI channel.
More...
|
|
| uint32_t | nrf_drv_ppi_channel_disable ( nrf_ppi_channel_t channel) |
|
Function for disabling a PPI channel.
More...
|
|
| uint32_t | nrf_drv_ppi_group_alloc ( nrf_ppi_channel_group_t *p_group) |
|
Function for allocating a PPI channel group.
More...
|
|
| uint32_t | nrf_drv_ppi_group_free ( nrf_ppi_channel_group_t group) |
|
Function for freeing a PPI channel group.
More...
|
|
| __STATIC_INLINE uint32_t | nrf_drv_ppi_channel_to_mask ( nrf_ppi_channel_t channel) |
|
Compute a channel mask for NRF_PPI registers.
More...
|
|
| uint32_t | nrf_drv_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 uint32_t | nrf_drv_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...
|
|
| uint32_t | nrf_drv_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 uint32_t | nrf_drv_ppi_channel_remove_from_group ( nrf_ppi_channel_t channel, nrf_ppi_channel_group_t group) |
|
Function for removing a PPI channel from a channel group.
More...
|
|
| __STATIC_INLINE uint32_t | nrf_drv_ppi_group_clear ( nrf_ppi_channel_group_t group) |
|
Function for clearing a PPI channel group.
More...
|
|
| uint32_t | nrf_drv_ppi_group_enable ( nrf_ppi_channel_group_t group) |
|
Function for enabling a PPI channel group.
More...
|
|
| uint32_t | nrf_drv_ppi_group_disable ( nrf_ppi_channel_group_t group) |
|
Function for disabling a PPI channel group.
More...
|
|
| __STATIC_INLINE uint32_t | nrf_drv_ppi_task_addr_get ( nrf_ppi_task_t task) |
|
Function for getting the address of a PPI task.
More...
|
|
| __STATIC_INLINE uint32_t | nrf_drv_ppi_task_addr_group_enable_get ( nrf_ppi_channel_group_t group) |
|
Function for getting the address of a PPI group enable task.
More...
|
|
| __STATIC_INLINE uint32_t | nrf_drv_ppi_task_addr_group_disable_get ( nrf_ppi_channel_group_t group) |
|
Function for getting the address of a PPI group enable task.
More...
|
|
Detailed Description
Programmable Peripheral Interconnect (PPI) driver.
Macro Definition Documentation
| #define NRF_PPI_ALL_APP_CHANNELS_MASK ((uint32_t)0xFFF0FFFFuL & ~(NRF_PPI_CHANNELS_USED)) |
All PPI channels available to the application.
| #define NRF_PPI_ALL_APP_GROUPS_MASK (((1uL << PPI_GROUP_NUM) - 1) & ~(NRF_PPI_GROUPS_USED)) |
All PPI groups available to the application.
| #define NRF_PPI_PROG_APP_CHANNELS_MASK ((uint32_t)0x0000FFFFuL & ~(NRF_PPI_CHANNELS_USED)) |
Programmable PPI channels available to the application.
Function Documentation
| uint32_t nrf_drv_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_channel Pointer to the PPI channel that has been allocated.
- Return values
-
NRF_SUCCESS If the channel was successfully allocated. NRF_ERROR_NO_MEM If there is no available channel to be used.
| uint32_t nrf_drv_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] channel PPI channel to be assigned endpoints. [in] eep Event endpoint address. [in] tep Task endpoint address.
- Return values
-
NRF_SUCCESS If the channel was successfully assigned. NRF_ERROR_INVALID_STATE If the channel is not allocated for the user. NRF_ERROR_INVALID_PARAM If the channel is not user-configurable.
| uint32_t nrf_drv_ppi_channel_disable | ( | nrf_ppi_channel_t | channel | ) |
Function for disabling a PPI channel.
- Parameters
-
[in] channel PPI channel to be disabled.
- Return values
-
NRF_SUCCESS If the channel was successfully disabled. NRF_ERROR_INVALID_STATE If the user-configurable channel is not allocated. NRF_ERROR_INVALID_PARAM If the channel cannot be disabled by the user.
| uint32_t nrf_drv_ppi_channel_enable | ( | nrf_ppi_channel_t | channel | ) |
Function for enabling a PPI channel.
- Parameters
-
[in] channel PPI channel to be enabled.
- Return values
-
NRF_SUCCESS If the channel was successfully enabled. NRF_ERROR_INVALID_STATE If the user-configurable channel is not allocated. NRF_ERROR_INVALID_PARAM If the channel cannot be enabled by the user.
| uint32_t nrf_drv_ppi_channel_fork_assign | ( | nrf_ppi_channel_t | channel , |
| uint32_t | fork_tep | ||
| ) |
Function for assigning or clearing fork endpoint to the PPI channel.
- Parameters
-
[in] channel PPI channel to be assigned endpoints. [in] fork_tep Fork task endpoint address or 0 to clear.
- Return values
-
NRF_SUCCESS If the channel was successfully assigned. NRF_ERROR_INVALID_STATE If the channel is not allocated for the user. NRF_ERROR_INVALID_PARAM If the channel is not user-configurable. NRF_ERROR_NOT_SUPPORTED If function is not supported.
| uint32_t nrf_drv_ppi_channel_free | ( | nrf_ppi_channel_t | channel | ) |
Function for freeing a PPI channel.
This function also disables the chosen channel.
- Parameters
-
[in] channel PPI channel to be freed.
- Return values
-
NRF_SUCCESS If the channel was successfully freed. NRF_ERROR_INVALID_PARAM If the channel is not user-configurable.
| __STATIC_INLINE uint32_t nrf_drv_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] channel PPI channel to be added. [in] group Channel group in which to include the channel.
- Return values
-
NRF_SUCCESS If the channel was successfully included.
| __STATIC_INLINE uint32_t nrf_drv_ppi_channel_remove_from_group | ( | nrf_ppi_channel_t | channel , |
| nrf_ppi_channel_group_t | group | ||
| ) |
Function for removing a PPI channel from a channel group.
- Parameters
-
[in] channel PPI channel to be removed. [in] group Channel group from which to remove the channel.
- Return values
-
NRF_SUCCESS If the channel was successfully removed.
| __STATIC_INLINE uint32_t nrf_drv_ppi_channel_to_mask | ( | nrf_ppi_channel_t | channel | ) |
Compute a channel mask for NRF_PPI registers.
- Parameters
-
[in] channel Channel number to transform to a mask.
- Return values
-
Channel mask.
| uint32_t nrf_drv_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_mask PPI channels to be added. [in] group Channel group in which to include the channels.
- Return values
-
NRF_SUCCESS If the channels was successfully included.
| uint32_t nrf_drv_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_mask PPI channels to be removed. [in] group Channel group from which to remove the channels.
- Return values
-
NRF_SUCCESS If the channel was successfully removed.
| uint32_t nrf_drv_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_group Pointer to the PPI channel group that has been allocated.
- Return values
-
NRF_SUCCESS If the channel group was successfully allocated. NRF_ERROR_NO_MEM If there is no available channel group to be used.
| __STATIC_INLINE uint32_t nrf_drv_ppi_group_clear | ( | nrf_ppi_channel_group_t | group | ) |
Function for clearing a PPI channel group.
- Parameters
-
[in] group Channel group to be cleared.
- Return values
-
NRF_SUCCESS If the group was successfully cleared.
< All PPI channels available to the application.
| uint32_t nrf_drv_ppi_group_disable | ( | nrf_ppi_channel_group_t | group | ) |
Function for disabling a PPI channel group.
- Parameters
-
[in] group Channel group to be disabled.
- Return values
-
NRF_SUCCESS If the group was successfully disabled.
| uint32_t nrf_drv_ppi_group_enable | ( | nrf_ppi_channel_group_t | group | ) |
Function for enabling a PPI channel group.
- Parameters
-
[in] group Channel group to be enabled.
- Return values
-
NRF_SUCCESS If the group was successfully enabled.
| uint32_t nrf_drv_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] group PPI channel group to be freed.
- Return values
-
NRF_SUCCESS If the channel group was successfully freed. NRF_ERROR_INVALID_PARAM If the channel group is not user-configurable.
| uint32_t nrf_drv_ppi_init | ( | void | ) |
Function for initializing PPI module.
- Return values
-
NRF_SUCCESS If the module was successfully initialized. MODULE_ALREADY_INITIALIZED If the module has already been initialized.
| __STATIC_INLINE uint32_t nrf_drv_ppi_task_addr_get | ( | nrf_ppi_task_t | task | ) |
Function for getting the address of a PPI task.
- Parameters
-
[in] task Task.
- Return values
-
Task address.
| __STATIC_INLINE uint32_t nrf_drv_ppi_task_addr_group_disable_get | ( | nrf_ppi_channel_group_t | group | ) |
Function for getting the address of a PPI group enable task.
- Parameters
-
[in] group PPI channel group
- Return values
-
Task address.
| __STATIC_INLINE uint32_t nrf_drv_ppi_task_addr_group_enable_get | ( | nrf_ppi_channel_group_t | group | ) |
Function for getting the address of a PPI group enable task.
- Parameters
-
[in] group PPI channel group
- Return values
-
Task address.
| uint32_t nrf_drv_ppi_uninit | ( | void | ) |
Function for uninitializing the PPI module.
This function also disables all channels and clears the channel groups.
- Return values
-
NRF_SUCCESS If the module was successfully uninitialized. NRF_ERROR_INVALID_STATE If the module has not been initialized yet. NRF_ERROR_INTERNAL If the channels or groups could not be disabled.