@@ -2,66 +2,11 @@ use crate::afio::MAPR;
22use crate :: gpio:: { self , Alternate , Cr } ;
33use crate :: pac;
44
5- pub trait CPin < REMAP , const C : u8 > { }
6- pub struct Ch < const C : u8 > ;
75pub const C1 : u8 = 0 ;
86pub const C2 : u8 = 1 ;
97pub const C3 : u8 = 2 ;
108pub const C4 : u8 = 3 ;
119
12- pub ( crate ) mod sealed {
13- pub trait Remap {
14- type Periph ;
15- const REMAP : u8 ;
16-
17- fn remap ( mapr : & mut crate :: afio:: MAPR ) ;
18- }
19- }
20-
21- macro_rules! remap {
22- ( $( $name: ident: ( $TIMX: ty, $state: literal, $P1: ident, $P2: ident, $P3: ident, $P4: ident, { $remapex: expr } ) , ) +) => {
23- $(
24- pub struct $name;
25- impl sealed:: Remap for $name {
26- type Periph = $TIMX;
27- const REMAP : u8 = $state;
28-
29- fn remap( mapr: & mut crate :: afio:: MAPR ) {
30- mapr. modify_mapr( $remapex) ;
31- }
32- }
33- impl <MODE > CPin <$name, 0 > for crate :: gpio:: $P1<MODE > { }
34- impl <MODE > CPin <$name, 1 > for crate :: gpio:: $P2<MODE > { }
35- impl <MODE > CPin <$name, 2 > for crate :: gpio:: $P3<MODE > { }
36- impl <MODE > CPin <$name, 3 > for crate :: gpio:: $P4<MODE > { }
37- ) +
38- }
39- }
40-
41- #[ cfg( any( feature = "stm32f100" , feature = "stm32f103" , feature = "connectivity" ) ) ]
42- remap ! (
43- Tim1NoRemap : ( pac:: TIM1 , 0b00 , PA8 , PA9 , PA10 , PA11 , { |_, w| unsafe { w. tim1_remap( ) . bits( Self :: REMAP ) } } ) ,
44- //Tim1PartialRemap: (pac::TIM1, 0b01, PA8, PA9, PA10, PA11),
45- Tim1FullRemap : ( pac:: TIM1 , 0b11 , PE9 , PE11 , PE13 , PE14 , { |_, w| unsafe { w. tim1_remap( ) . bits( Self :: REMAP ) } } ) ,
46- ) ;
47-
48- remap ! (
49- Tim2NoRemap : ( pac:: TIM2 , 0b00 , PA0 , PA1 , PA2 , PA3 , { |_, w| unsafe { w. tim2_remap( ) . bits( Self :: REMAP ) } } ) ,
50- Tim2PartialRemap1 : ( pac:: TIM2 , 0b01 , PA15 , PB3 , PA2 , PA3 , { |_, w| unsafe { w. tim2_remap( ) . bits( Self :: REMAP ) } } ) ,
51- Tim2PartialRemap2 : ( pac:: TIM2 , 0b10 , PA0 , PA1 , PB10 , PB11 , { |_, w| unsafe { w. tim2_remap( ) . bits( Self :: REMAP ) } } ) ,
52- Tim2FullRemap : ( pac:: TIM2 , 0b11 , PA15 , PB3 , PB10 , PB11 , { |_, w| unsafe { w. tim2_remap( ) . bits( Self :: REMAP ) } } ) ,
53-
54- Tim3NoRemap : ( pac:: TIM3 , 0b00 , PA6 , PA7 , PB0 , PB1 , { |_, w| unsafe { w. tim3_remap( ) . bits( Self :: REMAP ) } } ) ,
55- Tim3PartialRemap : ( pac:: TIM3 , 0b10 , PB4 , PB5 , PB0 , PB1 , { |_, w| unsafe { w. tim3_remap( ) . bits( Self :: REMAP ) } } ) ,
56- Tim3FullRemap : ( pac:: TIM3 , 0b11 , PC6 , PC7 , PC8 , PC9 , { |_, w| unsafe { w. tim3_remap( ) . bits( Self :: REMAP ) } } ) ,
57- ) ;
58-
59- #[ cfg( feature = "medium" ) ]
60- remap ! (
61- Tim4NoRemap : ( pac:: TIM4 , 0b00 , PB6 , PB7 , PB8 , PB9 , { |_, w| w. tim4_remap( ) . bit( Self :: REMAP == 1 ) } ) ,
62- Tim4Remap : ( pac:: TIM4 , 0b01 , PD12 , PD13 , PD14 , PD15 , { |_, w| w. tim4_remap( ) . bit( Self :: REMAP == 1 ) } ) ,
63- ) ;
64-
6510#[ cfg( any( feature = "stm32f100" , feature = "stm32f103" , feature = "connectivity" ) ) ]
6611pub mod tim1 {
6712 use super :: * ;
0 commit comments