Migrate TIM[2-5] to macro tables.
This commit is contained in:
parent
c00a85f9a9
commit
75dc0fd542
@ -136,9 +136,9 @@ with open(output_file, 'w') as f:
|
|||||||
if (func := funcs.get(f'{name}_D7')) != None:
|
if (func := funcs.get(f'{name}_D7')) != None:
|
||||||
f.write(f'impl_sdmmc_pin!({name}, D7Pin, {pin}, {func});')
|
f.write(f'impl_sdmmc_pin!({name}, D7Pin, {pin}, {func});')
|
||||||
|
|
||||||
if block_name == 'TimGp16':
|
# if block_name == 'TimGp16':
|
||||||
if re.match('TIM[2345]$', name):
|
# if re.match('TIM[2345]$', name):
|
||||||
f.write(f'impl_timer!({name});')
|
# f.write(f'impl_timer!({name});')
|
||||||
|
|
||||||
if block_mod == 'exti':
|
if block_mod == 'exti':
|
||||||
for irq in chip['interrupts']:
|
for irq in chip['interrupts']:
|
||||||
|
@ -10,6 +10,7 @@ use embassy::time::{Clock as EmbassyClock, TICKS_PER_SECOND};
|
|||||||
|
|
||||||
use crate::interrupt::{CriticalSection, Interrupt, Mutex};
|
use crate::interrupt::{CriticalSection, Interrupt, Mutex};
|
||||||
use crate::pac::timer::TimGp16;
|
use crate::pac::timer::TimGp16;
|
||||||
|
use crate::peripherals;
|
||||||
use crate::time::Hertz;
|
use crate::time::Hertz;
|
||||||
|
|
||||||
// Clock timekeeping works with something we call "periods", which are time intervals
|
// Clock timekeeping works with something we call "periods", which are time intervals
|
||||||
@ -362,15 +363,22 @@ pub trait Instance: sealed::Instance + Sized + 'static {}
|
|||||||
|
|
||||||
macro_rules! impl_timer {
|
macro_rules! impl_timer {
|
||||||
($inst:ident) => {
|
($inst:ident) => {
|
||||||
impl crate::clock::sealed::Instance for peripherals::$inst {
|
impl sealed::Instance for peripherals::$inst {
|
||||||
type Interrupt = crate::interrupt::$inst;
|
type Interrupt = crate::interrupt::$inst;
|
||||||
|
|
||||||
fn inner() -> crate::clock::TimerInner {
|
fn inner() -> crate::clock::TimerInner {
|
||||||
const INNER: crate::clock::TimerInner = crate::clock::TimerInner(crate::pac::$inst);
|
const INNER: TimerInner = TimerInner(crate::pac::$inst);
|
||||||
INNER
|
INNER
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl crate::clock::Instance for peripherals::$inst {}
|
impl Instance for peripherals::$inst {}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
crate::pac::peripherals!(
|
||||||
|
(timer, TIM2) => { impl_timer!(TIM2); };
|
||||||
|
(timer, TIM3) => { impl_timer!(TIM3); };
|
||||||
|
(timer, TIM4) => { impl_timer!(TIM4); };
|
||||||
|
(timer, TIM5) => { impl_timer!(TIM5); };
|
||||||
|
);
|
||||||
|
Loading…
Reference in New Issue
Block a user