2
2
3
3
use crate :: gpio;
4
4
use crate :: timer;
5
- use core:: marker:: PhantomData ;
6
5
use hal;
7
6
8
7
/// pwm
9
- pub struct PwmBinding < P : gpio:: GPIOPin ,
10
- C : timer:: TimerChannel ,
11
- AF : gpio:: AltFnNum >
12
- {
8
+ pub struct PwmBinding < P : gpio:: GPIOPin , C : timer:: TimerChannel > {
13
9
pin : P ,
14
10
channel : C ,
15
- _af : PhantomData < AF > ,
16
11
}
17
12
18
- impl < P : gpio:: GPIOPin , C : timer:: TimerChannel , AF : gpio:: AltFnNum >
19
- PwmBinding < P , C , AF >
20
- {
13
+ impl < P : gpio:: GPIOPin , C : timer:: TimerChannel > PwmBinding < P , C > {
21
14
/// Consumes PwmBinding returning pin and channel
22
15
pub fn release ( self ) -> ( P , C ) {
23
16
( self . pin , self . channel )
24
17
}
25
18
}
26
19
27
- impl < P : gpio:: GPIOPin , C : timer:: TimerChannel , AF : gpio :: AltFnNum > hal:: PwmPin
28
- for PwmBinding < P , C , AF >
20
+ impl < P : gpio:: GPIOPin , C : timer:: TimerChannel > hal:: PwmPin
21
+ for PwmBinding < P , C >
29
22
{
30
23
type Duty = u32 ;
31
24
fn disable ( & mut self ) {
@@ -77,8 +70,7 @@ macro_rules! pwm {
77
70
gpio:: $PIN<PT , gpio:: AltFn <gpio:: $AF, gpio:: $PP, SP >>;
78
71
type Output = PwmBinding <Self :: OutputPin ,
79
72
timer:: $TIM:: Channel <timer:: $CHN,
80
- timer:: Pwm1 >,
81
- gpio:: $AF>;
73
+ timer:: Pwm1 >>;
82
74
fn to_pwm( self ,
83
75
channel: timer:: $TIM:: Channel <timer:: $CHN, CM >,
84
76
sp: SP )
@@ -89,16 +81,13 @@ macro_rules! pwm {
89
81
. alt_fn( gpio:: $AF) ;
90
82
let mut channel = channel. mode( timer:: Pwm1 ) ;
91
83
channel. preload( $CHPE) ;
92
- PwmBinding { pin,
93
- channel,
94
- _af: PhantomData }
84
+ PwmBinding { pin, channel }
95
85
}
96
86
}
97
87
98
88
impl <PT : gpio:: PullType , PM : gpio:: PinMode , CM : timer:: ChMode >
99
89
PwmBinding <gpio:: $PIN<PT , PM >,
100
- timer:: $TIM:: Channel <timer:: $CHN, CM >,
101
- gpio:: $AF>
90
+ timer:: $TIM:: Channel <timer:: $CHN, CM >>
102
91
{
103
92
/// Modify channel's preload
104
93
pub fn channel_preload( & mut self , enabled: bool ) {
0 commit comments