From f19efb6a43c4500b551bce3cb08097b25a1e6a3c Mon Sep 17 00:00:00 2001 From: Andrzej Puzdrowski Date: Wed, 29 Jun 2016 12:29:38 +0200 Subject: [PATCH] AnalogIn for nRF51 Fixes multiinstances was not suported for nrf51 made nrf_saadc SDK hal private for nRF52 --- .../TARGET_NRF5/TARGET_MCU_NRF51822/analogin_api.c | 2 +- .../TARGET_NRF5/sdk/drivers_nrf/hal/nrf_saadc.c | 4 ++++ .../TARGET_NRF5/sdk/drivers_nrf/hal/nrf_saadc.h | 6 ++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/hal/targets/hal/TARGET_NORDIC/TARGET_NRF5/TARGET_MCU_NRF51822/analogin_api.c b/hal/targets/hal/TARGET_NORDIC/TARGET_NRF5/TARGET_MCU_NRF51822/analogin_api.c index ac349e0d36..11a40c22db 100644 --- a/hal/targets/hal/TARGET_NORDIC/TARGET_NRF5/TARGET_MCU_NRF51822/analogin_api.c +++ b/hal/targets/hal/TARGET_NORDIC/TARGET_NRF5/TARGET_MCU_NRF51822/analogin_api.c @@ -53,7 +53,7 @@ void analogin_init(analogin_t *obj, PinName pin) ret_code_t ret_code; // p_config, event_handler ret_code = nrf_drv_adc_init(NULL , NULL); // select blocking mode - MBED_ASSERT(ret_code == NRF_SUCCESS); + MBED_ASSERT((ret_code == NRF_SUCCESS) || (ret_code == NRF_ERROR_INVALID_STATE)); //NRF_ERROR_INVALID_STATE expected for multiple channels used. } uint16_t analogin_read_u16(analogin_t *obj) diff --git a/hal/targets/hal/TARGET_NORDIC/TARGET_NRF5/sdk/drivers_nrf/hal/nrf_saadc.c b/hal/targets/hal/TARGET_NORDIC/TARGET_NRF5/sdk/drivers_nrf/hal/nrf_saadc.c index b2d5cc871b..bddd186486 100644 --- a/hal/targets/hal/TARGET_NORDIC/TARGET_NRF5/sdk/drivers_nrf/hal/nrf_saadc.c +++ b/hal/targets/hal/TARGET_NORDIC/TARGET_NRF5/sdk/drivers_nrf/hal/nrf_saadc.c @@ -10,6 +10,7 @@ * */ +#ifdef NRF52 /** * @file * @brief SAADC HAL implementation @@ -29,3 +30,6 @@ void nrf_saadc_channel_init(uint8_t channel, nrf_saadc_channel_config_t const * nrf_saadc_channel_input_set(channel, config->pin_p, config->pin_n); return; } + +#endif //NRF52 + diff --git a/hal/targets/hal/TARGET_NORDIC/TARGET_NRF5/sdk/drivers_nrf/hal/nrf_saadc.h b/hal/targets/hal/TARGET_NORDIC/TARGET_NRF5/sdk/drivers_nrf/hal/nrf_saadc.h index a3044d8b1c..36c318fc00 100644 --- a/hal/targets/hal/TARGET_NORDIC/TARGET_NRF5/sdk/drivers_nrf/hal/nrf_saadc.h +++ b/hal/targets/hal/TARGET_NORDIC/TARGET_NRF5/sdk/drivers_nrf/hal/nrf_saadc.h @@ -14,6 +14,8 @@ #ifndef NRF_SAADC_H_ #define NRF_SAADC_H_ +#ifdef NRF52 + /** * @defgroup nrf_saadc_hal SAADC HAL * @{ @@ -27,6 +29,8 @@ #include "nrf.h" #include "nrf_assert.h" + + #define NRF_SAADC_CHANNEL_COUNT 8 /** @@ -550,5 +554,7 @@ void nrf_saadc_channel_init(uint8_t channel, nrf_saadc_channel_config_t const * /** *@} **/ + +#endif // NRF52 #endif /* NRF_SAADC_H_ */