From a0d3da9a36a550338871b562a6876ec978b13aab Mon Sep 17 00:00:00 2001 From: bcostm Date: Mon, 9 Jun 2014 12:51:24 +0200 Subject: [PATCH] [NUCLEO_F401RE] Add missing IT flag reset + update system clock variable --- .../targets/cmsis/TARGET_STM/TARGET_NUCLEO_F401RE/hal_tick.c | 1 + .../targets/hal/TARGET_STM/TARGET_NUCLEO_F401RE/pwmout_api.c | 3 +++ 2 files changed, 4 insertions(+) diff --git a/libraries/mbed/targets/cmsis/TARGET_STM/TARGET_NUCLEO_F401RE/hal_tick.c b/libraries/mbed/targets/cmsis/TARGET_STM/TARGET_NUCLEO_F401RE/hal_tick.c index a1b59c53ad..95b6bfe9b4 100644 --- a/libraries/mbed/targets/cmsis/TARGET_STM/TARGET_NUCLEO_F401RE/hal_tick.c +++ b/libraries/mbed/targets/cmsis/TARGET_STM/TARGET_NUCLEO_F401RE/hal_tick.c @@ -42,6 +42,7 @@ void us_ticker_irq_handler(void); void timer_irq_handler(void) { // Channel 1 for mbed timeout if (__HAL_TIM_GET_ITSTATUS(&TimMasterHandle, TIM_IT_CC1) == SET) { + __HAL_TIM_CLEAR_IT(&TimMasterHandle, TIM_IT_CC1); us_ticker_irq_handler(); } diff --git a/libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_F401RE/pwmout_api.c b/libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_F401RE/pwmout_api.c index 476a421678..934fb67b45 100644 --- a/libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_F401RE/pwmout_api.c +++ b/libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_F401RE/pwmout_api.c @@ -238,6 +238,9 @@ void pwmout_period_us(pwmout_t* obj, int us) { __HAL_TIM_DISABLE(&TimHandle); + // Update the SystemCoreClock variable + SystemCoreClockUpdate(); + TimHandle.Init.Period = us - 1; TimHandle.Init.Prescaler = (uint16_t)(SystemCoreClock / 1000000) - 1; // 1 µs tick TimHandle.Init.ClockDivision = 0;