@@ -15,7 +15,10 @@ pub struct HrTim<TIM, PSCL> {
15
15
capture_ch2 : HrCapt < TIM , PSCL , capture:: Ch2 > ,
16
16
}
17
17
18
- pub trait HrTimer < TIM , PSCL > : Sized {
18
+ pub trait HrTimer {
19
+ type Timer ;
20
+ type Prescaler ;
21
+
19
22
/// Get period of timer in number of ticks
20
23
///
21
24
/// This is also the maximum duty usable for `HrCompareRegister::set_duty`
@@ -38,10 +41,10 @@ pub trait HrTimer<TIM, PSCL>: Sized {
38
41
fn clear_repetition_interrupt ( & mut self ) ;
39
42
40
43
/// Make a handle to this timers reset event to use as adc trigger
41
- fn as_reset_adc_trigger ( & self ) -> super :: adc_trigger:: TimerReset < Self > ;
44
+ fn as_reset_adc_trigger ( & self ) -> super :: adc_trigger:: TimerReset < Self :: Timer > ;
42
45
43
46
/// Make a handle to this timers period event to use as adc trigger
44
- fn as_period_adc_trigger ( & self ) -> super :: adc_trigger:: TimerPeriod < Self > ;
47
+ fn as_period_adc_trigger ( & self ) -> super :: adc_trigger:: TimerPeriod < Self :: Timer > ;
45
48
}
46
49
47
50
macro_rules! hrtim_timer {
@@ -60,7 +63,10 @@ macro_rules! hrtim_timer {
60
63
$repc: ident,
61
64
$( ( $rstXr: ident) ) * ,
62
65
) +) => { $(
63
- impl <PSCL > HrTimer <$TIMX, PSCL > for HrTim <$TIMX, PSCL > {
66
+ impl <PSCL > HrTimer for HrTim <$TIMX, PSCL > {
67
+ type Prescaler = PSCL ;
68
+ type Timer = $TIMX;
69
+
64
70
fn get_period( & self ) -> u16 {
65
71
let tim = unsafe { & * $TIMX:: ptr( ) } ;
66
72
@@ -99,12 +105,12 @@ macro_rules! hrtim_timer {
99
105
}
100
106
101
107
/// Make a handle to this timers reset event to use as adc trigger
102
- fn as_reset_adc_trigger( & self ) -> super :: adc_trigger:: TimerReset <Self > {
108
+ fn as_reset_adc_trigger( & self ) -> super :: adc_trigger:: TimerReset <Self :: Timer > {
103
109
super :: adc_trigger:: TimerReset ( PhantomData )
104
110
}
105
111
106
112
/// Make a handle to this timers period event to use as adc trigger
107
- fn as_period_adc_trigger( & self ) -> super :: adc_trigger:: TimerPeriod <Self > {
113
+ fn as_period_adc_trigger( & self ) -> super :: adc_trigger:: TimerPeriod <Self :: Timer > {
108
114
super :: adc_trigger:: TimerPeriod ( PhantomData )
109
115
}
110
116
0 commit comments