From 8e1f69a96797fc3a8e601450446e316b4aa64f78 Mon Sep 17 00:00:00 2001 From: Tobias Badertscher Date: Tue, 22 Mar 2016 17:07:43 +0100 Subject: [PATCH] L4 integration: Modification to timer. --- stmhal/timer.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/stmhal/timer.c b/stmhal/timer.c index 8d462975e1f6e..70c7534e7d1a3 100644 --- a/stmhal/timer.c +++ b/stmhal/timer.c @@ -454,7 +454,15 @@ STATIC void pyb_timer_print(const mp_print_t *print, mp_obj_t self_in, mp_print_ self->tim.Init.CounterMode == TIM_COUNTERMODE_DOWN ? "DOWN" : "CENTER", self->tim.Init.ClockDivision == TIM_CLOCKDIVISION_DIV4 ? 4 : self->tim.Init.ClockDivision == TIM_CLOCKDIVISION_DIV2 ? 2 : 1); - if (IS_TIM_ADVANCED_INSTANCE(self->tim.Instance)) { + +#if defined(IS_TIM_ADVANCED_INSTANCE) + if (IS_TIM_ADVANCED_INSTANCE(self->tim.Instance)) +#elif defined(IS_TIM_BREAK_INSTANCE) + if (IS_TIM_BREAK_INSTANCE(self->tim.Instance)) +#else + if (0) +#endif + { mp_printf(print, ", deadtime=%u", compute_ticks_from_dtg(self->tim.Instance->BDTR & TIM_BDTR_DTG)); } @@ -563,9 +571,15 @@ STATIC mp_obj_t pyb_timer_init_helper(pyb_timer_obj_t *self, mp_uint_t n_args, c #if defined(TIM8) case 8: __TIM8_CLK_ENABLE(); break; #endif + #if defined(TIM9) case 9: __TIM9_CLK_ENABLE(); break; + #endif + #if defined(TIM10) case 10: __TIM10_CLK_ENABLE(); break; + #endif + #if defined(TIM11) case 11: __TIM11_CLK_ENABLE(); break; + #endif #if defined(TIM12) case 12: __TIM12_CLK_ENABLE(); break; #endif @@ -575,6 +589,15 @@ STATIC mp_obj_t pyb_timer_init_helper(pyb_timer_obj_t *self, mp_uint_t n_args, c #if defined(TIM14) case 14: __TIM14_CLK_ENABLE(); break; #endif + #if defined(TIM15) + case 15: __TIM15_CLK_ENABLE(); break; + #endif + #if defined(TIM16) + case 16: __TIM16_CLK_ENABLE(); break; + #endif + #if defined(TIM17) + case 17: __TIM17_CLK_ENABLE(); break; + #endif } // set IRQ priority (if not a special timer) @@ -584,7 +607,13 @@ STATIC mp_obj_t pyb_timer_init_helper(pyb_timer_obj_t *self, mp_uint_t n_args, c // init TIM HAL_TIM_Base_Init(&self->tim); +#if defined(IS_TIM_ADVANCED_INSTANCE) if (IS_TIM_ADVANCED_INSTANCE(self->tim.Instance)) { +#elif defined(IS_TIM_BREAK_INSTANCE) + if (IS_TIM_BREAK_INSTANCE(self->tim.Instance)) { +#else + if (0) { +#endif config_deadtime(self, args[6].u_int); } if (args[5].u_obj == mp_const_none) { @@ -617,7 +646,11 @@ STATIC mp_obj_t pyb_timer_make_new(const mp_obj_type_t *type, mp_uint_t n_args, tim->is_32bit = false; switch (tim->tim_id) { +#if defined(MCU_SERIES_F4) || defined(MCU_SERIES_F7) case 1: tim->tim.Instance = TIM1; tim->irqn = TIM1_UP_TIM10_IRQn; break; +#elif defined(MCU_SERIES_L4) + case 1: tim->tim.Instance = TIM1; tim->irqn = TIM1_UP_TIM16_IRQn; break; +#endif case 2: tim->tim.Instance = TIM2; tim->irqn = TIM2_IRQn; tim->is_32bit = true; break; case 3: tim->tim.Instance = TIM3; tim->irqn = TIM3_IRQn; break; case 4: tim->tim.Instance = TIM4; tim->irqn = TIM4_IRQn; break; @@ -629,11 +662,21 @@ STATIC mp_obj_t pyb_timer_make_new(const mp_obj_type_t *type, mp_uint_t n_args, case 7: tim->tim.Instance = TIM7; tim->irqn = TIM7_IRQn; break; #endif #if defined(TIM8) + #if defined(MCU_SERIES_F4) || defined(MCU_SERIES_F7) case 8: tim->tim.Instance = TIM8; tim->irqn = TIM8_UP_TIM13_IRQn; break; + #elif defined(MCU_SERIES_L4) + case 8: tim->tim.Instance = TIM8; tim->irqn = TIM8_UP_IRQn; break; + #endif #endif + #if defined(TIM9) case 9: tim->tim.Instance = TIM9; tim->irqn = TIM1_BRK_TIM9_IRQn; break; + #endif + #if defined(TIM10) case 10: tim->tim.Instance = TIM10; tim->irqn = TIM1_UP_TIM10_IRQn; break; + #endif + #if defined(TIM11) case 11: tim->tim.Instance = TIM11; tim->irqn = TIM1_TRG_COM_TIM11_IRQn; break; + #endif #if defined(TIM12) case 12: tim->tim.Instance = TIM12; tim->irqn = TIM8_BRK_TIM12_IRQn; break; #endif @@ -643,6 +686,15 @@ STATIC mp_obj_t pyb_timer_make_new(const mp_obj_type_t *type, mp_uint_t n_args, #if defined(TIM14) case 14: tim->tim.Instance = TIM14; tim->irqn = TIM8_TRG_COM_TIM14_IRQn; break; #endif + #if defined(TIM15) + case 15: tim->tim.Instance = TIM15; tim->irqn = TIM1_BRK_TIM15_IRQn; break; + #endif + #if defined(TIM16) + case 16: tim->tim.Instance = TIM16; tim->irqn = TIM1_UP_TIM16_IRQn; break; + #endif + #if defined(TIM17) + case 17: tim->tim.Instance = TIM17; tim->irqn = TIM1_TRG_COM_TIM17_IRQn; break; + #endif default: nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_ValueError, "Timer %d does not exist", tim->tim_id)); } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy