diff --git a/STM32F1/system/libmaple/include/libmaple/timer.h b/STM32F1/system/libmaple/include/libmaple/timer.h index e9a49e9..0c2e027 100644 --- a/STM32F1/system/libmaple/include/libmaple/timer.h +++ b/STM32F1/system/libmaple/include/libmaple/timer.h @@ -843,8 +843,7 @@ static inline void timer_dma_disable_req(timer_dev *dev, uint8 channel) { */ static inline void timer_enable_irq(timer_dev *dev, uint8 interrupt) { // clear interrupt flag, use different masks for reserved bits - dev->regs->SR = (~BIT(interrupt)) & ( (dev->type==TIMER_ADVANCED) ? 0x1EFF : - ( (dev->type==TIMER_GENERAL) ? 0x1E5F : 0x0001) ); + *bb_perip(&(dev->regs).adv->SR, interrupt) = 0; // clear interrupt flag *bb_perip(&(dev->regs).adv->DIER, interrupt) = 1; }