From e1d50193b04c5f5856fe1c607b822dbd89a1461f Mon Sep 17 00:00:00 2001 From: MateuszM Date: Mon, 13 Aug 2018 17:29:49 +0200 Subject: [PATCH] Fix for issue #7743 NRF52 Cannot initialize PWM Deleted lines that caused the problem. Note that, in nrf_drv_pwm_init there are lines that check if pwm instance is already running, so we don't even need to check it in nordic_pwm_init. nrf_drv_uninit should be used in nordic_pwm_restart. --- .../TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/pwmout_api.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/pwmout_api.c b/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/pwmout_api.c index 57dd7a28af..f294ce935c 100644 --- a/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/pwmout_api.c +++ b/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/pwmout_api.c @@ -98,9 +98,6 @@ static void nordic_pwm_init(pwmout_t *obj) .step_mode = NRF_PWM_STEP_AUTO, }; - /* Make sure PWM instance is not running before making changes. */ - nrf_drv_pwm_uninit(&nordic_nrf5_pwm_instance[obj->instance]); - /* Initialize instance with new configuration. */ ret_code_t result = nrf_drv_pwm_init(&nordic_nrf5_pwm_instance[obj->instance], &config, @@ -114,6 +111,9 @@ static void nordic_pwm_restart(pwmout_t *obj) { MBED_ASSERT(obj); + /* Uninitialize PWM instace */ + nrf_drv_pwm_uninit(&nordic_nrf5_pwm_instance[obj->instance]); + /* (Re)initialize PWM instance. */ nordic_pwm_init(obj);