@@ -454,7 +454,15 @@ STATIC void pyb_timer_print(const mp_print_t *print, mp_obj_t self_in, mp_print_
454
454
self -> tim .Init .CounterMode == TIM_COUNTERMODE_DOWN ? "DOWN" : "CENTER" ,
455
455
self -> tim .Init .ClockDivision == TIM_CLOCKDIVISION_DIV4 ? 4 :
456
456
self -> tim .Init .ClockDivision == TIM_CLOCKDIVISION_DIV2 ? 2 : 1 );
457
- if (IS_TIM_ADVANCED_INSTANCE (self -> tim .Instance )) {
457
+
458
+ #if defined(IS_TIM_ADVANCED_INSTANCE )
459
+ if (IS_TIM_ADVANCED_INSTANCE (self -> tim .Instance ))
460
+ #elif defined(IS_TIM_BREAK_INSTANCE )
461
+ if (IS_TIM_BREAK_INSTANCE (self -> tim .Instance ))
462
+ #else
463
+ if (0 )
464
+ #endif
465
+ {
458
466
mp_printf (print , ", deadtime=%u" ,
459
467
compute_ticks_from_dtg (self -> tim .Instance -> BDTR & TIM_BDTR_DTG ));
460
468
}
@@ -563,9 +571,15 @@ STATIC mp_obj_t pyb_timer_init_helper(pyb_timer_obj_t *self, mp_uint_t n_args, c
563
571
#if defined(TIM8 )
564
572
case 8 : __TIM8_CLK_ENABLE (); break ;
565
573
#endif
574
+ #if defined(TIM9 )
566
575
case 9 : __TIM9_CLK_ENABLE (); break ;
576
+ #endif
577
+ #if defined(TIM10 )
567
578
case 10 : __TIM10_CLK_ENABLE (); break ;
579
+ #endif
580
+ #if defined(TIM11 )
568
581
case 11 : __TIM11_CLK_ENABLE (); break ;
582
+ #endif
569
583
#if defined(TIM12 )
570
584
case 12 : __TIM12_CLK_ENABLE (); break ;
571
585
#endif
@@ -575,6 +589,15 @@ STATIC mp_obj_t pyb_timer_init_helper(pyb_timer_obj_t *self, mp_uint_t n_args, c
575
589
#if defined(TIM14 )
576
590
case 14 : __TIM14_CLK_ENABLE (); break ;
577
591
#endif
592
+ #if defined(TIM15 )
593
+ case 15 : __TIM15_CLK_ENABLE (); break ;
594
+ #endif
595
+ #if defined(TIM16 )
596
+ case 16 : __TIM16_CLK_ENABLE (); break ;
597
+ #endif
598
+ #if defined(TIM17 )
599
+ case 17 : __TIM17_CLK_ENABLE (); break ;
600
+ #endif
578
601
}
579
602
580
603
// 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
584
607
585
608
// init TIM
586
609
HAL_TIM_Base_Init (& self -> tim );
610
+ #if defined(IS_TIM_ADVANCED_INSTANCE )
587
611
if (IS_TIM_ADVANCED_INSTANCE (self -> tim .Instance )) {
612
+ #elif defined(IS_TIM_BREAK_INSTANCE)
613
+ if (IS_TIM_BREAK_INSTANCE (self -> tim .Instance )) {
614
+ #else
615
+ if (0 ) {
616
+ #endif
588
617
config_deadtime (self , args [6 ].u_int );
589
618
}
590
619
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,
617
646
tim -> is_32bit = false;
618
647
619
648
switch (tim -> tim_id ) {
649
+ #if defined(MCU_SERIES_F4 ) || defined(MCU_SERIES_F7 )
620
650
case 1 : tim -> tim .Instance = TIM1 ; tim -> irqn = TIM1_UP_TIM10_IRQn ; break ;
651
+ #elif defined(MCU_SERIES_L4 )
652
+ case 1 : tim -> tim .Instance = TIM1 ; tim -> irqn = TIM1_UP_TIM16_IRQn ; break ;
653
+ #endif
621
654
case 2 : tim -> tim .Instance = TIM2 ; tim -> irqn = TIM2_IRQn ; tim -> is_32bit = true; break ;
622
655
case 3 : tim -> tim .Instance = TIM3 ; tim -> irqn = TIM3_IRQn ; break ;
623
656
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,
629
662
case 7 : tim -> tim .Instance = TIM7 ; tim -> irqn = TIM7_IRQn ; break ;
630
663
#endif
631
664
#if defined(TIM8 )
665
+ #if defined(MCU_SERIES_F4 ) || defined(MCU_SERIES_F7 )
632
666
case 8 : tim -> tim .Instance = TIM8 ; tim -> irqn = TIM8_UP_TIM13_IRQn ; break ;
667
+ #elif defined(MCU_SERIES_L4 )
668
+ case 8 : tim -> tim .Instance = TIM8 ; tim -> irqn = TIM8_UP_IRQn ; break ;
633
669
#endif
670
+ #endif
671
+ #if defined(TIM9 )
634
672
case 9 : tim -> tim .Instance = TIM9 ; tim -> irqn = TIM1_BRK_TIM9_IRQn ; break ;
673
+ #endif
674
+ #if defined(TIM10 )
635
675
case 10 : tim -> tim .Instance = TIM10 ; tim -> irqn = TIM1_UP_TIM10_IRQn ; break ;
676
+ #endif
677
+ #if defined(TIM11 )
636
678
case 11 : tim -> tim .Instance = TIM11 ; tim -> irqn = TIM1_TRG_COM_TIM11_IRQn ; break ;
679
+ #endif
637
680
#if defined(TIM12 )
638
681
case 12 : tim -> tim .Instance = TIM12 ; tim -> irqn = TIM8_BRK_TIM12_IRQn ; break ;
639
682
#endif
@@ -643,6 +686,15 @@ STATIC mp_obj_t pyb_timer_make_new(const mp_obj_type_t *type, mp_uint_t n_args,
643
686
#if defined(TIM14 )
644
687
case 14 : tim -> tim .Instance = TIM14 ; tim -> irqn = TIM8_TRG_COM_TIM14_IRQn ; break ;
645
688
#endif
689
+ #if defined(TIM15 )
690
+ case 15 : tim -> tim .Instance = TIM15 ; tim -> irqn = TIM1_BRK_TIM15_IRQn ; break ;
691
+ #endif
692
+ #if defined(TIM16 )
693
+ case 16 : tim -> tim .Instance = TIM16 ; tim -> irqn = TIM1_UP_TIM16_IRQn ; break ;
694
+ #endif
695
+ #if defined(TIM17 )
696
+ case 17 : tim -> tim .Instance = TIM17 ; tim -> irqn = TIM1_TRG_COM_TIM17_IRQn ; break ;
697
+ #endif
646
698
default : nlr_raise (mp_obj_new_exception_msg_varg (& mp_type_ValueError , "Timer %d does not exist" , tim -> tim_id ));
647
699
}
648
700
0 commit comments