uint32_t nrf_drv_ppi_group_alloc(nrf_ppi_channel_group_t * p_group) { uint32_t err_code; uint32_t mask = 0; nrf_ppi_channel_group_t group; err_code = NRF_ERROR_NO_MEM; mask = NRF_PPI_ALL_APP_GROUPS_MASK; for (group = NRF_PPI_CHANNEL_GROUP0; mask != 0; mask &= ~group_to_mask(group), group++) { CRITICAL_REGION_ENTER(); if ((mask & group_to_mask(group)) && (!is_allocated_group(group))) { group_allocated_set(group); *p_group = group; err_code = NRF_SUCCESS; } CRITICAL_REGION_EXIT(); if (err_code == NRF_SUCCESS) { NRF_LOG_INFO("Allocated group: %d.\r\n", group); break; } } NRF_LOG_INFO("Function: %s, error code: %s.\r\n", (uint32_t)__func__, (uint32_t)ERR_TO_STR(err_code)); return err_code; }
uint32_t nrf_drv_ppi_group_alloc(nrf_ppi_channel_group_t * p_group) { uint32_t err_code; uint32_t mask = 0; nrf_ppi_channel_group_t group; err_code = NRF_ERROR_NO_MEM; mask = NRF_PPI_ALL_APP_GROUPS_MASK; for (group = NRF_PPI_CHANNEL_GROUP0; mask != 0; mask &= ~group_to_mask(group), group++) { CRITICAL_REGION_ENTER(); if ((mask & group_to_mask(group)) && (!is_allocated_group(group))) { group_allocated_set(group); *p_group = group; err_code = NRF_SUCCESS; } CRITICAL_REGION_EXIT(); if (err_code == NRF_SUCCESS) { break; } } return err_code; }