ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
6 мая
1221198 Топик полностью
Aleksey_75 (06.07.2022 11:13, просмотров: 220) ответил Dingo на А как бы автоматизировать получение элемента из нескольких? Можно и желательно макросами.
не проще создать массив констант tmr_irq, где расположить значения согласно номеру таймера, и выдергивать по естественному номеру ? как то так 

static const sch_timers_pool_t sch_timers_pool[SCH_TIMERS_SIZE] =

{

{ SCH_TIMER1, SCH_TIMER1_RCC, SCH_TIMER1_IRQ},

{ SCH_TIMER2, SCH_TIMER2_RCC, SCH_TIMER2_IRQ},

{ SCH_TIMER3, SCH_TIMER3_RCC, SCH_TIMER3_IRQ},

{ SCH_TIMER4, SCH_TIMER4_RCC, SCH_TIMER4_IRQ},

};


init

for (uint8_t i = 0; i < SCH_TIMERS_SIZE; i ++)

{

tmr_reset(sch_timers_pool[i].tmr);

crm_periph_clock_enable(sch_timers_pool[i].tmr_rcc, TRUE);

sch_timers_pool[i].tmr->ctrl1_bit.clkdiv = TMR_CLOCK_DIV4;

sch_timers_pool[i].tmr->div = (DIV_TO_1mS(clk.apb1_freq));

sch_timers_pool[i].tmr->pr = SCH_TIMER_OVF;

sch_timers_pool[i].tmr->ctrl1_bit.tmren = 0;

nvic_irq_enable(sch_timers_pool[i].tmr_irq, SCH_TIMER_PRE, SCH_TIMER_PRI);

}