```rust macro_rules! apb_reset { (1, $tim) => { rcc.apb1enr1.modify(|_, w| w.[<$tim en>]().set_bit()); rcc.apb1rstr1.modify(|_, w| w.[<$tim rst>]().set_bit()); rcc.apb1rstr1.modify(|_, w| w.[<$tim rst>]().clear_bit()); }, (2, $tim) => { rcc.apb2enr.modify(|_, w| w.[<$tim en>]().set_bit()); rcc.apb2rstr.modify(|_, w| w.[<$tim rst>]().set_bit()); rcc.apb2rstr.modify(|_, w| w.[<$tim rst>]().clear_bit()); } } macro_rules your_main_macro { (...) => { .... apb_reset($apb, $tim) } }