@@ -99,30 +99,30 @@ void timers_reset(void) {
99
99
100
100
TIM_TypeDef * stm_peripherals_find_timer (void ) {
101
101
// Check for timers on pins outside the package size
102
- // for (size_t i = 0; i < MP_ARRAY_SIZE(mcu_tim_banks); i++) {
103
- // bool timer_in_package = false;
104
- // // Find each timer instance on the given bank
105
- // for (size_t j = 0; j < MP_ARRAY_SIZE(mcu_tim_pin_list); j++) {
106
- // // If a pin is claimed, we skip it
107
- // if ( (mcu_tim_pin_list[j].tim_index == i)
108
- // && (common_hal_mcu_pin_is_free(mcu_tim_pin_list[j].pin) == true) ) {
109
- // // Search whether any pins in the package array match it
110
- // for (size_t k = 0; k < mcu_pin_globals.map.alloc; k++) {
111
- // if ( (mcu_tim_pin_list[j].pin == (mcu_pin_obj_t*)(mcu_pin_globals.map.table[k].value)) ) {
112
- // timer_in_package = true;
113
- // }
114
- // }
115
- // }
116
- // }
117
- // // If no results are found, no unclaimed pins with this timer are in this package,
118
- // // and it is safe to pick
119
- // if (timer_in_package == false && mcu_tim_banks[i] != NULL) {
120
- // return mcu_tim_banks[i];
121
- // }
122
- // }
102
+ for (size_t i = 0 ; i < MP_ARRAY_SIZE (mcu_tim_banks ); i ++ ) {
103
+ bool timer_in_package = false;
104
+ // Find each timer instance on the given bank
105
+ for (size_t j = 0 ; j < MP_ARRAY_SIZE (mcu_tim_pin_list ); j ++ ) {
106
+ // If a pin is claimed, we skip it
107
+ if ( (mcu_tim_pin_list [j ].tim_index == i + 1 )
108
+ && (common_hal_mcu_pin_is_free (mcu_tim_pin_list [j ].pin ) == true) ) {
109
+ // Search whether any pins in the package array match it
110
+ for (size_t k = 0 ; k < mcu_pin_globals .map .alloc ; k ++ ) {
111
+ if ( (mcu_tim_pin_list [j ].pin == (mcu_pin_obj_t * )(mcu_pin_globals .map .table [k ].value )) ) {
112
+ timer_in_package = true;
113
+ }
114
+ }
115
+ }
116
+ }
117
+ // If no results are found, no unclaimed pins with this timer are in this package,
118
+ // and it is safe to pick
119
+ if (timer_in_package == false && mcu_tim_banks [i ] != NULL ) {
120
+ return mcu_tim_banks [i ];
121
+ }
122
+ }
123
123
124
124
// Work backwards - higher index timers have fewer pin allocations
125
- for (size_t i = (MP_ARRAY_SIZE (mcu_tim_banks ) - 1 ); i >= 0 ; i -- ) {
125
+ for (size_t i = (MP_ARRAY_SIZE (mcu_tim_banks ) - 1 ); i >= 0 ; i -- ) {
126
126
if ((!stm_timer_reserved [i ]) && (mcu_tim_banks [i ] != NULL )) {
127
127
return mcu_tim_banks [i ];
128
128
}
0 commit comments