stm32: Add support for using TIM12 and TIM15 as time driver
This commit is contained in:
@ -18,8 +18,12 @@ use crate::rcc::sealed::RccPeripheral;
|
||||
use crate::timer::sealed::Basic16bitInstance as BasicInstance;
|
||||
use crate::timer::sealed::GeneralPurpose16bitInstance as Instance;
|
||||
|
||||
#[cfg(not(any(time_driver_tim12, time_driver_tim15)))]
|
||||
const ALARM_COUNT: usize = 3;
|
||||
|
||||
#[cfg(any(time_driver_tim12, time_driver_tim15))]
|
||||
const ALARM_COUNT: usize = 1;
|
||||
|
||||
#[cfg(time_driver_tim2)]
|
||||
type T = peripherals::TIM2;
|
||||
#[cfg(time_driver_tim3)]
|
||||
@ -29,6 +33,11 @@ type T = peripherals::TIM4;
|
||||
#[cfg(time_driver_tim5)]
|
||||
type T = peripherals::TIM5;
|
||||
|
||||
#[cfg(time_driver_tim12)]
|
||||
type T = peripherals::TIM12;
|
||||
#[cfg(time_driver_tim15)]
|
||||
type T = peripherals::TIM15;
|
||||
|
||||
foreach_interrupt! {
|
||||
(TIM2, timer, $block:ident, UP, $irq:ident) => {
|
||||
#[cfg(time_driver_tim2)]
|
||||
@ -58,6 +67,20 @@ foreach_interrupt! {
|
||||
DRIVER.on_interrupt()
|
||||
}
|
||||
};
|
||||
(TIM12, timer, $block:ident, UP, $irq:ident) => {
|
||||
#[cfg(time_driver_tim12)]
|
||||
#[interrupt]
|
||||
fn $irq() {
|
||||
DRIVER.on_interrupt()
|
||||
}
|
||||
};
|
||||
(TIM15, timer, $block:ident, UP, $irq:ident) => {
|
||||
#[cfg(time_driver_tim15)]
|
||||
#[interrupt]
|
||||
fn $irq() {
|
||||
DRIVER.on_interrupt()
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// Clock timekeeping works with something we call "periods", which are time intervals
|
||||
|
Reference in New Issue
Block a user