11pub mod adc_trigger;
22pub mod capture;
3+ pub mod dac_trigger;
34pub mod external_event;
45pub mod fault;
56
@@ -13,7 +14,7 @@ use crate::{
1314use stm32_hrtim:: {
1415 control:: { HrPwmControl , HrTimOngoingCalibration } ,
1516 output:: { HrOut1 , HrOut2 , ToHrOut } ,
16- HrParts , HrPwmBuilder ,
17+ DacResetTrigger , DacStepTrigger , HrParts , HrPwmBuilder ,
1718} ;
1819
1920pub use stm32_hrtim;
@@ -33,18 +34,31 @@ impl HrControltExt for crate::stm32::HRTIM_COMMON {
3334 }
3435}
3536
36- pub trait HrPwmBuilderExt < TIM , PSCL , PINS : ToHrOut < TIM > > {
37- fn finalize ( self , control : & mut HrPwmControl ) -> HrParts < TIM , PSCL , PINS :: Out < PSCL > > ;
37+ pub trait HrPwmBuilderExt < TIM , PSCL , PINS : ToHrOut < TIM > , DacRst , DacStp >
38+ where
39+ DacRst : DacResetTrigger ,
40+ DacStp : DacStepTrigger ,
41+ {
42+ fn finalize (
43+ self ,
44+ control : & mut HrPwmControl ,
45+ ) -> HrParts < TIM , PSCL , PINS :: Out < PSCL > , DacRst , DacStp > ;
3846}
47+
3948macro_rules! impl_finalize {
4049 ( $( $TIMX: ident) ,+) => { $(
41- impl <PSCL : stm32_hrtim:: HrtimPrescaler , PINS : HrtimPin <$TIMX>> HrPwmBuilderExt <$TIMX, PSCL , PINS >
42- for HrPwmBuilder <$TIMX, PSCL , stm32_hrtim:: PreloadSource , PINS >
50+ impl <PSCL , PINS , DacRst , DacStp > HrPwmBuilderExt <$TIMX, PSCL , PINS , DacRst , DacStp >
51+ for HrPwmBuilder <$TIMX, PSCL , stm32_hrtim:: PreloadSource , PINS , DacRst , DacStp >
52+ where
53+ PSCL : stm32_hrtim:: HrtimPrescaler ,
54+ PINS : HrtimPin <$TIMX>,
55+ DacRst : DacResetTrigger ,
56+ DacStp : DacStepTrigger
4357 {
4458 fn finalize(
4559 self ,
4660 control: & mut HrPwmControl ,
47- ) -> HrParts <$TIMX, PSCL , <PINS as ToHrOut <$TIMX>>:: Out <PSCL >> {
61+ ) -> HrParts <$TIMX, PSCL , <PINS as ToHrOut <$TIMX>>:: Out <PSCL >, DacRst , DacStp > {
4862 let pins = self . _init( control) ;
4963 pins. connect_to_hrtim( ) ;
5064 unsafe { MaybeUninit :: uninit( ) . assume_init( ) }
@@ -93,8 +107,12 @@ macro_rules! pins_helper {
93107 ( $TIMX: ty, $HrOutY: ident, $CHY: ident<$CHY_AF: literal>) => {
94108 //impl sealed::Sealed<$TIMX> for $CHY<GpioInputMode> {}
95109
96- unsafe impl ToHrOut <$TIMX> for $CHY<gpio:: DefaultMode > {
97- type Out <PSCL > = $HrOutY<$TIMX, PSCL >;
110+ unsafe impl <DacRst , DacStp > ToHrOut <$TIMX, DacRst , DacStp > for $CHY<gpio:: DefaultMode >
111+ where
112+ DacRst : DacResetTrigger ,
113+ DacStp : DacStepTrigger ,
114+ {
115+ type Out <PSCL > = $HrOutY<$TIMX, PSCL , DacRst , DacStp >;
98116 }
99117
100118 impl HrtimPin <$TIMX> for $CHY<gpio:: DefaultMode > {
0 commit comments