11pub mod adc_trigger;
22pub mod capture;
3+ pub mod dac_trigger;
34pub mod external_event;
45pub mod fault;
56
@@ -15,7 +16,7 @@ use crate::{
1516use stm32_hrtim:: {
1617 control:: { HrPwmControl , HrTimOngoingCalibration } ,
1718 output:: { HrOut1 , HrOut2 , ToHrOut } ,
18- HrParts , HrPwmBuilder ,
19+ DacResetTrigger , DacStepTrigger , HrParts , HrPwmBuilder ,
1920} ;
2021
2122pub use stm32_hrtim;
@@ -36,18 +37,31 @@ impl HrControltExt for crate::stm32::HRTIM_COMMON {
3637 }
3738}
3839
39- pub trait HrPwmBuilderExt < TIM , PSCL , PINS : ToHrOut < TIM > > {
40- fn finalize ( self , control : & mut HrPwmControl ) -> HrParts < TIM , PSCL , PINS :: Out < PSCL > > ;
40+ pub trait HrPwmBuilderExt < TIM , PSCL , PINS : ToHrOut < TIM > , DacRst , DacStp >
41+ where
42+ DacRst : DacResetTrigger ,
43+ DacStp : DacStepTrigger ,
44+ {
45+ fn finalize (
46+ self ,
47+ control : & mut HrPwmControl ,
48+ ) -> HrParts < TIM , PSCL , PINS :: Out < PSCL > , DacRst , DacStp > ;
4149}
50+
4251macro_rules! impl_finalize {
4352 ( $( $TIMX: ident) ,+) => { $(
44- impl <PSCL : stm32_hrtim:: HrtimPrescaler , PINS : HrtimPin <$TIMX>> HrPwmBuilderExt <$TIMX, PSCL , PINS >
45- for HrPwmBuilder <$TIMX, PSCL , stm32_hrtim:: PreloadSource , PINS >
53+ impl <PSCL , PINS , DacRst , DacStp > HrPwmBuilderExt <$TIMX, PSCL , PINS , DacRst , DacStp >
54+ for HrPwmBuilder <$TIMX, PSCL , stm32_hrtim:: PreloadSource , PINS , DacRst , DacStp >
55+ where
56+ PSCL : stm32_hrtim:: HrtimPrescaler ,
57+ PINS : HrtimPin <$TIMX>,
58+ DacRst : DacResetTrigger ,
59+ DacStp : DacStepTrigger
4660 {
4761 fn finalize(
4862 self ,
4963 control: & mut HrPwmControl ,
50- ) -> HrParts <$TIMX, PSCL , <PINS as ToHrOut <$TIMX>>:: Out <PSCL >> {
64+ ) -> HrParts <$TIMX, PSCL , <PINS as ToHrOut <$TIMX>>:: Out <PSCL >, DacRst , DacStp > {
5165 let pins = self . _init( control) ;
5266 pins. connect_to_hrtim( ) ;
5367 unsafe { MaybeUninit :: uninit( ) . assume_init( ) }
@@ -96,8 +110,12 @@ macro_rules! pins_helper {
96110 ( $TIMX: ty, $HrOutY: ident, $CHY: ident<$CHY_AF: literal>) => {
97111 //impl sealed::Sealed<$TIMX> for $CHY<GpioInputMode> {}
98112
99- unsafe impl ToHrOut <$TIMX> for $CHY<gpio:: DefaultMode > {
100- type Out <PSCL > = $HrOutY<$TIMX, PSCL >;
113+ unsafe impl <DacRst , DacStp > ToHrOut <$TIMX, DacRst , DacStp > for $CHY<gpio:: DefaultMode >
114+ where
115+ DacRst : DacResetTrigger ,
116+ DacStp : DacStepTrigger ,
117+ {
118+ type Out <PSCL > = $HrOutY<$TIMX, PSCL , DacRst , DacStp >;
101119 }
102120
103121 impl HrtimPin <$TIMX> for $CHY<gpio:: DefaultMode > {
0 commit comments