static void timer_setup(void) { rcc_periph_clock_enable(RCC_TIM3); timer_reset(TIM3); timer_set_mode(TIM3, // Operate on TIM3 TIM_CR1_CKD_CK_INT, // No prescaling(Internal clock) TIM_CR1_CMS_EDGE, // Edge-aligned TIM_CR1_DIR_UP); // Up-counting timer_set_period(TIM3, 168); nvic_enable_irq(NVIC_TIM3_IRQ); timer_enable_irq(TIM3, TIM_DIER_CC1IE); timer_enable_counter(TIM3); }