The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
Parent:
171:3a7713b1edbc
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 143:86740a56073b 1 /*
AnnaBridge 143:86740a56073b 2 * Copyright (c) 2015 Nordic Semiconductor ASA
AnnaBridge 143:86740a56073b 3 * All rights reserved.
AnnaBridge 143:86740a56073b 4 *
AnnaBridge 143:86740a56073b 5 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 143:86740a56073b 6 * are permitted provided that the following conditions are met:
AnnaBridge 143:86740a56073b 7 *
AnnaBridge 143:86740a56073b 8 * 1. Redistributions of source code must retain the above copyright notice, this list
AnnaBridge 143:86740a56073b 9 * of conditions and the following disclaimer.
AnnaBridge 143:86740a56073b 10 *
AnnaBridge 143:86740a56073b 11 * 2. Redistributions in binary form, except as embedded into a Nordic Semiconductor ASA
AnnaBridge 143:86740a56073b 12 * integrated circuit in a product or a software update for such product, must reproduce
AnnaBridge 143:86740a56073b 13 * the above copyright notice, this list of conditions and the following disclaimer in
AnnaBridge 143:86740a56073b 14 * the documentation and/or other materials provided with the distribution.
AnnaBridge 143:86740a56073b 15 *
AnnaBridge 143:86740a56073b 16 * 3. Neither the name of Nordic Semiconductor ASA nor the names of its contributors may be
AnnaBridge 143:86740a56073b 17 * used to endorse or promote products derived from this software without specific prior
AnnaBridge 143:86740a56073b 18 * written permission.
AnnaBridge 143:86740a56073b 19 *
AnnaBridge 143:86740a56073b 20 * 4. This software, with or without modification, must only be used with a
AnnaBridge 143:86740a56073b 21 * Nordic Semiconductor ASA integrated circuit.
AnnaBridge 143:86740a56073b 22 *
AnnaBridge 143:86740a56073b 23 * 5. Any software provided in binary or object form under this license must not be reverse
AnnaBridge 143:86740a56073b 24 * engineered, decompiled, modified and/or disassembled.
AnnaBridge 143:86740a56073b 25 *
AnnaBridge 143:86740a56073b 26 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
AnnaBridge 143:86740a56073b 27 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
AnnaBridge 143:86740a56073b 28 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 143:86740a56073b 29 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
AnnaBridge 143:86740a56073b 30 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
AnnaBridge 143:86740a56073b 31 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
AnnaBridge 143:86740a56073b 32 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
AnnaBridge 143:86740a56073b 33 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
AnnaBridge 143:86740a56073b 34 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
AnnaBridge 143:86740a56073b 35 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 143:86740a56073b 36 *
AnnaBridge 143:86740a56073b 37 */
AnnaBridge 143:86740a56073b 38
AnnaBridge 143:86740a56073b 39
AnnaBridge 143:86740a56073b 40 #ifndef NRF_DRV_PPI_H
AnnaBridge 143:86740a56073b 41 #define NRF_DRV_PPI_H
AnnaBridge 143:86740a56073b 42
AnnaBridge 143:86740a56073b 43 /*lint ++flb "Enter library region" */
AnnaBridge 143:86740a56073b 44 #include "sdk_errors.h"
AnnaBridge 143:86740a56073b 45 #include "nrf_ppi.h"
AnnaBridge 143:86740a56073b 46 #include <stdbool.h>
AnnaBridge 143:86740a56073b 47 #include <stdint.h>
AnnaBridge 143:86740a56073b 48
AnnaBridge 143:86740a56073b 49 /** @file
AnnaBridge 143:86740a56073b 50 *
AnnaBridge 143:86740a56073b 51 * @addtogroup nrf_ppi PPI HAL and driver
AnnaBridge 143:86740a56073b 52 * @ingroup nrf_drivers
AnnaBridge 143:86740a56073b 53 * @brief Programmable Peripheral Interconnect (PPI) APIs.
AnnaBridge 143:86740a56073b 54 *
AnnaBridge 143:86740a56073b 55 * @details The PPI HAL provides basic APIs for accessing the registers of the PPI.
AnnaBridge 143:86740a56073b 56 * The PPI driver provides APIs on a higher level.
AnnaBridge 143:86740a56073b 57 *
AnnaBridge 143:86740a56073b 58 * @defgroup lib_driver_ppi PPI driver
AnnaBridge 143:86740a56073b 59 * @{
AnnaBridge 143:86740a56073b 60 * @ingroup nrf_ppi
AnnaBridge 143:86740a56073b 61 *
AnnaBridge 143:86740a56073b 62 * @brief Programmable Peripheral Interconnect (PPI) driver.
AnnaBridge 143:86740a56073b 63 */
AnnaBridge 143:86740a56073b 64
AnnaBridge 143:86740a56073b 65 #include "sdk_resources.h"
AnnaBridge 143:86740a56073b 66
AnnaBridge 143:86740a56073b 67 #ifdef NRF52
AnnaBridge 143:86740a56073b 68
AnnaBridge 143:86740a56073b 69 #define NRF_PPI_ALL_APP_CHANNELS_MASK ((uint32_t)0xFFFFFFFFuL & ~(NRF_PPI_CHANNELS_USED)) /**< All PPI channels available to the application. */
AnnaBridge 143:86740a56073b 70 #define NRF_PPI_PROG_APP_CHANNELS_MASK ((uint32_t)0x000FFFFFuL & ~(NRF_PPI_CHANNELS_USED)) /**< Programmable PPI channels available to the application. */
AnnaBridge 143:86740a56073b 71 #define NRF_PPI_ALL_APP_GROUPS_MASK ((uint32_t)0x0000003FuL & ~(NRF_PPI_GROUPS_USED)) /**< All PPI groups available to the application. */
AnnaBridge 143:86740a56073b 72
AnnaBridge 143:86740a56073b 73 #else
AnnaBridge 143:86740a56073b 74
AnnaBridge 143:86740a56073b 75 #define NRF_PPI_ALL_APP_CHANNELS_MASK ((uint32_t)0xFFF0FFFFuL & ~(NRF_PPI_CHANNELS_USED)) /**< All PPI channels available to the application. */
AnnaBridge 143:86740a56073b 76 #define NRF_PPI_PROG_APP_CHANNELS_MASK ((uint32_t)0x0000FFFFuL & ~(NRF_PPI_CHANNELS_USED)) /**< Programmable PPI channels available to the application. */
AnnaBridge 143:86740a56073b 77 #define NRF_PPI_ALL_APP_GROUPS_MASK ((uint32_t)0x0000000FuL & ~(NRF_PPI_GROUPS_USED)) /**< All PPI groups available to the application. */
AnnaBridge 143:86740a56073b 78
AnnaBridge 143:86740a56073b 79 #endif
AnnaBridge 143:86740a56073b 80
AnnaBridge 143:86740a56073b 81
AnnaBridge 143:86740a56073b 82 /**@brief Function for initializing PPI module.
AnnaBridge 143:86740a56073b 83 *
AnnaBridge 143:86740a56073b 84 * @retval NRF_SUCCESS If the module was successfully initialized.
AnnaBridge 143:86740a56073b 85 * @retval MODULE_ALREADY_INITIALIZED If the module has already been initialized.
AnnaBridge 143:86740a56073b 86 */
AnnaBridge 143:86740a56073b 87 uint32_t nrf_drv_ppi_init(void);
AnnaBridge 143:86740a56073b 88
AnnaBridge 143:86740a56073b 89 /**@brief Function for uninitializing the PPI module.
AnnaBridge 143:86740a56073b 90 *
AnnaBridge 143:86740a56073b 91 * This function also disables all channels and clears the channel groups.
AnnaBridge 143:86740a56073b 92 *
AnnaBridge 143:86740a56073b 93 * @retval NRF_SUCCESS If the module was successfully uninitialized.
AnnaBridge 143:86740a56073b 94 * @retval NRF_ERROR_INVALID_STATE If the module has not been initialized yet.
AnnaBridge 143:86740a56073b 95 * @retval NRF_ERROR_INTERNAL If the channels or groups could not be disabled.
AnnaBridge 143:86740a56073b 96 */
AnnaBridge 143:86740a56073b 97 uint32_t nrf_drv_ppi_uninit(void);
AnnaBridge 143:86740a56073b 98
AnnaBridge 143:86740a56073b 99 /**@brief Function for allocating a PPI channel.
AnnaBridge 143:86740a56073b 100 * @details This function allocates the first unused PPI channel.
AnnaBridge 143:86740a56073b 101 *
AnnaBridge 143:86740a56073b 102 * @param[out] p_channel Pointer to the PPI channel that has been allocated.
AnnaBridge 143:86740a56073b 103 *
AnnaBridge 143:86740a56073b 104 * @retval NRF_SUCCESS If the channel was successfully allocated.
AnnaBridge 143:86740a56073b 105 * @retval NRF_ERROR_NO_MEM If there is no available channel to be used.
AnnaBridge 143:86740a56073b 106 */
AnnaBridge 143:86740a56073b 107 uint32_t nrf_drv_ppi_channel_alloc(nrf_ppi_channel_t * p_channel);
AnnaBridge 143:86740a56073b 108
AnnaBridge 143:86740a56073b 109 /**@brief Function for freeing a PPI channel.
AnnaBridge 143:86740a56073b 110 * @details This function also disables the chosen channel.
AnnaBridge 143:86740a56073b 111 *
AnnaBridge 143:86740a56073b 112 * @param[in] channel PPI channel to be freed.
AnnaBridge 143:86740a56073b 113 *
AnnaBridge 143:86740a56073b 114 * @retval NRF_SUCCESS If the channel was successfully freed.
AnnaBridge 143:86740a56073b 115 * @retval NRF_ERROR_INVALID_PARAM If the channel is not user-configurable.
AnnaBridge 143:86740a56073b 116 */
AnnaBridge 143:86740a56073b 117 uint32_t nrf_drv_ppi_channel_free(nrf_ppi_channel_t channel);
AnnaBridge 143:86740a56073b 118
AnnaBridge 143:86740a56073b 119 /**@brief Function for assigning task and event endpoints to the PPI channel.
AnnaBridge 143:86740a56073b 120 *
AnnaBridge 143:86740a56073b 121 * @param[in] channel PPI channel to be assigned endpoints.
AnnaBridge 143:86740a56073b 122 *
AnnaBridge 143:86740a56073b 123 * @param[in] eep Event endpoint address.
AnnaBridge 143:86740a56073b 124 *
AnnaBridge 143:86740a56073b 125 * @param[in] tep Task endpoint address.
AnnaBridge 143:86740a56073b 126 *
AnnaBridge 143:86740a56073b 127 * @retval NRF_SUCCESS If the channel was successfully assigned.
AnnaBridge 143:86740a56073b 128 * @retval NRF_ERROR_INVALID_STATE If the channel is not allocated for the user.
AnnaBridge 143:86740a56073b 129 * @retval NRF_ERROR_INVALID_PARAM If the channel is not user-configurable.
AnnaBridge 143:86740a56073b 130 */
AnnaBridge 143:86740a56073b 131 uint32_t nrf_drv_ppi_channel_assign(nrf_ppi_channel_t channel, uint32_t eep, uint32_t tep);
AnnaBridge 143:86740a56073b 132
AnnaBridge 143:86740a56073b 133 /**@brief Function for assigning or clearing fork endpoint to the PPI channel.
AnnaBridge 143:86740a56073b 134 *
AnnaBridge 143:86740a56073b 135 * @param[in] channel PPI channel to be assigned endpoints.
AnnaBridge 143:86740a56073b 136 *
AnnaBridge 143:86740a56073b 137 * @param[in] fork_tep Fork task endpoint address or 0 to clear.
AnnaBridge 143:86740a56073b 138 *
AnnaBridge 143:86740a56073b 139 * @retval NRF_SUCCESS If the channel was successfully assigned.
AnnaBridge 143:86740a56073b 140 * @retval NRF_ERROR_INVALID_STATE If the channel is not allocated for the user.
AnnaBridge 143:86740a56073b 141 * @retval NRF_ERROR_INVALID_PARAM If the channel is not user-configurable.
AnnaBridge 143:86740a56073b 142 * @retval NRF_ERROR_NOT_SUPPORTED If function is not supported.
AnnaBridge 143:86740a56073b 143 */
AnnaBridge 143:86740a56073b 144 uint32_t nrf_drv_ppi_channel_fork_assign(nrf_ppi_channel_t channel, uint32_t fork_tep);
AnnaBridge 143:86740a56073b 145
AnnaBridge 143:86740a56073b 146 /**@brief Function for enabling a PPI channel.
AnnaBridge 143:86740a56073b 147 *
AnnaBridge 143:86740a56073b 148 * @param[in] channel PPI channel to be enabled.
AnnaBridge 143:86740a56073b 149 *
AnnaBridge 143:86740a56073b 150 * @retval NRF_SUCCESS If the channel was successfully enabled.
AnnaBridge 143:86740a56073b 151 * @retval NRF_ERROR_INVALID_STATE If the user-configurable channel is not allocated.
AnnaBridge 143:86740a56073b 152 * @retval NRF_ERROR_INVALID_PARAM If the channel cannot be enabled by the user.
AnnaBridge 143:86740a56073b 153 */
AnnaBridge 143:86740a56073b 154 uint32_t nrf_drv_ppi_channel_enable(nrf_ppi_channel_t channel);
AnnaBridge 143:86740a56073b 155
AnnaBridge 143:86740a56073b 156 /**@brief Function for disabling a PPI channel.
AnnaBridge 143:86740a56073b 157 *
AnnaBridge 143:86740a56073b 158 * @param[in] channel PPI channel to be disabled.
AnnaBridge 143:86740a56073b 159 *
AnnaBridge 143:86740a56073b 160 * @retval NRF_SUCCESS If the channel was successfully disabled.
AnnaBridge 143:86740a56073b 161 * @retval NRF_ERROR_INVALID_STATE If the user-configurable channel is not allocated.
AnnaBridge 143:86740a56073b 162 * @retval NRF_ERROR_INVALID_PARAM If the channel cannot be disabled by the user.
AnnaBridge 143:86740a56073b 163 */
AnnaBridge 143:86740a56073b 164 uint32_t nrf_drv_ppi_channel_disable(nrf_ppi_channel_t channel);
AnnaBridge 143:86740a56073b 165
AnnaBridge 143:86740a56073b 166 /**@brief Function for allocating a PPI channel group.
AnnaBridge 143:86740a56073b 167 * @details This function allocates the first unused PPI group.
AnnaBridge 143:86740a56073b 168 *
AnnaBridge 143:86740a56073b 169 * @param[out] p_group Pointer to the PPI channel group that has been allocated.
AnnaBridge 143:86740a56073b 170 *
AnnaBridge 143:86740a56073b 171 * @retval NRF_SUCCESS If the channel group was successfully allocated.
AnnaBridge 143:86740a56073b 172 * @retval NRF_ERROR_NO_MEM If there is no available channel group to be used.
AnnaBridge 143:86740a56073b 173 */
AnnaBridge 143:86740a56073b 174 uint32_t nrf_drv_ppi_group_alloc(nrf_ppi_channel_group_t * p_group);
AnnaBridge 143:86740a56073b 175
AnnaBridge 143:86740a56073b 176 /**@brief Function for freeing a PPI channel group.
AnnaBridge 143:86740a56073b 177 * @details This function also disables the chosen group.
AnnaBridge 143:86740a56073b 178 *
AnnaBridge 143:86740a56073b 179 * @param[in] group PPI channel group to be freed.
AnnaBridge 143:86740a56073b 180 *
AnnaBridge 143:86740a56073b 181 * @retval NRF_SUCCESS If the channel group was successfully freed.
AnnaBridge 143:86740a56073b 182 * @retval NRF_ERROR_INVALID_PARAM If the channel group is not user-configurable.
AnnaBridge 143:86740a56073b 183 */
AnnaBridge 143:86740a56073b 184 uint32_t nrf_drv_ppi_group_free(nrf_ppi_channel_group_t group);
AnnaBridge 143:86740a56073b 185
AnnaBridge 143:86740a56073b 186 /**@brief Compute a channel mask for NRF_PPI registers.
AnnaBridge 143:86740a56073b 187 *
AnnaBridge 143:86740a56073b 188 * @param[in] channel Channel number to transform to a mask.
AnnaBridge 143:86740a56073b 189 *
AnnaBridge 143:86740a56073b 190 * @retval Channel mask.
AnnaBridge 143:86740a56073b 191 */
AnnaBridge 143:86740a56073b 192 __STATIC_INLINE uint32_t nrf_drv_ppi_channel_to_mask(nrf_ppi_channel_t channel)
AnnaBridge 143:86740a56073b 193 {
AnnaBridge 143:86740a56073b 194 return (1uL << (uint32_t) channel);
AnnaBridge 143:86740a56073b 195 }
AnnaBridge 143:86740a56073b 196
AnnaBridge 143:86740a56073b 197 /**@brief Function for including multiple PPI channels in a channel group.
AnnaBridge 143:86740a56073b 198 *
AnnaBridge 143:86740a56073b 199 * @param[in] channel_mask PPI channels to be added.
AnnaBridge 143:86740a56073b 200 * @param[in] group Channel group in which to include the channels.
AnnaBridge 143:86740a56073b 201 *
AnnaBridge 143:86740a56073b 202 * @retval NRF_SUCCESS If the channels was successfully included.
AnnaBridge 143:86740a56073b 203 */
AnnaBridge 143:86740a56073b 204 uint32_t nrf_drv_ppi_channels_include_in_group(uint32_t channel_mask,
AnnaBridge 143:86740a56073b 205 nrf_ppi_channel_group_t group);
AnnaBridge 143:86740a56073b 206
AnnaBridge 143:86740a56073b 207 /**@brief Function for including a PPI channel in a channel group.
AnnaBridge 143:86740a56073b 208 *
AnnaBridge 143:86740a56073b 209 * @param[in] channel PPI channel to be added.
AnnaBridge 143:86740a56073b 210 * @param[in] group Channel group in which to include the channel.
AnnaBridge 143:86740a56073b 211 *
AnnaBridge 143:86740a56073b 212 * @retval NRF_SUCCESS If the channel was successfully included.
AnnaBridge 143:86740a56073b 213 */
AnnaBridge 143:86740a56073b 214 __STATIC_INLINE uint32_t nrf_drv_ppi_channel_include_in_group(nrf_ppi_channel_t channel,
AnnaBridge 143:86740a56073b 215 nrf_ppi_channel_group_t group)
AnnaBridge 143:86740a56073b 216 {
AnnaBridge 143:86740a56073b 217 return nrf_drv_ppi_channels_include_in_group(nrf_drv_ppi_channel_to_mask(channel), group);
AnnaBridge 143:86740a56073b 218 }
AnnaBridge 143:86740a56073b 219
AnnaBridge 143:86740a56073b 220 /**@brief Function for removing multiple PPI channels from a channel group.
AnnaBridge 143:86740a56073b 221 *
AnnaBridge 143:86740a56073b 222 * @param[in] channel_mask PPI channels to be removed.
AnnaBridge 143:86740a56073b 223 * @param[in] group Channel group from which to remove the channels.
AnnaBridge 143:86740a56073b 224 *
AnnaBridge 143:86740a56073b 225 * @retval NRF_SUCCESS If the channel was successfully removed.
AnnaBridge 143:86740a56073b 226 */
AnnaBridge 143:86740a56073b 227 uint32_t nrf_drv_ppi_channels_remove_from_group(uint32_t channel_mask,
AnnaBridge 143:86740a56073b 228 nrf_ppi_channel_group_t group);
AnnaBridge 143:86740a56073b 229
AnnaBridge 143:86740a56073b 230 /**@brief Function for removing a PPI channel from a channel group.
AnnaBridge 143:86740a56073b 231 *
AnnaBridge 143:86740a56073b 232 * @param[in] channel PPI channel to be removed.
AnnaBridge 143:86740a56073b 233 * @param[in] group Channel group from which to remove the channel.
AnnaBridge 143:86740a56073b 234 *
AnnaBridge 143:86740a56073b 235 * @retval NRF_SUCCESS If the channel was successfully removed.
AnnaBridge 143:86740a56073b 236 */
AnnaBridge 143:86740a56073b 237 __STATIC_INLINE uint32_t nrf_drv_ppi_channel_remove_from_group(nrf_ppi_channel_t channel,
AnnaBridge 143:86740a56073b 238 nrf_ppi_channel_group_t group)
AnnaBridge 143:86740a56073b 239 {
AnnaBridge 143:86740a56073b 240 return nrf_drv_ppi_channels_remove_from_group(nrf_drv_ppi_channel_to_mask(channel), group);
AnnaBridge 143:86740a56073b 241 }
AnnaBridge 143:86740a56073b 242
AnnaBridge 143:86740a56073b 243 /**@brief Function for clearing a PPI channel group.
AnnaBridge 143:86740a56073b 244 *
AnnaBridge 143:86740a56073b 245 * @param[in] group Channel group to be cleared.
AnnaBridge 143:86740a56073b 246 *
AnnaBridge 143:86740a56073b 247 * @retval NRF_SUCCESS If the group was successfully cleared.
AnnaBridge 143:86740a56073b 248 */
AnnaBridge 143:86740a56073b 249 __STATIC_INLINE uint32_t nrf_drv_ppi_group_clear(nrf_ppi_channel_group_t group)
AnnaBridge 143:86740a56073b 250 {
AnnaBridge 143:86740a56073b 251 return nrf_drv_ppi_channels_remove_from_group(NRF_PPI_ALL_APP_CHANNELS_MASK, group);
AnnaBridge 143:86740a56073b 252 }
AnnaBridge 143:86740a56073b 253
AnnaBridge 143:86740a56073b 254 /**@brief Function for enabling a PPI channel group.
AnnaBridge 143:86740a56073b 255 *
AnnaBridge 143:86740a56073b 256 * @param[in] group Channel group to be enabled.
AnnaBridge 143:86740a56073b 257 *
AnnaBridge 143:86740a56073b 258 * @retval NRF_SUCCESS If the group was successfully enabled.
AnnaBridge 143:86740a56073b 259 */
AnnaBridge 143:86740a56073b 260 uint32_t nrf_drv_ppi_group_enable(nrf_ppi_channel_group_t group);
AnnaBridge 143:86740a56073b 261
AnnaBridge 143:86740a56073b 262 /**@brief Function for disabling a PPI channel group.
AnnaBridge 143:86740a56073b 263 *
AnnaBridge 143:86740a56073b 264 * @param[in] group Channel group to be disabled.
AnnaBridge 143:86740a56073b 265 *
AnnaBridge 143:86740a56073b 266 * @retval NRF_SUCCESS If the group was successfully disabled.
AnnaBridge 143:86740a56073b 267 */
AnnaBridge 143:86740a56073b 268 uint32_t nrf_drv_ppi_group_disable(nrf_ppi_channel_group_t group);
AnnaBridge 143:86740a56073b 269
AnnaBridge 143:86740a56073b 270 /**
AnnaBridge 143:86740a56073b 271 * @brief Function for getting the address of a PPI task.
AnnaBridge 143:86740a56073b 272 *
AnnaBridge 143:86740a56073b 273 * @param[in] task Task.
AnnaBridge 143:86740a56073b 274 *
AnnaBridge 143:86740a56073b 275 * @retval Task address.
AnnaBridge 143:86740a56073b 276 */
AnnaBridge 143:86740a56073b 277 __STATIC_INLINE uint32_t nrf_drv_ppi_task_addr_get(nrf_ppi_task_t task)
AnnaBridge 143:86740a56073b 278 {
AnnaBridge 143:86740a56073b 279 return (uint32_t) nrf_ppi_task_address_get(task);
AnnaBridge 143:86740a56073b 280 }
AnnaBridge 143:86740a56073b 281
AnnaBridge 143:86740a56073b 282 /**
AnnaBridge 143:86740a56073b 283 * @brief Function for getting the address of a PPI group enable task.
AnnaBridge 143:86740a56073b 284 *
AnnaBridge 143:86740a56073b 285 * @param[in] group PPI channel group
AnnaBridge 143:86740a56073b 286 *
AnnaBridge 143:86740a56073b 287 * @retval Task address.
AnnaBridge 143:86740a56073b 288 */
AnnaBridge 143:86740a56073b 289 __STATIC_INLINE uint32_t nrf_drv_ppi_task_addr_group_enable_get(nrf_ppi_channel_group_t group)
AnnaBridge 143:86740a56073b 290 {
AnnaBridge 143:86740a56073b 291 return (uint32_t) nrf_ppi_task_group_enable_address_get(group);
AnnaBridge 143:86740a56073b 292 }
AnnaBridge 143:86740a56073b 293
AnnaBridge 143:86740a56073b 294 /**
AnnaBridge 143:86740a56073b 295 * @brief Function for getting the address of a PPI group enable task.
AnnaBridge 143:86740a56073b 296 *
AnnaBridge 143:86740a56073b 297 * @param[in] group PPI channel group
AnnaBridge 143:86740a56073b 298 *
AnnaBridge 143:86740a56073b 299 * @retval Task address.
AnnaBridge 143:86740a56073b 300 */
AnnaBridge 143:86740a56073b 301 __STATIC_INLINE uint32_t nrf_drv_ppi_task_addr_group_disable_get(nrf_ppi_channel_group_t group)
AnnaBridge 143:86740a56073b 302 {
AnnaBridge 143:86740a56073b 303 return (uint32_t) nrf_ppi_task_group_disable_address_get(group);
AnnaBridge 143:86740a56073b 304 }
AnnaBridge 143:86740a56073b 305
AnnaBridge 143:86740a56073b 306 /**
AnnaBridge 143:86740a56073b 307 *@}
AnnaBridge 143:86740a56073b 308 **/
AnnaBridge 143:86740a56073b 309
AnnaBridge 143:86740a56073b 310 /*lint --flb "Leave library region" */
AnnaBridge 143:86740a56073b 311 #endif // NRF_DRV_PPI_H